Changes

Summary

  1. Revert "[flang] Check there's no dependency on C++ libs" (details)
  2. [AMDGPU] Set mayLoad and mayStore on Real instructions (details)
  3. [lldb] vwprintw -> vw_printw in IOHandlerCursesGUI (details)
  4. [libc] Add a set of elementary operations (details)
  5. Revert "[libc] Add a set of elementary operations" (details)
  6. [AMDGPU] Set IsAtomicRet and IsAtomicNoRet on Real instructions (details)
  7. [flang] Check there's no dependency on C++ libs. NFC (details)
  8. [OpenMP] libomp: fixed implementation of OMP 5.1 inoutset task dependence type (details)
  9. [lldb] Require Clang 8 for gpubnames test (details)
  10. [SVE] Fix PromoteIntRes_TRUNCATE not to call getVectorNumElements (details)
  11. [libc] Add a set of elementary operations (details)
  12. [libcxx] Fix exception raised during downstream bare-metal libunwind tests (details)
  13. [AMDGPU] Set SALU, VALU and other instruction type flags on Real instructions (details)
  14. [llvm-symbolizer] improve test and fix doc example after recent --print-source-context-lines behaviour change (details)
  15. [X86][AVX] Regenerate pr15296.ll tests (details)
  16. [mlir] NFC - Drop newline form BlockArgument printing. (details)
  17. [MCA][InstrBuilder] Always check for implicit uses of resource units (PR50725). (details)
  18. [libc++] Undeprecate the std::allocator<void> specialization (details)
  19. [llvm][AArch64] Handle arrays of struct properly (from IR) (details)
  20. [AMDGPU] Set VOP3P flag on Real instructions (details)
  21. [obj2yaml] Address D104035 review comments (details)
  22. [SVE] Selection failure with scalable insertelements (details)
  23. [lld-macho] Downgrade version mismatch to warning (details)
  24. [libTooling][NFC] Refactor implemenation of Transformer Stencils to use standard OOP (details)
  25. [FuncSpec] Fixed prefix typo in test function-specialization-noexec.ll. NFC. (details)
  26. [InstSimplify] propagate poison through FP ops (details)
  27. [NFC][libomptarget] Reduce the dependency on libelf (details)
  28. Reapply "[MCA] Adding the CustomBehaviour class to llvm-mca". (details)
  29. [gn build] Port ef16c8eaa5cd (details)
  30. [ValueTracking] add tests for propagatesPoison with FP ops; NFC (details)
  31. Revert "Revert "[libcxx][module-map] creates submodules for private headers"" (details)
  32. [M68k][GloballSel] Adding initial GlobalISel infrastructure (details)
  33. [llvm-objcopy] Make ihex writer similar to binary writer (details)
  34. [index] Fix performance regression with indexing macros (details)
  35. [flang] Correct the subscripts used for arguments to character intrinsics (details)
  36. RISCVFixupKinds.h: Don’t duplicate function or class name at the beginning of the comment && fix some comments (details)
  37. [ValueTracking] add FP intrinsics to test for propagatesPoison; NFC (details)
  38. [mlir][sparse] support new kind of scalar in sparse linalg generic op (details)
  39. [CSSPGO] Report zero-count probe in profile instead of dangling probes. (details)
  40. [llvm-objcopy][MachO] Copy LC_LINKER_OPTIMIZATION_HINT (details)
  41. [lld-macho][nfc] Put back shouldOmitFromOutput() asserts (details)
  42. [lld-macho] Handle multiple LC_LINKER_OPTIONs (details)
  43. [lld-macho] Put DATA_IN_CODE immediately after FUNCTION_STARTS (details)
  44. [flang] Don't crash on some bogus expressions (details)
  45. [NFC][ScalarEvolution] Refactor createNodeForSelectOrPHI (details)
  46. Fix verifier crashing on some invalid IR (details)
  47. Use early exist and simplify a condition in Block SuccessorRange (NFC) (details)
  48. [MCA] Anchoring the vtable of CustomBehaviour (details)
  49. [flang] Fix crashes on calls to non-procedures (details)
  50. Add hook for dialect specializing processing blocks post inlining calls (details)
  51. [MLIR] Fix affine parallelize pass. (details)
  52. [MLIR] Make store to load fwd condition less conservative (details)
  53. [ASTMatchers] Fix bug in `hasUnaryOperand` (details)
  54. Add sparse matrix multiplication integration test (details)
  55. [libTooling] Change `access` stencil to recognize use of `operator*`. (details)
  56. [OpenMP] Add Two-level Distributed Barrier (details)
  57. [flang] Cope with errors with array constructors (details)
  58. [flang][driver] Add missing `! REQUIRES` LIT directive (details)
  59. [flang] Fold MAXVAL & MINVAL (details)
  60. [scudo] Ensure proper allocator alignment in TSD test (details)
  61. [flang] Use a "double-double" accumulator in SUM (details)
  62. Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h (details)
  63. Use `-cfg-func-name` value as filter for `-view-cfg`, etc. (details)
  64. [flang] Implement runtime for IALL & IANY (details)
  65. [gn build] (manually) port f9aba9a5afe (details)
  66. [mlir] Make Type::print and Type::dump const (details)
  67. [RISCV][test] Add new tests of SH*ADD in the zba extension (details)
  68. [flang] Fix ARM/POWER test failure (folding20.f90) (details)
  69. Decouple registring passes from specifying argument/description (details)
  70. Migrate MLIR test passes to the new registration API (details)
  71. [clang] NRVO: Improvements and handling of more cases. (details)
  72. [AMDGPU] Fixed constexpr expansion to handle multiple uses (details)
  73. [clang] use correct builtin type for defaulted comparison analyzer (details)
  74. Improve error message on pass registration failures to include the faulty pass name (details)
  75. [mlir-lsp-server][Docs] Tweak the documentation for the visual studio code extension (details)
  76. [flang] Complain about more cases of calls to insufficiently defined procedures (details)
  77. Relax language comparison when matching up C++ forward decls with definitions (details)
  78. [mlir-lsp-server] Add an explicit blurb on where to send code contributions. (details)
  79. [mlir-vscode] Add a link to mlir.llvm.org at the top of the vscode extension doc (details)
  80. Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack. (details)
  81. [mlir] Fixed dynamic operand storage on big-endian machines. (details)
  82. [lld][MachO] Sort symbols in parallel in -map (details)
  83. Improve error reporting on pass registration collision (NFC) (details)
  84. [ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper. (details)
  85. [mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass. (details)
  86. Avoid unnecessary AArch64 DSB in __clear_cache in some situations. (details)
  87. [clangd] Use command line adjusters for inserting compile flags (details)
  88. [clangd] Fix feature modules to drop diagnostics (details)
  89. Update @llvm.powi to handle different int sizes for the exponent (details)
  90. [lldb] Skip variant/optional libc++ tests for Clang 5/6 (details)
  91. [mlir] ODS: emit interface traits outside of the interface class (details)
  92. [analyzer] Make checker silencing work for non-pathsensitive bug reports (details)
  93. [Format] Fix incorrect pointer/reference detection (details)
  94. [VPlan] Support PHIs as LastInst when inserting scalars in ::get(). (details)
  95. [Demangle] Support Rust v0 mangling scheme in llvm::demangle (details)
  96. [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass (details)
  97. [clang][AST] Set correct DeclContext in ASTImporter lookup table for template params. (details)
  98. [RISCV][VP] Lower FP VP ISD nodes to RVV instructions (details)
  99. [FuncSpec] Don't specialise functions with attribute NoDuplicate. (details)
  100. [mlir] separable registration of operation interfaces (details)
  101. [libcxx] Fix a case of -Wundef warnings regarding _POSIX_TIMERS (details)
  102. [llvm-dlltool] [test] Test both short and long forms of options. NFC. (details)
  103. [llvm-dlltool] [test] Remove superfluous --coff-exports option to llvm-readobj. NFC. (details)
  104. [llvm-dlltool] [test] Add a testcase for all machine option types. NFC. (details)
  105. [llvm-dlltool] Imply the target arch from a tool triple prefix (details)
  106. [LLD] [COFF] Remove a stray duplicate comment. NFC. (details)
  107. [ELF] Restore arm-branch.s test (details)
  108. [NFC] test commit, fix namespace ending comment. (details)
  109. [flang] preserve symbol in DescriptorInquiry (details)
  110. [InstCombine] Fix miscompile on GEP+load to icmp fold (PR45210) (details)
  111. [hwasan] Do not use short granule tags as poison tags. (details)
  112. [hwasan] Improve report for addresses within regions. (details)
  113. [mlir] Enable delayed registration of attribute/operation/type interfaces (details)
  114. [lldb] Set return object failed status even if error string is empty (details)
  115. [lldb] Remove redundant calls to set eReturnStatusFailed (details)
  116. [mlir] define a customized DEBUG_TYPE in InterfaceSupport.h (details)
  117. [X86] Add test showing binary differences with -x86-pad-for-align. (details)
  118. [libc] Generate one benchmark per implementation (details)
  119. [X86] Check using default in test added in 0bd5bbb31e0345ae. (details)
  120. [mlir][linalg] Purge linalg.indexed_generic. (details)
  121. [X86] combineSelect - refactor MIN/MAX detection code to make it easier to add additional select(setcc,x,y) folds. NFCI. (details)
  122. [mlir] Split things dependent on LLVM_DEBUG into a .cpp file (details)
  123. [FuncSpec] Precommit test: don't specialise funcs with NoDuplicate instrs. NFC. (details)
  124. [lldb] Remove redundant calls to set eReturnStatusFailed (details)
  125. [mlir] Remove linalg.indexed_generic forward decl. (details)
  126. [DebugInfo] Prevent non-determinism when updating DIArgList users of a value (details)
  127. [Sema] Fix for PR50741 (details)
  128. Revert "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value" (details)
  129. [llvm] fix typo in comment (details)
  130. [FPEnv][InstSimplify] Precommit tests for D103169. (details)
  131. [clangd] Explicitly fail if the file passed to --check is not valid. (details)
  132. [lld-macho] Avoid force-loading the same archive twice (details)
  133. Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value" (details)
  134. RISCV: adjust handling of relocation emission for RISCV (details)
  135. Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack." (details)
  136. [compiler-rt][hwasan]: undefine new/delete operators with alignment on Android. (details)
  137. [InstCombine][x86] add tests for complex vector shift value tracking; NFC (details)
  138. [InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC (details)
  139. fix an -Wunused-variable warning in release built, NFC (details)
  140. test: clean up some of the RISCV tests (NFC) (details)
  141. [libcxx][iwyu] 🎨 adds more headers to IWYU (details)
  142. [libcxx][module-map] 🎨 updates module map to account for ranges headers (details)
  143. [mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test (details)
  144. [clang] Fix a race condition in the build of clangInterpreter (details)
  145. [lld-macho] Implement ICF (details)
  146. [gn build] Port f27e4548fc42 (details)
  147. [AIX] Remove --as-needed passing into aix linker (details)
  148. [NFC] LoopVectorizationCostModel::getMaximizedVFForTarget(): clarify debug msg (details)
  149. [X86] AMD Zen 3: don't confuse shift and shuffle, NFC (details)
  150. [llvm-symbolizer][docs] Update example for --verbose in the guide (details)
  151. [lld-macho] Rework mergeFlag to behave closer to what ld64 does. (details)
  152. [lld][WebAssembly] Add new `--import-undefined` option (details)
  153. [MCA] [RegisterFile] Allow for skipping Defs with RegID of 0 (rather than assert(RegID) like we do before this patch). (details)
  154. [LoopUnroll] Fold all exits based on known trip count/multiple (details)
  155. [lldb-vscode] only report long running progress events (details)
  156. Revert "[NFC] Remove checking pointee type for byval/preallocated type" (details)
  157. [AArch64][GISel] and+or+shl => bfi (details)
  158. [GISel] Eliminate redundant bitmasking (details)
  159. [libc++] Make sure std::allocator<void> is always trivial (details)
  160. RISCV: clean up target expression handling (details)
  161. [ScalarEvolution] Fix pointer/int type handling converting select/phi to min/max. (details)
  162. [DFSan] Cleanup code for platforms other than Linux x86_64. (details)
  163. [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. (details)
  164. [InstrProfiling] Make __profd_ unconditionally private for ELF (details)
  165. Revert "[DFSan] Cleanup code for platforms other than Linux x86_64." (details)
  166. [Attributor] Derive AACallEdges attribute (details)
  167. [NFC][SimpleLoopUnswitch] unswitchTrivialBranch(): add debug output explaining unswitching failure (details)
  168. [lldb-vscode] remove failed test (details)
  169. [trace][intel-pt] Create basic SB API (details)
  170. [lld][WebAssembly] Fix crash calling weakly undefined function in PIC code (details)
  171. [clang][AST] Make `getLocalOrImportedSubmoduleID` work with const `Module*`. NFC. (details)
  172. [FIX][Attributor] Fix broken build due to missing virtual deconstructors. (details)
  173. Frontend: Respect -fno-temp-file when creating a PCH (details)
  174. [M68k][NFC] Fix indentation in M68kInstrArithmetic.td (details)
  175. [Coroutine] Properly deal with byval and noalias parameters (details)
  176. Bring our handling of -Wframe-larger-than more in line with GCC. (details)
  177. [WebAssembly] Rename event to tag (details)
  178. [AMDGPU] Remove duplicate setOperationAction for v4i16/v4f16 (NFC) (details)
  179. [objdump][ARM] Fix evaluating the target address of a Thumb BLX(i) (details)
  180. [InstCombine][NFC] Added tests for mul with zext/sext operands (details)
  181. [RISCV] Don't enable Interleaved Access Vectorization (details)
  182. [dfsan] Replace dfs$ prefix with .dfsan suffix (details)
  183. [Attributor][NFC] AAReachability is currently stateless, don't invalidate it (details)
  184. [Attributor][NFC] Precommit a set of test cases for load simplification (details)
  185. [Attributor][NFC] Add test from PR49606 (details)
  186. [OpenMP][NFC] Expose AAExecutionDomain and rename its getter (details)
  187. [Attributor] Make sure Heap2Stack works properly on a GPU target (details)
  188. [Attributor] Introduce a helper do deal with constant type mismatches (details)
  189. [Attributor] Use a centralized value simplification interface (details)
  190. [Attributor] Allow to skip the initial update for a new AA (details)
  191. [Attributor][FIX] Arguments of unknown functions can be undef (details)
  192. Revert D103717 "[InstrProfiling] Make __profd_ unconditionally private for ELF" (details)
  193. [polly][GPGPU] Fixup related to overloading exponent type in llvm.powi (details)
  194. [InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X) (details)
  195. [libc] Add few macro definitions to make it easy to accommodate Windows. (details)
  196. Revert "[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)" (details)
  197. [Demangle][Rust] Parse dot suffix (details)
  198. [libc][Obvious] Add the new header file PlatformDefs.h to the fputil  target. (details)
  199. [Attributor] Don't print the call-graph in a hard-coded file. (details)
  200. [Polly][Isl] Refactoring IslAstInfo::getBuild() and IslAstInfo::IslAstUserPayload::Build to use isl++. NFC (details)
  201. [mlir][linalg] Fix PadTensorOp constructor (details)
  202. [NFC] Assert non-zero factor before division (details)
  203. [llvm][Inliner] Add an optional PriorityInlineOrder (details)
  204. [flang] Rewrite test for CPU_TIME (details)
  205. [Test] Add XFAIL unit test for PR50765 (details)
  206. [InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X) (details)
  207. [AMDGPU] Update generated checks. NFC. (details)
  208. [Attributor] Fix UB behavior on uninitalized bool variables. (details)
  209. [MLIR] Introduce scf.execute_region op (details)
  210. [LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration (try 3) (details)
  211. Revert D104028 "[llvm][Inliner] Add an optional PriorityInlineOrder" (details)
  212. [ORC] Add support for dumping objects to the C API. (details)
  213. [clang] Exclude function pointers on DefaultedComparisonAnalyzer (details)
  214. [ORC] Use uint8_t rather than char for RPC wrapper-function calls. (details)
  215. [ORC][C-bindings] Re-order object transform function arguments. (details)
  216. [libclang] Fix error handler in translateSourceLocation. (details)
  217. [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl() (details)
  218. [DAG] SelectionDAG::computeKnownBits - use APInt::insertBits to merge subvector knownbits. NFCI. (details)
  219. [mlir] Add notes about using external interface application. (details)
  220. [clang] Implement P2266 Simpler implicit move (details)
  221. [HWASan] Run LAM tests with -hwasan-generate-tags-with-calls. (details)
  222. RISCV: simplify a test case for RISCV (NFCI) (details)
  223. Fix build failure on 32 bit Arm (details)
  224. [NFC][libomptarget] Fixed -DLLVM_ENABLE_RUNTIMES="openmp" build. (details)
  225. [NFC][libomptarget] Build elf_common with PIC. (details)
  226. [AArch64] Add TableGen patterns to generate uaddlv (details)
  227. Rename option -icf MODE to --icf=MODE (details)
  228. [lld/mac] Support -data_in_code_info, -function_starts flags (details)
  229. [lldb-vscode] attempt to fix flakiness (details)
  230. [flang] Runtime implementation for default derived type formatted I/O (details)
  231. [compiler-rt][hwasan] Move Thread::Init into hwasan_linux.cpp (details)
  232. [hwasan] Clarify report for allocation-tail-overwritten. (details)
  233. [OpenMP] Update FAQ for enabling cuda offloading (details)
  234. Delay initialization of OptBisect (details)
  235. XFAIL a testcase on Hexagon (missing-abstract-variable.ll) (details)
  236. Revert "Delay initialization of OptBisect" (details)
  237. [DFSan] Cleanup code for platforms other than Linux x86_64. (details)
  238. [CSSPGO] Fix an invalid hash table reference issue in the CS preinliner. (details)
  239. [AMDGPU] [CodeGen] Fold negate llvm.amdgcn.class into test mask (details)
  240. [CSSPGO][llvm-profgen] Ignore LBR records after interrupt transition (details)
  241. [RISCV] Teach vsetvli insertion to remember when predecessors have same AVL and SEW/LMUL ratio if their VTYPEs otherwise mismatch. (details)
  242. [clang-tidy] performance-unnecessary-copy-initialization: Directly examine the initializing var's initializer. (details)
  243. [libc++] [P1518R2] Better CTAD behavior for containers with allocators. (details)
  244. [flang][OpenMP] Add semantic checks for occurrence of nested Barrier regions (details)
  245. [lld-macho] Handle non-extern symbols marked as private extern (details)
  246. [lld-macho] Have path-related functions return std::string, not StringRef (details)
  247. [NFC][compiler-rt][hwasan] Move hwasanThreadList().CreateCurrentThread() into InitThreads (details)
  248. [Clang][Codegen] Add GNU function attribute 'no_profile' and lower it to noprofile (details)
  249. [GCOVProfiling] don't profile Fn's w/ noprofile attribute (details)
  250. [mlir] Add support to SourceMgrDiagnosticHandler for filtering FileLineColLocs (details)
  251. [CSSPGO][llvm-profgen] Fix an issue in findDisjointRanges (details)
  252. [LoopUnroll] Simplify optimization remarks (details)
  253. Partial rollback: Disable MLIR verifier parallelism. (details)
  254. Whitespace fixes for (details)
  255. [flang] Fix clang build (struct/class mismatch warning) (details)
  256. [CSSPGO] Undoing the concept of dangling pseudo probe (details)
  257. [OpenMP] Make bug49334.cpp more reproducible (details)
  258. AMDGPU: Fix assert on m0_lo16/m0_hi16 (details)
  259. Re-Revert "DirectoryWatcher: add an implementation for Windows" (details)
  260. AMDGPU: Fix infinite loop in DAG combine with fneg + fma (details)
  261. [profile][test] Delete profraw directory so that tests are immune to format version upgrade (details)
  262. [flang] Recode a switch() to dodge a sketchy warning (details)
  263. [InstrProfiling][ELF] Make __profd_ private if the function does not use value profiling (details)
  264. Revert "[lld-macho] Avoid force-loading the same archive twice" (details)
  265. [InstCombine] Don't transform code if DoTransform is false (details)
  266. [libfuzzer] Disable failing DFSan-related tests (details)
  267. [ORC][examples] Fix file name in comment. (details)
  268. [ORC][C-bindings] Add access to LLJIT IRTransformLayer, ThreadSafeModule utils. (details)
  269. [llvm][Inliner] Add an optional PriorityInlineOrder (details)
  270. Revert "[lld-macho] Have path-related functions return std::string, not StringRef" (details)
  271. [re-land][lld-macho] Avoid force-loading the same archive twice (details)
  272. [mlir][linalg] Lower subtensor(pad_tensor) to pad_tensor(subtensor) (details)
  273. [ORC][examples] Add missing library dependence (details)
  274. [RISCV][test] Add new tests for add-mul optimization in the zba extension with SH*ADD (details)
  275. [RISCV] Optimize add-mul in the zba extension with SH*ADD (details)
  276. [LoopUnroll] Push runtime unrolling decision up into tryToUnrollLoop() (details)
  277. [mlir] Add EmitC dialect (details)
  278. [clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on (details)
  279. [clang-cl] Don't expand /permissive- to /ZC:strictStrings yet (details)
  280. [libcxx] Move all algorithms into their own headers (details)
  281. [gn build] Port 134723edd5bf (details)
  282. Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on" (details)
  283. [ARM][NFC] Tidy up subtarget frame pointer routines (details)
  284. Allow building for release with EXPENSIVE_CHECKS (details)
  285. Revert "Re-Revert "DirectoryWatcher: add an implementation for Windows"" (details)
  286. [InstCombine][test] add tests for select-of-bit-manip; NFC (details)
  287. [amdgpu] Improve the from f32 to i64. (details)
  288. [MIRPrinter] Add machine metadata support. (details)
  289. [lld/mac] Give __DATA,__thread_ptrs type S_THREAD_LOCAL_VARIABLE_POINTERS (details)
  290. [lld/mac] Make sure __thread_ptrs is in front of __thread_bss (details)
  291. [gn build] (manually) port b9c05aff205b (MIRTests) (details)
  292. Simplify some typedef struct (details)
  293. [NFC] AMD Zen 3: fix typo in a comment (details)
  294. [RISCV] Prevent formation of shXadd(.uw) and add.uw if it prevents the use of addi. (details)
  295. [llvm-profdata] Delete unneeded empty output filename check (details)
  296. [LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix (details)
  297. [LLD] [COFF] Avoid doing repeated fuzzy symbol lookup for each iteration. NFC. (details)
  298. [profile] Don't publish VMO if there are no counters (details)
  299. [llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style (details)
  300. [profile] Fix variable name (details)
  301. [test] Fix nocompress.test (details)
  302. [Flang][test] Fix Windows buildbot. (details)
  303. [llvm-cov gcov] Change case to match the prevailing style && replace getString with readString (details)
  304. [llvm-cov gcov] Support GCC 12 format (details)
  305. [InstSimplify] icmp poison, X -> poison (details)
  306. [SimplifyCFG] HoistThenElseCodeToIf(): don't hoist if either block has it's address taken (details)
  307. [SimplifyCFG] FoldTwoEntryPHINode(): don't fold if either block has it's address taken (details)
  308. [UpdateTestUtils] Print test filename when complaining about conflicting prefix (details)
  309. [NFC][AArch64][ARM][Thumb][Hexagon] Autogenerate some tests (details)
  310. [InstCombine] avoid infinite loops with select folds of constant expressions (details)
  311. [flang] Implement constant folding for the NOT intrinsic (details)
  312. [libcxx] Implement P0883R2 ("Fixing Atomic Initialization") (details)
  313. [InstCombine] fold ctpop-of-select with 1 or more constant arms (details)
  314. [DSE] Remove stores in the same loop iteration (details)
  315. [lldb] [Process/elf-core] Fix reading NetBSD/i386 core dumps (details)
  316. Fix -Wunused-variable and -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=off build. NFC (details)
  317. [lld-link] Fix -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=off build. NFC (details)
  318. [mlir] Fix -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=off build. NFC (details)
  319. [LoopUnroll] Use smallest exact trip count from any exit (details)
  320. Add a corefile style option to process save-core; skinny corefiles (details)
  321. [TypePromotion] Prune Intrinsic includes. NFC (details)
  322. Try to unbreak the windows CI (details)
  323. [GCOVProfiling][test] Ensure that 'opt' drops any files in a temp directory (details)
  324. [ELF][test] Add missing tests for --no-export-dynamic & --no-warn-backrefs (details)
  325. [ELF] Delete --no-cref which does not exist in GNU ld (details)
  326. [lld-macho] Have inputOrder default to less than INT_MAX (details)
  327. [IVDescriptors] Fix comment that getUnsafeAlgebraInst has been renamed to getExactFPMathInst (details)
  328. [NFC][ScalarEvolution] Clean up ExitLimit constructors. (details)
  329. [lld/mac] Test zerofill sections after __thread_bss (details)
  330. [InstCombine] Use poison constant to represent the result of unreachable instrs (details)
  331. [lld/mac] Make a variable more local; no behavior change (details)
  332. [clang] NFC: adjust indentation of statements with more than one lines (details)
  333. [LoopDeletion] Handle Phis with similar inputs from different blocks (details)
  334. [yaml2obj] Add support for writing the long symbol name. (details)
  335. [clangd] Type hints for C++14 return type deduction (details)
  336. [Test] Add some tests showing room for optimization exploiting undef and UB (details)
  337. [AMDGPU][Libomptarget] Remove redundant functions (details)
  338. [AMDGPU] Replace non-kernel function uses of LDS globals by pointers. (details)
  339. [gn build] Port 80fd5fa5269c (details)
  340. [mlir][Linalg] Introduce a BufferizationAliasInfo (6/n) (details)
  341. [mlir][Linalg] NFC - Drop unused variable definition. (details)
  342. [AMDGPU] Add Optimize VGPR LiveRange Pass. (details)
  343. [gn build] Port 208332de8abf (details)
  344. [mlir][linalg] Support low padding in subtensor(pad_tensor) lowering (details)
  345. [FuncSpec] Don't specialise functions with NoDuplicate instructions. (details)
  346. [InstCombine] Fold icmp (select c,const,arg), null if icmp arg, null can be simplified (details)
  347. [Mem2Reg] Regenerate test checks (NFC) (details)
  348. [Mem2Reg] Use poison for unreachable cases (details)
  349. [mlir][NFC] Remove Standard dialect dependency on MemRef dialect (details)
  350. [Mem2Reg] Regenerate test checks (NFC) (details)
  351. [AMDGPU] Fix linking with shared libraries (details)
  352. [lldb] Assert that CommandResultObject error messages are not empty (details)
  353. [VP][NFCI] Address various clang-tidy warnings (details)
  354. [mlir][Linalg] Silence warnings in Release builds. NFC. (details)
  355. [NFC] Wrap entire assert-only block in LLVM_DEBUG (details)
  356. [mlir][ODS] Fix copy ctor for generate Pass classes (details)
  357. [LoopIdiom] Add test case that involves adds with flags and zero exts. (details)
  358. [lldb][NFC] Remove redundant deleted constructors in HostInfoBase subclasses (details)
  359. [Sema][SVE] Properly match builtin ID when using aux target (details)
  360. [AArch64][SVE] Wire up vscale_range attribute to SVE min/max vector queries (details)
  361. [NFC] Fix typo (details)
  362. [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix (details)
  363. [clang-cl] Implement /external:I, /external:env, and EXTERNAL_INCLUDE support (PR36003) (details)
  364. [NFC][libomptarget] Remove redundant libelf dependency for elf_common. (details)
  365. [FuncSpec] Add minsize test. NFC. (details)
  366. [AArch64][SVE] Add missing target require to test (details)
  367. [mlir] Remove "getNumPayloadInductionVariables". (details)
  368. AMDGPU: Add missing tests for v_fma_mixlo (details)
  369. [InstCombine] fold ctlz/cttz-of-select with 1 or more constant arms (details)
  370. [mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect (details)
  371. [omp] Fix build without ITT after D103121 changes (details)
  372. Try to fix clang/test/Driver/cl-include.c failure (details)
  373. [OpenCL] Add support of __opencl_c_images feature macro (details)
  374. [SLP][AArch64] Add SLP vectorizer regression test. NFC (details)
  375. [InstCombine] move bitmanipulation-of-select folds (details)
  376. [libc++] Remove unused variable (details)
  377. [HIP] Add support functions for C++ polymorphic types (details)
  378. RegisterCoalescer: Fix iterating through use operands. (details)
  379. [lldb] Enable Rust v0 symbol demangling (details)
  380. [OpaquePtr] Return opaque pointer from opaque pointer GEP (details)
  381. Revert "[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect" (details)
  382. [flang] Fold more reduction intrinsic function calls (details)
  383. Revert "[LoopDeletion] Handle Phis with similar inputs from different blocks" (details)
  384. Remove ML inlining model artifacts. (details)
  385. [lldb] Skip TestLimitDebugInfo for Clang<7 (details)
  386. [lldb] Add support for escaping zsh arguments (details)
  387. Revert "[lldb-vscode] attempt to fix flakiness" (details)
  388. Split a test for ease of auto update (details)
  389. [OpaquePtr] Support opaque constant expression GEP (details)
  390. [InstCombine] Remove unnecessary addres space check (NFC) (details)
Commit dfa0f3ee0ea1b72b81b469736e9271098e4129b3 by diana.picus
Revert "[flang] Check there's no dependency on C++ libs"

This reverts commit 7ddbf2633911a5c378ad6af01e250f6f252b9032.

This doesn't work if we're not building libFortranRuntime.a. I'll
recommit with a fix.
The file was removedflang/test/Runtime/no-cpp-dep.c
The file was modifiedflang/test/lit.cfg.py (diff)
The file was modifiedflang/test/lit.site.cfg.py.in (diff)
Commit 323b3e645dd340e7ffb86b06d33d071fdf4fb432 by jay.foad
[AMDGPU] Set mayLoad and mayStore on Real instructions

This does not affect codegen but might benefit llvm-mca.
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOP2Instructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOP1Instructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOPCInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOPInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td (diff)
Commit 3b7795aeceb153b04493c5ba93e707e39afbe41f by Raphael Isemann
[lldb] vwprintw -> vw_printw in IOHandlerCursesGUI

`vwprintw` is (in theory) using the `arargs.h` va_list while `vw_printw` is
using the `stdarg.h` va_list. It seems these days they can be used
interchangeably but `vwprintw` is marked as deprecated.
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp (diff)
Commit 4694321fbe54628513b75a4395124cd7508581a6 by gchatelet
[libc] Add a set of elementary operations

Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.

Original commit message:
Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop).
The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.

A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
The file was addedlibc/src/string/memory_utils/elements.h
The file was addedlibc/test/src/string/memory_utils/memory_access_test.cpp
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt (diff)
The file was modifiedlibc/src/string/x86_64/memcpy.cpp (diff)
The file was addedlibc/src/string/memory_utils/elements_x86.h
The file was removedlibc/src/string/memory_utils/memcpy_utils.h
The file was modifiedlibc/src/string/memory_utils/memset_utils.h (diff)
The file was modifiedlibc/test/src/string/memory_utils/CMakeLists.txt (diff)
The file was addedlibc/test/src/string/memory_utils/elements_test.cpp
The file was modifiedlibc/src/string/memcpy.cpp (diff)
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
The file was modifiedlibc/src/string/aarch64/memcpy.cpp (diff)
The file was removedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
Commit c3242238b717b5a537fdfe924b713e9cf36c505f by gchatelet
Revert "[libc] Add a set of elementary operations"

This reverts commit 4694321fbe54628513b75a4395124cd7508581a6.
The file was removedlibc/test/src/string/memory_utils/elements_test.cpp
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
The file was removedlibc/src/string/memory_utils/elements_x86.h
The file was modifiedlibc/src/string/aarch64/memcpy.cpp (diff)
The file was modifiedlibc/src/string/x86_64/memcpy.cpp (diff)
The file was modifiedlibc/src/string/memcpy.cpp (diff)
The file was addedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
The file was addedlibc/src/string/memory_utils/memcpy_utils.h
The file was removedlibc/test/src/string/memory_utils/memory_access_test.cpp
The file was modifiedlibc/test/src/string/memory_utils/CMakeLists.txt (diff)
The file was removedlibc/src/string/memory_utils/elements.h
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt (diff)
The file was modifiedlibc/src/string/memory_utils/memset_utils.h (diff)
Commit 24ffc343f9da5bcfa007e5f9b52a3a023982ac89 by jay.foad
[AMDGPU] Set IsAtomicRet and IsAtomicNoRet on Real instructions

This does not affect codegen but might benefit llvm-mca.
The file was modifiedllvm/lib/Target/AMDGPU/SMInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td (diff)
Commit 0ad051b5fc22b4e7334635b2bdc54eca8ee7c4c4 by diana.picus
[flang] Check there's no dependency on C++ libs. NFC

Add a test to make sure the flang runtime doesn't pull in the C++
runtime libraries.

This is achieved by adding a C file that calls some functions from the
runtime (currently only CpuTime, but we should probably add anything
complicated enough, e.g. IO-related things). We force the C compiler to
use -std=c90 to make sure it's really in C mode (we don't really care
which version of the standard, this one is probably more widely
available). We only enable this test if CMAKE_C_COMPILER is set to
something (which is probably always true in practice).

This is a recommit of 7ddbf26, with 2 fixes:
* Replace C++ comments with C comments
* Only enable the test if libFortranRuntime.a exists (this might not be
the case if e.g. BUILD_SHARED_LIBS=On)

Differential Revision: https://reviews.llvm.org/D104290
The file was modifiedflang/test/lit.site.cfg.py.in (diff)
The file was addedflang/test/Runtime/no-cpp-dep.c
The file was modifiedflang/test/lit.cfg.py (diff)
Commit 610fea65e296e5e9aad9c90903c2e40eaa4f03ac by Andrey.Churbanov
[OpenMP] libomp: fixed implementation of OMP 5.1 inoutset task dependence type

Refactored code of dependence processing and added new inoutset dependence type.
Compiler can set dependence flag to 0x8 when call __kmpc_omp_task_with_deps.
All dependence flags library gets so far and corresponding dependence types:
1 - IN, 2 - OUT, 3 - INOUT, 4 - MUTEXINOUTSET, 8 - INOUTSET.

Differential Revision: https://reviews.llvm.org/D97085
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/gtid.cpp (diff)
The file was addedopenmp/runtime/test/tasking/omp51_task_dep_inoutset.c
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/common.h (diff)
The file was modifiedopenmp/runtime/src/kmp_taskdeps.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h (diff)
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/depend.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp.h (diff)
Commit 59d58863bc0ea72a396aa9b08a7a5cb3f29e75b6 by Raphael Isemann
[lldb] Require Clang 8 for gpubnames test

This test is using -gpubnames which is only available since Clang 8. The
original Clang 7 requirement was based on the availability of
-accel-tables=Dwarf (which the test initially used before being changed to
-gpubnames in commit 15a6df52efaa7 ).
The file was modifiedlldb/test/API/lang/c/forward/TestForwardDeclaration.py (diff)
Commit dab05335a64250703ac528418d56301ce6c48bd6 by Dylan.Fleming
[SVE] Fix PromoteIntRes_TRUNCATE not to call getVectorNumElements

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D104115
The file was modifiedllvm/test/CodeGen/AArch64/sve-trunc.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)
Commit 7fff39d9b0469b75e589f9d47055a33422376da1 by gchatelet
[libc] Add a set of elementary operations

Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.

Original commit message:
Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop).
The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.

A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
The file was addedlibc/src/string/memory_utils/elements.h
The file was addedlibc/test/src/string/memory_utils/elements_test.cpp
The file was modifiedlibc/test/src/string/memory_utils/CMakeLists.txt (diff)
The file was removedlibc/src/string/memory_utils/memcpy_utils.h
The file was modifiedlibc/src/string/x86_64/memcpy.cpp (diff)
The file was addedlibc/src/string/memory_utils/elements_x86.h
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
The file was removedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
The file was modifiedlibc/src/string/memcpy.cpp (diff)
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt (diff)
The file was addedlibc/test/src/string/memory_utils/memory_access_test.cpp
The file was modifiedlibc/src/string/aarch64/memcpy.cpp (diff)
The file was modifiedlibc/src/string/memory_utils/memset_utils.h (diff)
Commit 5636402bc0c92eec2faf46edb0fb733d78fa259e by amilendra.kodithuwakku
[libcxx] Fix exception raised during downstream bare-metal libunwind tests

Fix for the following exception.

AttributeError: 'TestingConfig' object has no attribute 'target_triple'

Related revision: https://reviews.llvm.org/D102012

'TestingConfig' object has no attribute 'target_triple'

Reviewed By: #libunwind, miyuki, danielkiss, mstorsjo

Differential Revision: https://reviews.llvm.org/D103140
The file was modifiedlibunwind/test/libunwind/test/config.py (diff)
Commit 7f3ac6714a561553500cbd24331a8dc7f2375964 by jay.foad
[AMDGPU] Set SALU, VALU and other instruction type flags on Real instructions

This does not affect codegen but might benefit llvm-mca.
The file was modifiedllvm/lib/Target/AMDGPU/VOP2Instructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOPCInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOPInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOP1Instructions.td (diff)
Commit dbc07ef5ca53531e8ee6c54ec3c3f04bddef267d by Ben.Dunbobbin
[llvm-symbolizer] improve test and fix doc example after recent --print-source-context-lines behaviour change

I believe that after https://reviews.llvm.org/D102355 the behaviour of --print-source-context-lines has changed.

Before: --print-source-context-lines=3 prints 4 lines.
After: --print-source-context-lines=3 prints 3 lines.

Adjust the example in the docs for this change and make the testing a little more robust.

Differential Revision: https://reviews.llvm.org/D104114
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst (diff)
The file was modifiedllvm/test/tools/llvm-symbolizer/print_context.c (diff)
Commit 39efbf91361ea7e8ee988f6fca386cb1f97f0736 by llvm-dev
[X86][AVX] Regenerate pr15296.ll tests

Exposes some really bad shift lowering codegen in shiftInput___canonical
The file was modifiedllvm/test/CodeGen/X86/pr15296.ll (diff)
Commit a1678987d982ef3d29ad4eacd4d4c48641494857 by nicolas.vasilache
[mlir] NFC - Drop newline form BlockArgument printing.

Differential Revision: https://reviews.llvm.org/D104368
The file was modifiedmlir/lib/IR/AsmPrinter.cpp (diff)
Commit 70b37f4c03cd189c94167dc22d9f5303c8773092 by andrea.dibiagio
[MCA][InstrBuilder] Always check for implicit uses of resource units (PR50725).

When instructions are issued to the underlying pipeline resources, the
mca::ResourceManager should also check for the presence of extra uses induced by
the explicit consumption of multiple partially overlapping group resources.

Fixes PR50725
The file was modifiedllvm/lib/MCA/InstrBuilder.cpp (diff)
The file was modifiedllvm/lib/MCA/HardwareUnits/ResourceManager.cpp (diff)
The file was addedllvm/test/tools/llvm-mca/X86/SkylakeClient/PR50725.s
The file was modifiedllvm/include/llvm/MCA/Instruction.h (diff)
Commit 87784cc6fb3453a17e0e7826b943a1d93cbfeccf by Louis Dionne
[libc++] Undeprecate the std::allocator<void> specialization

While the std::allocator<void> specialization was deprecated by
https://wg21.link/p0174#2.2, the *use* of std::allocator<void> by users
was not. The intent was that std::allocator<void> could still be used
in C++17 and C++20, but starting with C++20 (with the removal of the
specialization), std::allocator<void> would use the primary template.
That intent was called out in wg21.link/p0619r4#3.9.

As a result of this patch, _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS
will also not control whether the explicit specialization is provided or
not. It shouldn't matter, since in C++20, one can simply use the primary
template.

Fixes http://llvm.org/PR50299

Differential Revision: https://reviews.llvm.org/D104323
The file was modifiedlibcxx/test/libcxx/depr/depr.default.allocator/allocator_types.cxx2a.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp (diff)
The file was addedlibcxx/test/std/utilities/memory/default.allocator/allocator_types.void.compile.pass.cpp
The file was removedlibcxx/test/std/utilities/memory/default.allocator/allocator_void.deprecated_in_cxx17.verify.cpp
The file was modifiedlibcxx/include/memory (diff)
The file was modifiedlibcxx/docs/UsingLibcxx.rst (diff)
The file was addedlibcxx/test/std/utilities/memory/default.allocator/PR50299.compile.pass.cpp
The file was removedlibcxx/test/libcxx/depr/depr.default.allocator/allocator_void.cxx2a.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp (diff)
The file was modifiedlibcxx/include/__memory/allocator.h (diff)
Commit e4ecd83fe969c77c23f7a5bd4d5ed521550b5737 by david.spickett
[llvm][AArch64] Handle arrays of struct properly (from IR)

This only applies to FastIsel. GlobalIsel seems to sidestep
the issue.

This fixes https://bugs.llvm.org/show_bug.cgi?id=46996

One of the things we do in llvm is decide if a type needs
consecutive registers. Previously, we just checked if it
was an array or not.
(plus an SVE specific check that is not changing here)

This causes some confusion when you arbitrary IR like:
```
%T1 = type { double, i1 };
define [ 1 x %T1 ] @foo() {
entry:
  ret [ 1 x %T1 ] zeroinitializer
}
```

We see it is an array so we call CC_AArch64_Custom_Block
which bails out when it sees the i1, a type we don't want
to put into a block.

This leaves the location of the double in some kind of
intermediate state and leads to odd codegen. Which then crashes
the backend because it doesn't know how to implement
what it's been asked for.

You get this:
```
  renamable $d0 = FMOVD0
  $w0 = COPY killed renamable $d0
```

Rather than this:
```
  $d0 = FMOVD0
  $w0 = COPY $wzr
```

The backend knows how to copy 64 bit to 64 bit registers,
but not 64 to 32. It can certainly be taught how but the real
issue seems to be us even trying to assign a register block
in the first place.

This change makes the logic of
AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters
a bit more in depth. If we find an array, also check that all the
nested aggregates in that array have a single member type.

Then CC_AArch64_Custom_Block's assumption of a type that looks
like [ N x type ] will be valid and we get the expected codegen.

New tests have been added to exercise these situations. Note that
some of the output is not ABI compliant. The aim of this change is
to simply handle these situations and not to make our processing
of arbitrary IR ABI compliant.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D104123
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
The file was addedllvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll
Commit 66234ce49f254fc1d83de41daae8c8a16423bec2 by jay.foad
[AMDGPU] Set VOP3P flag on Real instructions

This does not affect codegen but might benefit llvm-mca.
The file was modifiedllvm/lib/Target/AMDGPU/VOP3PInstructions.td (diff)
Commit b9ce8ea4542fdc57e34e23fc285752d899a01030 by james.henderson
[obj2yaml] Address D104035 review comments

Accidentally missed from commit 5c1639fe064b.

Differential Revision: https://reviews.llvm.org/D104035
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp (diff)
The file was modifiedllvm/test/tools/obj2yaml/ELF/shstrtab.yaml (diff)
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp (diff)
Commit 2a936be38864fea5f11adf68e611fabc37aca6c1 by Dylan.Fleming
[SVE] Selection failure with scalable insertelements

Reviewed By: efriedma, CarolineConcatto

Differential Revision: https://reviews.llvm.org/D104244
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-insert-element.ll (diff)
Commit d52d1b93c3f5666a2d324a3cd6f505ae1dfb469a by jezng
[lld-macho] Downgrade version mismatch to warning

It's a warning in ld64. While having LLD be stricter would be nice, it
makes it harder for it to be a drop-in replacement into existing builds.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D104333
The file was modifiedlld/test/MachO/invalid/incompatible-arch.s (diff)
The file was modifiedlld/MachO/InputFiles.cpp (diff)
Commit f387c8545d3a729eaf0e76c22f445a2209705814 by yitzhakm
[libTooling][NFC] Refactor implemenation of Transformer Stencils to use standard OOP

Currently, the implementation combines OOP and overloads, using a template to
tie the two together. In practice, this has proven confusing with no
benefits. This patch simplifies the code to use standard OOP design (a
collection of classes deriving from an interface).

Differential Revision: https://reviews.llvm.org/D104317
The file was modifiedclang/lib/Tooling/Transformer/Stencil.cpp (diff)
Commit 08c75fc5e3589dff452901b0df911608929df132 by sjoerd.meijer
[FuncSpec] Fixed prefix typo in test function-specialization-noexec.ll. NFC.
The file was modifiedllvm/test/Transforms/FunctionSpecialization/function-specialization-noexec.ll (diff)
Commit ce95200b7942bb0683fd491800bbd9e1dc908e04 by spatel
[InstSimplify] propagate poison through FP ops

We already have this fold:
  fadd float poison, 1.0 --> poison
...via ConstantFolding, so this makes the behavior consistent
if the other operand(s) are non-constant.

The fold for undef was added before poison existed as a
value/type in IR.

This came up in D102673 / D103169
because we're trying to sort out the more complicated handling
for constrained math ops.
We should have the handling for the regular instructions done
first, so we can build on that (or diverge as needed).

Differential Revision: https://reviews.llvm.org/D104383
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll (diff)
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/fp-undef-poison.ll (diff)
Commit b5c4fc0f232b6368bbd7cd8681a6931f2c30ad02 by vyacheslav.p.zakharin
[NFC][libomptarget] Reduce the dependency on libelf

This change-set removes libelf usage from elf_common part of the plugins.
libelf is still used in x86_64 generic plugin code and in some plugins
(e.g. amdgpu) - these will have to be cleaned up in separate checkins.

Differential Revision: https://reviews.llvm.org/D103545
The file was addedopenmp/libomptarget/plugins/common/elf_common/elf_common.cpp
The file was modifiedopenmp/libomptarget/plugins/remote/server/CMakeLists.txt (diff)
The file was modifiedopenmp/libomptarget/plugins/common/elf_common/CMakeLists.txt (diff)
The file was modifiedopenmp/libomptarget/plugins/common/elf_common/elf_common.h (diff)
The file was modifiedopenmp/libomptarget/plugins/amdgpu/CMakeLists.txt (diff)
Commit ef16c8eaa5cd567975956ec0b52b3648365a8ba1 by andrea.dibiagio
Reapply "[MCA] Adding the CustomBehaviour class to llvm-mca".

The original change was pushed in main as commit f7a23ecece52.
It was then reverted by commit a04f01bab2 because it caused linker failures
on buildbots that don't build the AMDGPU target.

--

Some instructions are not defined well enough within the target’s scheduling
model for llvm-mca to be able to properly simulate its behaviour. The ideal
solution to this situation is to modify the scheduling model, but that’s not
always a viable strategy. Maybe other parts of the backend depend on that
instruction being modelled the way that it is. Or maybe the instruction is quite
complex and it’s difficult to fully capture its behaviour with tablegen. The
CustomBehaviour class (which I will refer to as CB frequently) is designed to
provide intuitive scaffolding for developers to implement the correct modelling
for these instructions.

More details are available in the original commit log message (f7a23ecece52).

Differential Revision: https://reviews.llvm.org/D104149
The file was modifiedllvm/include/llvm/MCA/HWEventListener.h (diff)
The file was modifiedllvm/lib/MCA/InstrBuilder.cpp (diff)
The file was modifiedllvm/lib/MCA/Context.cpp (diff)
The file was modifiedllvm/docs/CommandGuide/llvm-mca.rst (diff)
The file was addedllvm/tools/llvm-mca/lib/AMDGPU/CMakeLists.txt
The file was modifiedllvm/include/llvm/MCA/Instruction.h (diff)
The file was addedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.cpp
The file was modifiedllvm/lib/MCA/CMakeLists.txt (diff)
The file was modifiedllvm/tools/llvm-mca/CMakeLists.txt (diff)
The file was addedllvm/include/llvm/MCA/CustomBehaviour.h
The file was modifiedllvm/tools/llvm-mca/Views/DispatchStatistics.cpp (diff)
The file was modifiedllvm/lib/MCA/Stages/InOrderIssueStage.cpp (diff)
The file was addedllvm/tools/llvm-mca/lib/CMakeLists.txt
The file was modifiedllvm/tools/llvm-mca/llvm-mca.cpp (diff)
The file was modifiedllvm/include/llvm/MCA/Context.h (diff)
The file was addedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.h
The file was addedllvm/lib/MCA/CustomBehaviour.cpp
The file was modifiedllvm/include/llvm/MCA/Stages/InOrderIssueStage.h (diff)
Commit 35a085bfabef2e5696286b5ca55da962ffd6c4e4 by llvmgnsyncbot
[gn build] Port ef16c8eaa5cd
The file was modifiedllvm/utils/gn/secondary/llvm/lib/MCA/BUILD.gn (diff)
Commit 572e506b55f0ad181ddbb04d889651caa5a287e8 by spatel
[ValueTracking] add tests for propagatesPoison with FP ops; NFC

Verify that this matches the behavior in InstSimplify:
D104383 / ce95200b7942

We still need to add code/tests for FP intrinsics.
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp (diff)
Commit c5076d83716e8ce93cc76c9f4c3c1006de0be47f by cjdb
Revert "Revert "[libcxx][module-map] creates submodules for private headers""

This reverts commit d9633f229c36f292dab0e5f510ac635cfaf3a798 as a
workaround was discovered.

Differential Revision: https://reviews.llvm.org/D104170
The file was modifiedlibcxx/include/module.modulemap (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp (diff)
Commit 2193347e72fad6a78ce4a96c8d89f9a43a028e79 by angandhi
[M68k][GloballSel] Adding initial GlobalISel infrastructure

Wiring up GlobalISel for the M68k backend

Differential Revision: https://reviews.llvm.org/D101819
The file was addedllvm/test/CodeGen/M68k/GlobalISel/irtranslator-ret.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CallLowering.h (diff)
The file was addedllvm/lib/Target/M68k/GlSel/M68kRegisterBankInfo.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)
The file was addedllvm/lib/Target/M68k/GlSel/M68kCallLowering.h
The file was addedllvm/lib/Target/M68k/GlSel/M68kRegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/M68k/M68k.td (diff)
The file was modifiedllvm/lib/Target/M68k/M68kSubtarget.h (diff)
The file was addedllvm/lib/Target/M68k/GlSel/M68kLegalizerInfo.h
The file was modifiedllvm/lib/Target/M68k/M68kSubtarget.cpp (diff)
The file was modifiedllvm/lib/Target/M68k/CMakeLists.txt (diff)
The file was modifiedllvm/lib/Target/M68k/M68k.h (diff)
The file was addedllvm/lib/Target/M68k/GlSel/M68kLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/M68k/M68kTargetMachine.cpp (diff)
The file was addedllvm/lib/Target/M68k/GlSel/M68kRegisterBanks.td
The file was addedllvm/lib/Target/M68k/GlSel/M68kInstructionSelector.cpp
The file was addedllvm/lib/Target/M68k/GlSel/M68kCallLowering.cpp
Commit 1de18ad8d79eb328ad410fa60209e5dfa19752c8 by i
[llvm-objcopy] Make ihex writer similar to binary writer

There is no need to differentiate whether `UseSegments` is true or
false. Unifying the cases makes the behavior closer to BinaryWriter.

This improves compatibility with objcopy because SHF_ALLOC sections not in
a PT_LOAD will not be skipped. Such cases are usually erroneous input, though.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D104186
The file was modifiedllvm/test/tools/llvm-objcopy/ELF/ihex-writer.test (diff)
The file was modifiedllvm/test/tools/llvm-objcopy/ELF/Inputs/ihex-elf-segments.yaml (diff)
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp (diff)
Commit 773ad55a393f368cc92b1611c52e493ed45a353f by blangmuir
[index] Fix performance regression with indexing macros

When using FileIndexRecord with macros, symbol references can be seen
out of source order, which was causing a regression to insert the
symbols into a vector. Instead, we now lazily sort the vector. The
impact is small on most code, but in very large files with many macro
references (M) near the beginning of the file followed by many decl
references (D) it was O(M*D). A particularly bad protobuf-generated
header was observed with a 100% regression in practice.

rdar://78628133
The file was modifiedclang/lib/Index/FileIndexRecord.h (diff)
The file was modifiedclang/lib/Index/FileIndexRecord.cpp (diff)
Commit 8ba9ee46e465a56a54f8361703d3af7f4bc98d63 by pklausler
[flang] Correct the subscripts used for arguments to character intrinsics

When chasing down another unrelated bug, I noticed that the
implementations of various character intrinsic functions assume
that the lower bounds of (some of) their arguments were 1.
This isn't necessarily the case, so I've cleaned them up, tweaked
the unit tests to exercise the fix, and regularized the allocation
pattern used for results to use SetBounds() before Allocate() rather
than the old original Descriptor::Allocate() wrapper around
CFI_allocate().

Since there were few other remaining uses of the old original
Descriptor::Allocate() wrapper, I also converted them to the
new one and deleted the old one.

Differential Revision: https://reviews.llvm.org/D104325
The file was modifiedflang/runtime/transformational.cpp (diff)
The file was modifiedflang/unittests/Evaluate/reshape.cpp (diff)
The file was modifiedflang/runtime/descriptor.h (diff)
The file was modifiedflang/unittests/RuntimeGTest/CharacterTest.cpp (diff)
The file was modifiedflang/runtime/descriptor.cpp (diff)
The file was modifiedflang/runtime/character.cpp (diff)
Commit 1a76bff6264abb3f19fa78d74ec78196e2da7d34 by i
RISCVFixupKinds.h: Don’t duplicate function or class name at the beginning of the comment && fix some comments
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h (diff)
Commit a993bb08b8348c947a733377655af3de610cf28e by spatel
[ValueTracking] add FP intrinsics to test for propagatesPoison; NFC

I'm not sure what behavior we want if the FP environment is
not default (also not sure if there's a way to enumerate
the full list of intrinsics programmatically), but currently
these are all defaulting to 'false' (doesn't propagate).
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp (diff)
Commit 619bfe8bd23f76b22f0a53fedafbfc8c97a15f12 by ajcbik
[mlir][sparse] support new kind of scalar in sparse linalg generic op

We have several ways of introducing a scalar invariant value into
linalg generic ops (should we limit this somewhat?). This revision
makes sure we handle all of them correctly in the sparse compiler.

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D104335
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp (diff)
The file was addedmlir/test/Dialect/SparseTensor/sparse_scalars.mlir
Commit cef9b96b01b75fedea5e91ece776228f4088ba78 by hoy
[CSSPGO] Report zero-count probe in profile instead of dangling probes.

Previously dangling samples were represented by INT64_MAX in sample profile while probes never executed were not reported. This was based on an observation that dangling probes were only at a smaller portion than zero-count probes. However, with compiler optimizations, dangling probes end up becoming at large portion of all probes in general and reporting them does not make sense from profile size point of view. This change flips sample reporting by reporting zero-count probes instead. This enabled dangling probe to be represented by none (missing entry in profile). This has a couple benefits:

1. Reducing sample profile size in optimize mode, even when the number of non-executed probes outperform the number of dangling probes, since INT64_MAX takes more space over 0 to encode.

2. Binary size savings. No need to encode dangling probe anymore, since missing probes are treated as dangling in the profile reader.

3. Reducing compiler work to track dangling probes. However, for probes that are real dead and removed, we still need the compiler to identify them so that they can be reported as zero-count, instead of mistreated as dangling probes.

4. Improving counts quality by respecting the counts already collected on the non-dangling copy of a probe. A probe, when duplicated, gets two copies at runtime. If one of them is dangling while the other is not, merging the two probes at profile generation time will cause the real samples collected on the non-dangling one to be discarded. Not reporting the dangling counterpart will keep the real samples.

5. Better readability.

6. Be consistent with non-CS dwarf line number based profile. Zero counts are trusted by the compiler counts inferencer while missing counts will be inferred by the compiler.

Note that the current patch does include any work for #3. There will be follow-up changes.

For #1, I've seen for a large Facebook service, the text profile is reduced by 7%. For extbinary profile, the size of  LBRProfileSection is reduced by 35%.

For #4, I have seen general counts quality for SPEC2017 is improved by 10%.

Reviewed By: wenlei, wlei, wmi

Differential Revision: https://reviews.llvm.org/D104129
The file was modifiedllvm/lib/ProfileData/ProfileSummaryBuilder.cpp (diff)
The file was modifiedllvm/test/tools/llvm-profgen/truncated-pseudoprobe.test (diff)
The file was modifiedllvm/include/llvm/ProfileData/SampleProf.h (diff)
The file was modifiedllvm/test/tools/llvm-profgen/merge-cold-profile.test (diff)
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-pseudoprobe.test (diff)
The file was modifiedllvm/test/tools/llvm-profgen/fname-canonicalization.test (diff)
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-dangling-pseudoprobe.test (diff)
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp (diff)
The file was modifiedllvm/lib/ProfileData/SampleProf.cpp (diff)
The file was modifiedllvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-inline.prof (diff)
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-pseudoprobe.test (diff)
Commit d619cf5ac5bffa4020f6f391afb23a7a9a5ae568 by i
[llvm-objcopy][MachO] Copy LC_LINKER_OPTIMIZATION_HINT

This fixes `error: unsupported load command (cmd=0x2e)`
The file was modifiedllvm/test/tools/llvm-objcopy/MachO/basic-executable-copy.test (diff)
The file was modifiedllvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp (diff)
Commit b8bbb9723af3ab5bfa11366480ecf42b45680101 by jezng
[lld-macho][nfc] Put back shouldOmitFromOutput() asserts

I removed them in rG5de7467e982 but @thakis pointed out that
they were useful to keep, so here they are again. I've also converted
the `!isCoalescedWeak()` asserts into `!shouldOmitFromOutput()` asserts,
since the latter check subsumes the former.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D104169
The file was modifiedlld/MachO/InputSection.h (diff)
The file was modifiedlld/MachO/InputSection.cpp (diff)
The file was modifiedlld/MachO/UnwindInfoSection.cpp (diff)
The file was modifiedlld/MachO/MapFile.cpp (diff)
Commit eeac6b2beceeb82382354d730b615159af3bc70e by jezng
[lld-macho] Handle multiple LC_LINKER_OPTIONs

We previously only parsed the first one.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D104352
The file was modifiedlld/MachO/InputFiles.cpp (diff)
The file was modifiedlld/test/MachO/lc-linker-option.ll (diff)
Commit 560636e5497a85d036a39ad5bf599d26828f66b3 by jezng
[lld-macho] Put DATA_IN_CODE immediately after FUNCTION_STARTS

codesign checks for this.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D104354
The file was modifiedlld/test/MachO/linkedit-contiguity.s (diff)
The file was modifiedlld/MachO/OutputSegment.cpp (diff)
Commit 3061334e0d887b260b023ca5613359a84b7da8e7 by pklausler
[flang] Don't crash on some bogus expressions

Recover more gracefully from user errors in expressions.

Differential Revision: https://reviews.llvm.org/D104326
The file was modifiedflang/lib/Semantics/resolve-names.cpp (diff)
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
The file was modifiedflang/test/Semantics/select-rank.f90 (diff)
Commit 27963ccf07683df951235948622bd2bef33c0c6d by efriedma
[NFC][ScalarEvolution] Refactor createNodeForSelectOrPHI

In preparation for D103660.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
Commit a6559b42cee2a1a34bd75cf78a70c64429fb5cf8 by joker.eph
Fix verifier crashing on some invalid IR

In a region with multiple blocks the verifier will try to look for
dominance and may get successor list for blocks, even though a block
may be empty or does not end with a terminator.

Differential Revision: https://reviews.llvm.org/D104411
The file was modifiedmlir/lib/IR/Block.cpp (diff)
The file was modifiedmlir/test/IR/invalid.mlir (diff)
Commit 066b3207234d098b6bf25d7c55e47c5a7b8dcfc7 by joker.eph
Use early exist and simplify a condition in Block SuccessorRange (NFC)
The file was modifiedmlir/lib/IR/Block.cpp (diff)
Commit c29555342ce18cd4769228db650dbcd817a6e474 by minyihh
[MCA] Anchoring the vtable of CustomBehaviour

Put the dtor of mca::CustomBehaviour into the cpp file to avoid
undefined vtable when linking libLLVMMCACustomBehaviourAMDGPU as shared
library.

Differential Revision: https://reviews.llvm.org/D104401
The file was modifiedllvm/lib/MCA/CustomBehaviour.cpp (diff)
The file was modifiedllvm/tools/llvm-mca/lib/AMDGPU/CMakeLists.txt (diff)
The file was modifiedllvm/include/llvm/MCA/CustomBehaviour.h (diff)
Commit e5813a683a81001d3853cb3d2b1397a11e98c1dd by pklausler
[flang] Fix crashes on calls to non-procedures

When a procedure reference is attempted to an entity that just
isn't a procedure, say so.

Differential Revision: https://reviews.llvm.org/D104329
The file was modifiedflang/test/Semantics/resolve09.f90 (diff)
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
The file was addedflang/test/Semantics/call19.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp (diff)
Commit 0e760a0870e61b0a150bdea24532ad054774ade4 by jpienaar
Add hook for dialect specializing processing blocks post inlining calls

This allows for dialects to do different post-processing depending on operations with the inliner (my use case requires different attribute propagation rules depending on call op). This hook runs before the regular processInlinedBlocks method.

Differential Revision: https://reviews.llvm.org/D104399
The file was modifiedmlir/test/Transforms/inlining.mlir (diff)
The file was modifiedmlir/lib/Transforms/Utils/InliningUtils.cpp (diff)
The file was modifiedmlir/include/mlir/Transforms/InliningUtils.h (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp (diff)
Commit 51d43bbc4662202d7f694c43b968fb289a56a355 by uday
[MLIR] Fix affine parallelize pass.

To control the number of outer parallel loops, we need to process the
outer loops first and hence pre-order walk fixes the issue.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D104361
The file was modifiedmlir/test/Dialect/Affine/parallelize.mlir (diff)
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp (diff)
Commit 54384d172397402a3ad606ef990af488f344eb19 by uday
[MLIR] Make store to load fwd condition less conservative

Make store to load fwd condition for -memref-dataflow-opt less
conservative. Post dominance info is not really needed. Add additional
check for common cases.

Differential Revision: https://reviews.llvm.org/D104174
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineScalarReplacement.cpp (diff)
The file was modifiedmlir/test/Dialect/Affine/scalrep.mlir (diff)
Commit 439c9206945aba15d74d5bcaef3bf3f4d1e32b5e by yitzhakm
[ASTMatchers] Fix bug in `hasUnaryOperand`

Currently, `hasUnaryOperand` fails for the overloaded `operator*`. This patch fixes the bug and
adds tests for this case.

Differential Revision: https://reviews.llvm.org/D104389
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h (diff)
Commit f9a6d47c3642cb07b5e98e8b08330ccc95b85dd8 by ajcbik
Add sparse matrix multiplication integration test

Adds an integration test for the SPMM (sparse matrix multiplication) kernel, which multiplies a sparse matrix by a dense matrix, resulting in a dense matrix. This is just a simple modification on the existing matrix-vector multiplication kernel.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D104334
The file was addedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
Commit c7ed4fe56e0a6c664c5fb5dedaedb426abe7224d by yitzhakm
[libTooling] Change `access` stencil to recognize use of `operator*`.

Currently, `access` doesn't recognize a dereferenced smart pointer. So,
`access(e, "field")` where `e = *x`, yields:
* `x->field`, for normal-pointer x,
* `(*x).field`, for smart-pointer x.

This patch normalizes handling of smart pointer to match normal pointer, when
the smart pointer type supports `->`.

Differential Revision: https://reviews.llvm.org/D104390
The file was modifiedclang/lib/Tooling/Transformer/Stencil.cpp (diff)
The file was modifiedclang/unittests/Tooling/StencilTest.cpp (diff)
Commit 25073a4ecfc9b2e3cb76776185e63bfdb094cd98 by terry.l.wilmarth
[OpenMP] Add Two-level Distributed Barrier

Two-level distributed barrier is a new experimental barrier designed
for Intel hardware that has better performance in some cases than the
default hyper barrier.

This barrier is designed to handle fine granularity parallelism where
barriers are used frequently with little compute and memory access
between barriers.  There is no need to use it for codes with few
barriers and large granularity compute, or memory intensive
applications, as little difference will be seen between this barrier
and the default hyper barrier. This barrier is designed to work
optimally with a fixed number of threads, and has a significant setup
time, so should NOT be used in situations where the number of threads
in a team is varied frequently.

The two-level distributed barrier is off by default -- hyper barrier
is used by default. To use this barrier, you must set all barrier
patterns to use this type, because it will not work with other barrier
patterns.  Thus, to turn it on, the following settings are required:

KMP_FORKJOIN_BARRIER_PATTERN=dist,dist
KMP_PLAIN_BARRIER_PATTERN=dist,dist
KMP_REDUCTION_BARRIER_PATTERN=dist,dist

Branching factors (set with KMP_FORKJOIN_BARRIER, KMP_PLAIN_BARRIER,
and KMP_REDUCTION_BARRIER) are ignored by the two-level distributed
barrier.

Differential Revision: https://reviews.llvm.org/D103121
The file was modifiedopenmp/runtime/src/kmp_barrier.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_stats.h (diff)
The file was modifiedopenmp/runtime/src/kmp_os.h (diff)
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp.h (diff)
The file was modifiedopenmp/runtime/src/kmp_settings.cpp (diff)
The file was addedopenmp/runtime/src/kmp_barrier.h
The file was modifiedopenmp/runtime/src/kmp_atomic.cpp (diff)
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp (diff)
The file was modifiedopenmp/runtime/src/z_Linux_util.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_global.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_wait_release.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_str.h (diff)
The file was modifiedopenmp/runtime/src/i18n/en_US.txt (diff)
The file was modifiedopenmp/runtime/src/kmp_str.cpp (diff)
The file was modifiedopenmp/runtime/test/barrier/omp_barrier.c (diff)
The file was modifiedopenmp/runtime/src/kmp_wait_release.h (diff)
Commit ec3049c79beb5ea24921dd5e4f011cf8ade1e9bd by pklausler
[flang] Cope with errors with array constructors

When a program attempts to put something like a subprogram
into an array constructor, emit an error rather than crashing.

Differential Revision: https://reviews.llvm.org/D104336
The file was modifiedflang/test/Semantics/array-constr-values.f90 (diff)
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
Commit 46446e398b5202303280d9e18676c07529f1d0b0 by andrzej.warzynski
[flang][driver] Add missing `! REQUIRES` LIT directive

The test added in https://reviews.llvm.org/D104305 will only work with
the new driver and should be marked as such.

Sending this without a review as it's fairly straightforward and fixes
test failures for developers that don't want to build the new driver.
The file was modifiedflang/test/Driver/dump-all.f90 (diff)
Commit 47f18af55fd59e813144cc76711806d57a160e50 by pklausler
[flang] Fold MAXVAL & MINVAL

Implement constant folding for the reduction transformational
intrinsic functions MAXVAL and MINVAL.

In anticipation of more folding work to follow, with (I hope)
some common infrastructure, these two have been implemented in a
new header file.

Differential Revision: https://reviews.llvm.org/D104337
The file was modifiedflang/include/flang/Evaluate/integer.h (diff)
The file was modifiedflang/lib/Evaluate/shape.cpp (diff)
The file was modifiedflang/lib/Evaluate/fold-integer.cpp (diff)
The file was addedflang/lib/Evaluate/fold-reduction.h
The file was modifiedflang/lib/Evaluate/tools.cpp (diff)
The file was addedflang/test/Evaluate/folding20.f90
The file was modifiedflang/include/flang/Evaluate/call.h (diff)
The file was modifiedflang/include/flang/Evaluate/shape.h (diff)
The file was modifiedflang/lib/Evaluate/fold-implementation.h (diff)
The file was modifiedflang/include/flang/Evaluate/tools.h (diff)
The file was modifiedflang/lib/Evaluate/fold-real.cpp (diff)
The file was modifiedflang/lib/Evaluate/fold-character.cpp (diff)
The file was modifiedflang/runtime/reduction.cpp (diff)
Commit 8b062b61606270950645d73b68036c9ab2c7c4bc by kostyak
[scudo] Ensure proper allocator alignment in TSD test

The `MockAllocator` used in `ScudoTSDTest` wasn't allocated
properly aligned, which resulted in the `TSDs` of the shared
registry not being aligned either. This lead to some failures
like: https://reviews.llvm.org/D103119#2822008

This changes how the `MockAllocator` is allocated, same as
Vitaly did in the combined tests, properly aligning it, which
results in the `TSDs` being aligned as well.

Add a `DCHECK` in the shared registry to check that it is.

Differential Revision: https://reviews.llvm.org/D104402
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/tsd_test.cpp (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/quarantine.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h (diff)
Commit c375ec86132984bc3915323fbe3f8c71f4d5503f by pklausler
[flang] Use a "double-double" accumulator in SUM

Use a "double-double" accumulator, a/k/a Kahan summation,
in the SUM intrinsic in the runtime for real & complex.
This seems to be the best-recommended technique for reducing
error, as opposed to the initial implementation of SUM's
distinct accumulators for positive and negative items.

Differential Revision: https://reviews.llvm.org/D104338
The file was modifiedflang/runtime/sum.cpp (diff)
Commit f9aba9a5afe09788eceb9879aa5c3ad345e0f1e9 by Adrian Prantl
Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h

since it is now used by a public header file (Signposts.h).
This fixes the standalone LLDB build.
The file was modifiedllvm/include/llvm/Support/Signposts.h (diff)
The file was modifiedllvm/lib/Support/Signposts.cpp (diff)
The file was modifiedllvm/include/llvm/Config/config.h.cmake (diff)
The file was modifiedllvm/include/llvm/Config/llvm-config.h.cmake (diff)
The file was modifiedlldb/include/lldb/Utility/Timer.h (diff)
Commit 053dbb939d4a4be5cc7e156441ecedef599a4a6f by joachim
Use `-cfg-func-name` value as filter for `-view-cfg`, etc.

Currently the value is only used when calling `F->viewCFG()` which is missing out on its potential and usefulness.
So I added the check to the printer passes as well.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D102011
The file was modifiedllvm/lib/Analysis/CFGPrinter.cpp (diff)
The file was addedllvm/test/Other/cfg-printer-filter.ll
The file was modifiedllvm/docs/Passes.rst (diff)
Commit fdf33771feeb23ecab25b61d37f5ad575a641a10 by pklausler
[flang] Implement runtime for IALL & IANY

We had IPARITY (xor-reduction) but I missed IALL (and)
and IANY (or).

Differential Revision: https://reviews.llvm.org/D104339
The file was modifiedflang/unittests/RuntimeGTest/Reduction.cpp (diff)
The file was modifiedflang/runtime/reduction.cpp (diff)
The file was modifiedflang/runtime/reduction.h (diff)
Commit a127dffc49e5031b7780b3c747e8970a6f2ce0ee by thakis
[gn build] (manually) port f9aba9a5afe
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (diff)
Commit 7cfb7a67c57dfb40518a0873137a21b0a8def503 by i
[mlir] Make Type::print and Type::dump const
The file was modifiedmlir/include/mlir/IR/Types.h (diff)
The file was modifiedmlir/lib/IR/AsmPrinter.cpp (diff)
Commit 07990571812df2a702daa2d7cbcd7c3f4e09cdda by powerman1st
[RISCV][test] Add new tests of SH*ADD in the zba extension

These tests will show the following optimization by future patches.

Rx + Ry * 6  => (SH1ADD (SH2ADD Rx, Ry), Ry)
Rx + Ry * 10 => (SH1ADD (SH3ADD Rx, Ry), Ry)
Rx + Ry * 12 => (SH2ADD (SH3ADD Rx, Ry), Ry)

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D104210
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll (diff)
Commit fc4f457fcc531871e86ecaaffc46ef98249b8e6a by pklausler
[flang] Fix ARM/POWER test failure (folding20.f90)

Recent code for folding MINVAL() didn't allow for architectures
whose C/C++ char type is unsigned, so the value of the maximum
Fortran character was incorrect.  This was caught by the
folding20.f90 test.  The fix is to avoid numeric_limits<> and
use hard values for max signed integers of various character kinds.

Pushing into llvm-project/main to restore ARM/POWER buildbots.
The file was modifiedflang/lib/Evaluate/fold-character.cpp (diff)
Commit c8a3f561ebfd6a5fd6c3efb65944760c7a1a446f by joker.eph
Decouple registring passes from specifying argument/description

This patch changes the (not recommended) static registration API from:

static PassRegistration<MyPass> reg("my-pass", "My Pass Description.");

to:

static PassRegistration<MyPass> reg;

And the explicit registration from:

  void registerPass("my-pass", "My Pass Description.",
                    [] { return createMyPass(); });

To:

  void registerPass([] { return createMyPass(); });

It is expected that Pass implementations overrides the getArgument() method
instead. This will ensure that pipeline description can be printed and parsed
back.

Differential Revision: https://reviews.llvm.org/D104421
The file was modifiedmlir/docs/PassManagement.md (diff)
The file was modifiedmlir/tools/mlir-tblgen/PassGen.cpp (diff)
The file was modifiedmlir/lib/Pass/PassRegistry.cpp (diff)
The file was modifiedmlir/test/python/pass_manager.py (diff)
The file was modifiedmlir/include/mlir/Pass/Pass.h (diff)
The file was modifiedmlir/include/mlir/Transforms/Passes.td (diff)
The file was modifiedmlir/test/Transforms/print-op-graph.mlir (diff)
The file was modifiedmlir/include/mlir/Pass/PassRegistry.h (diff)
Commit b5e22e6d4207cf939618492d365293fe6035075d by joker.eph
Migrate MLIR test passes to the new registration API

Make sure they all define getArgument()/getDescription().

Depends On D104421

Differential Revision: https://reviews.llvm.org/D104426
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestTraits.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestCallGraph.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineLoopUnswitching.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestSideEffects.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Affine/TestLoopPermutation.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SCF/TestSCFUtils.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestConvVectorization.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestMemRefDependenceCheck.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestInlining.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestLiveness.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestGLSLCanonicalization.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestOpaqueLoc.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuMemoryPromotion.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestPrintDefUse.cpp (diff)
The file was modifiedmlir/test/lib/Conversion/StandardToLLVM/TestConvertCallOp.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestAliasAnalysis.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestMemRefStrideCalculation.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgDistribution.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineLoopParametricTiling.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/DLTI/TestDataLayoutQuery.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/GPU/TestConvertGPUKernelToHsaco.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestFunc.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgHoisting.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp (diff)
The file was modifiedmlir/test/lib/Pass/TestDynamicPipeline.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestLoopMapping.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/StandardOps/TestComposeSubView.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestDominance.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Math/TestPolynomialApproximation.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestEntryPointAbi.cpp (diff)
The file was modifiedmlir/test/lib/Rewrite/TestPDLByteCode.cpp (diff)
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestPrintNesting.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestConstantFold.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/StandardOps/TestDecomposeCallGraphTypes.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/GPU/TestConvertGPUKernelToCubin.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestSymbolUses.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgElementwiseFusion.cpp (diff)
The file was modifiedmlir/test/lib/Reducer/MLIRTestReducer.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestVisitors.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestLoopFusion.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestTypes.cpp (diff)
The file was modifiedmlir/test/lib/Pass/TestPassManager.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestLoopUnrolling.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Tosa/TosaTestPasses.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestSlicing.cpp (diff)
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToCubin.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestNumberOfExecutions.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Math/TestExpandTanh.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestInterfaces.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuParallelLoopMapping.cpp (diff)
The file was modifiedmlir/test/lib/Analysis/TestMemRefBoundCheck.cpp (diff)
The file was modifiedmlir/test/lib/IR/TestMatchers.cpp (diff)
The file was modifiedmlir/test/lib/Transforms/TestLoopParametricTiling.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestAvailability.cpp (diff)
Commit 12c90e2e25dfd1d38250055efc21acb42d158912 by mizvekov
[clang] NRVO: Improvements and handling of more cases.

This expands NRVO propagation for more cases:

Parse analysis improvement:
* Lambdas and Blocks with dependent return type can have their variables
  marked as NRVO Candidates.

Variable instantiation improvements:
* Fixes crash when instantiating NRVO variables in Blocks.
* Functions, Lambdas, and Blocks which have auto return type have their
  variables' NRVO status propagated. For Blocks with non-auto return type,
  as a limitation, this propagation does not consider the actual return
  type.

This also implements exclusion of VarDecls which are references to
dependent types.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: Quuxplusone

Differential Revision: https://reviews.llvm.org/D99696
The file was modifiedclang/test/CodeGen/nrvo-tracking.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff)
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was addedclang/test/SemaObjCXX/block-capture.mm
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCoroutine.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
Commit 0a07343e34fc84052e6cc54e55654412b0ed01f4 by Stanislav.Mekhanoshin
[AMDGPU] Fixed constexpr expansion to handle multiple uses

Recently added convertConstantExprsToInstructions() does not handle
a case when a same ConstantExpr used multiple times in the same
instruction. A first use is replaced and the rest of the uses in the
instruction are replaced as well with the replaceUsesOfWith(). Then
function attempts to replace a constant already destroyed.

So far this interface is only used by the AMDGPU BE.

Differential Revision: https://reviews.llvm.org/D104425
The file was modifiedllvm/lib/IR/ReplaceConstant.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/lower-kernel-lds-constexpr.ll (diff)
Commit b88eb855b53184161ad1ea0eea1962100941cf0b by mizvekov
[clang] use correct builtin type for defaulted comparison analyzer

Fixes PR50591.

When analyzing classes with members which have user-defined conversion
operators to builtin types, the defaulted comparison analyzer was
picking the member type instead of the type for the builtin operator
which was selected as the best match.

This could either result in wrong comparison category being selected,
or a crash when runtime checks are enabled.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D103760
The file was modifiedclang/test/CXX/class/class.compare/class.spaceship/p2.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
Commit a6e8ed77762e2c973dbc60d6436d64a25f9f1bee by joker.eph
Improve error message on pass registration failures to include the faulty pass name
The file was modifiedmlir/lib/Pass/PassRegistry.cpp (diff)
Commit fcecfcb92c77b470d45885db5ef077f9c3166bc3 by riddleriver
[mlir-lsp-server][Docs] Tweak the documentation for the visual studio code extension

This revision updates the feature set, and cleans up the contributing section a little.
The file was modifiedmlir/docs/Tools/MLIRLSP.md (diff)
Commit 562bfe1274a17698c445ee3d7bb4a7911d74f657 by pklausler
[flang] Complain about more cases of calls to insufficiently defined procedures

When a function is called in a specification expression, it must be
sufficiently defined, and cannot be a recursive call (10.1.11(5)).
The best fix for this is to change the contract for the procedure
characterization infrastructure to catch and report such errors,
and to guarantee that it does emit errors on failed characterizations.
Some call sites were adjusted to avoid cascades.

Differential Revision: https://reviews.llvm.org/D104330
The file was modifiedflang/lib/Semantics/resolve-names.cpp (diff)
The file was modifiedflang/include/flang/Evaluate/characteristics.h (diff)
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
The file was modifiedflang/lib/Semantics/check-declarations.cpp (diff)
The file was modifiedflang/lib/Evaluate/intrinsics.cpp (diff)
The file was modifiedflang/test/Semantics/resolve102.f90 (diff)
The file was modifiedflang/lib/Semantics/pointer-assignment.cpp (diff)
The file was modifiedflang/lib/Evaluate/characteristics.cpp (diff)
Commit 42e2a90684196d6ffadf785e98ea5de0876b4a3e by Adrian Prantl
Relax language comparison when matching up C++ forward decls with definitions

when dealing with -gmodules debug info.

This fixes the bot failures on Darwin.

A recent clang change (presumably https://reviews.llvm.org/D104291)
introduced a bug where .pcm files would identify themselves as
DW_LANG_C_plus_plus, but the .o that references them would identify as
DW_LANG_C_plus_plus_14. While that bug needs to be fixed, too, it
shows that the current strict comparison also isn't meaningful.

rdar://79423225
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (diff)
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h (diff)
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (diff)
Commit d3c895a870d324d1fdfc177104785d551e5993f7 by riddleriver
[mlir-lsp-server] Add an explicit blurb on where to send code contributions.

When the vscode extension is published, it may be unclear how to contribute improvements to the extension. This revision makes it clear that contributions should follow the traditional LLVM guidelines.
The file was modifiedmlir/docs/Tools/MLIRLSP.md (diff)
Commit 854ef875b929da544d285436b00df74ee77323b1 by riddleriver
[mlir-vscode] Add a link to mlir.llvm.org at the top of the vscode extension doc
The file was modifiedmlir/docs/Tools/MLIRLSP.md (diff)
Commit 07481b37961f5b9a670c924367d2ead2e3c32b86 by kda
Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack.

Code was originally added for Myriad D46626 which was removed
with D104279.

related to: https://github.com/google/sanitizers/issues/1394

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D104419
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp (diff)
Commit 5a55205bb31f2cbc7573656da61cb9eb923bc8cc by riddleriver
[mlir] Fixed dynamic operand storage on big-endian machines.

Many tests fails by D101969 (https://reviews.llvm.org/D101969)
on big-endian machines. This patch changes bit order of
TrailingOperandStorage in big-endian machines. This patch
works on System Z (Triple = "s390x-ibm-linux", CPU = "z14").

Signed-off-by: Haruki Imai <imaihal@jp.ibm.com>

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104225
The file was modifiedmlir/include/mlir/IR/OperationSupport.h (diff)
Commit 01cb9c5fc52bf7978fe8e1b1dba98b0e1d304402 by th3charlie
[lld][MachO] Sort symbols in parallel in -map

source: https://bugs.llvm.org/show_bug.cgi?id=50689

When writing a map file, sort symbols in parallel using parallelSort.
Use address name to break ties if two symbols have the same address.

Reviewed By: thakis, int3

Differential Revision: https://reviews.llvm.org/D104346
The file was modifiedlld/MachO/MapFile.cpp (diff)
Commit 6a071e535fa43db038ea1a9329ebdeede3db31f9 by joker.eph
Improve error reporting on pass registration collision (NFC)

Differential Revision: https://reviews.llvm.org/D104430
The file was modifiedmlir/lib/Pass/PassRegistry.cpp (diff)
Commit 838490de7ede2a144094fa0f98cd91d8851d7e3d by Lang Hames
[ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper.

This matches WrapperFunctionResult's char buffer, cutting down on the number of
pointer casts needed.
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRPCTPCServer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/Serialization.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/TargetProcessControl.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcessControl.h (diff)
Commit 3ed3e438a75d9cf756f6004b60dd5b3feec96b0b by ravishankarm
[mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass.

Based on dicussion in
[this](https://llvm.discourse.group/t/remove-canonicalizer-for-memref-dim-via-shapedtypeopinterface/3641)
thread the pattern to resolve the `memref.dim` of a value that is a
result of an operation that implements the
`InferShapedTypeOpInterface` is moved to a separate pass instead of
running it as a canonicalization pass. This allows shape resolution to
happen when explicitly required, instead of automatically through a
canonicalization.

Differential Revision: https://reviews.llvm.org/D104321
The file was modifiedmlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.td (diff)
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp (diff)
The file was addedmlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td (diff)
The file was addedmlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt (diff)
The file was modifiedmlir/test/Dialect/Linalg/fusion-sequence.mlir (diff)
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir (diff)
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir (diff)
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir (diff)
The file was addedmlir/test/Interfaces/InferShapedTypeOpInterface/resolve-shaped-type-result-dims.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.h (diff)
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt (diff)
Commit 6f0e74cd583ba6fbb897d3ab16a9b75e91484275 by kristof.beyls
Avoid unnecessary AArch64 DSB in __clear_cache in some situations.

The dsb after instruction cache invalidation only needs to be executed
if any instruction cache invalidation did happen.
Without this change, if the CTR_EL0.DIC bit indicates that instruction
cache invalidation is not needed, __clear_cache would execute two dsb
instructions in a row; with the second one being unnecessary.

Differential Revision: https://reviews.llvm.org/D104371
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c (diff)
Commit b662651586bedd5350914f64463fe415105785c8 by kadircet
[clangd] Use command line adjusters for inserting compile flags

This fixes issues with `--` in the compile flags.

Fixes https://github.com/clangd/clangd/issues/632.

Differential Revision: https://reviews.llvm.org/D99523
The file was modifiedclang-tools-extra/clangd/CompileCommands.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ConfigCompile.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/CompileCommandsTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp (diff)
Commit 204014ec7557cde214ee8aae66661927bf9976f2 by kadircet
[clangd] Fix feature modules to drop diagnostics

Ignored diagnostics were only checked after level adjusters and assumed
it would stay the same for the rest. But it can also be modified by
FeatureModules.

Differential Revision: https://reviews.llvm.org/D103387
The file was modifiedclang-tools-extra/clangd/unittests/FeatureModulesTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Diagnostics.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Diagnostics.h (diff)
Commit 4c7f820b2b206bb7b4e32e575a78316701471203 by bjorn.a.pettersson
Update @llvm.powi to handle different int sizes for the exponent

This can be seen as a follow up to commit 0ee439b705e82a4fe20e2,
that changed the second argument of __powidf2, __powisf2 and
__powitf2 in compiler-rt from si_int to int. That was to align with
how those runtimes are defined in libgcc.
One thing that seem to have been missing in that patch was to make
sure that the rest of LLVM also handle that the argument now depends
on the size of int (not using the si_int machine mode for 32-bit).
When using __builtin_powi for a target with 16-bit int clang crashed.
And when emitting libcalls to those rtlib functions, typically when
lowering @llvm.powi), the backend would always prepare the exponent
argument as an i32 which caused miscompiles when the rtlib was
compiled with 16-bit int.

The solution used here is to use an overloaded type for the second
argument in @llvm.powi. This way clang can use the "correct" type
when lowering __builtin_powi, and then later when emitting the libcall
it is assumed that the type used in @llvm.powi matches the rtlib
function.

One thing that needed some extra attention was that when vectorizing
calls several passes did not support that several arguments could
be overloaded in the intrinsics. This patch allows overload of a
scalar operand by adding hasVectorInstrinsicOverloadedScalarOpd, with
an entry for powi.

Differential Revision: https://reviews.llvm.org/D99439
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int16.ll (diff)
The file was modifiedllvm/test/CodeGen/Generic/replace-intrinsics-with-veclib.ll (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-compare.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64i-single-softfloat.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/2010-05-07-ldconvert.ll (diff)
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/vfloatintrinsics.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/fdiv.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/powi-windows.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.powi.ll (diff)
The file was modifiedllvm/lib/Target/Mips/Mips16HardFloat.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/powi-windows.ll (diff)
The file was addedclang/test/CodeGen/msp430-builtins.c
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/math-2.ll (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/fold-intrinsics.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/powi.ll (diff)
The file was modifiedllvm/include/llvm/IR/Intrinsics.td (diff)
The file was modifiedllvm/test/CodeGen/ARM/fp16-promote.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp (diff)
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll (diff)
The file was modifiedllvm/test/CodeGen/Generic/fpowi-promote.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/intrinsics-cc.ll (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/Windows/powi.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-double.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/f128-arith.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/double-intrinsics.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/mips64-f128.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/fpowi.ll (diff)
The file was modifiedllvm/test/CodeGen/NVPTX/f16-instructions.ll (diff)
The file was modifiedllvm/test/CodeGen/NVPTX/libcall-intrinsic.ll (diff)
The file was modifiedllvm/test/CodeGen/NVPTX/f16x2-instructions.ll (diff)
The file was modifiedllvm/docs/LangRef.rst (diff)
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h (diff)
The file was modifiedllvm/test/CodeGen/ARM/2011-11-29-128bitArithmetics.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll (diff)
The file was modifiedllvm/test/Transforms/Scalarizer/intrinsics.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-intrinsics.ll (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/tailcall-multiret.ll (diff)
The file was modifiedllvm/test/Transforms/LICM/hoist-round.ll (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/libcalls.ll (diff)
The file was modifiedclang/test/CodeGen/avr-builtins.c (diff)
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/intrinsic.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/pr36061.ll (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll.bc
The file was modifiedllvm/test/CodeGen/AArch64/illegal-float-ops.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/powif64_16.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/intrinsics.ll (diff)
The file was modifiedclang/test/CodeGen/math-builtins.c (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-unsupported.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll (diff)
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll (diff)
The file was modifiedllvm/test/CodeGen/SystemZ/fp-libcall.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/fp16-fullfp16.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/float-intrinsics.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-float.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/f16-instructions.ll (diff)
The file was modifiedllvm/test/CodeGen/XCore/float-intrinsics.ll (diff)
Commit 25fa67868b36c99d2704bd291b3b495737f16f0e by Raphael Isemann
[lldb] Skip variant/optional libc++ tests for Clang 5/6

Clang 5 and Clang 6 can no longer parse newer versions of libc++. As we can't
specify the specific libc++ version in the decorator, let's only allow Clang
versions that can parse all currently available libc++ versions.
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/optional/TestDataFormatterLibcxxOptional.py (diff)
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py (diff)
Commit a4f81b2054c30954c6739532b923f2b223bc7d77 by zinenko
[mlir] ODS: emit interface traits outside of the interface class

ODS currently emits the interface trait class as a nested class inside the
interface class. As an unintended consequence, the default implementations of
interface methods have implicit access to static fields of the interface class,
e.g. those declared in `extraClassDeclaration`, including private methods (!),
or in the parent class. This may break the use of default implementations for
external models, which are not defined in the interface class, and generally
complexifies the abstraction.

Emit intraface traits outside of the interface class itself to avoid accidental
implicit visibility. Public static fields can still be accessed via explicit
qualification with a class name, e.g., `MyOpInterface::staticMethod()` instead
of `staticMethod`.

Update the documentation to clarify the role of `extraClassDeclaration` in
interfaces.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104384
The file was modifiedmlir/docs/Interfaces.md (diff)
The file was modifiedmlir/include/mlir/Interfaces/ControlFlowInterfaces.td (diff)
The file was modifiedmlir/tools/mlir-tblgen/OpInterfacesGen.cpp (diff)
Commit 9cca5c1391d637b5500ada646cf136ddb38254a3 by dkszelethus
[analyzer] Make checker silencing work for non-pathsensitive bug reports

D66572 separated BugReport and BugReporter into basic and path sensitive
versions. As a result, checker silencing, which worked deep in the path
sensitive report generation facilities became specific to it. DeadStoresChecker,
for instance, despite being in the static analyzer, emits non-pathsensitive
reports, and was impossible to silence.

This patch moves the corresponding code before the call to the virtual function
generateDiagnosticForConsumerMap (which is overriden by the specific kinds of
bug reporters). Although we see bug reporting as relatively lightweight compared
to the analysis, this will get rid of several steps we used to throw away.

Quoting from D65379:

At a very high level, this consists of 3 steps:

For all BugReports in the same BugReportEquivClass, collect all their error
nodes in a set. With that set, create a new, trimmed ExplodedGraph whose leafs
are all error nodes.
Until a valid report is found, construct a bug path, which is yet another
ExplodedGraph, that is linear from a given error node to the root of the graph.
Run all visitors on the constructed bug path. If in this process the report got
invalidated, start over from step 2.
Checker silencing used to kick in after all of these. Now it does before any of
them :^)

Differential Revision: https://reviews.llvm.org/D102914

Change-Id: Ice42939304516f2bebd05a1ea19878b89c96a25d
The file was addedclang/test/Analysis/silence-checkers.cpp
The file was removedclang/test/Analysis/silence-checkers-malloc.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp (diff)
Commit 873308fd8c96a54f0024251425daac1b78f70119 by mydeveloperday
[Format] Fix incorrect pointer/reference detection

https://llvm.org/PR50568

When an overloaded operator is called, its argument must be an
expression.

Before:
    void f() { a.operator()(a *a); }

After:
    void f() { a.operator()(a * a); }

Reviewed By: HazardyKnusperkeks, curdeius, MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D103678
The file was modifiedclang/unittests/Format/FormatTest.cpp (diff)
The file was modifiedclang/lib/Format/TokenAnnotator.cpp (diff)
Commit 80a403348b0f4f5429c40816bf02ae37bd2e85a1 by flo
[VPlan] Support PHIs as LastInst when inserting scalars in ::get().

At the moment, we create insertelement instructions directly after
LastInst when inserting scalar values in a vector in
VPTransformState::get.

This results in invalid IR when LastInst is a phi, followed by another
phi. In that case, the new instructions should be inserted just after
the last PHI node in the block.

At the moment, I don't think the problematic case can be triggered, but
it can happen once predicate regions are merged and multiple
VPredInstPHI recipes are in the same block (D100260).

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D104188
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
Commit 9b1085604ecf3d2d1a416ee658bca981af133128 by tomasz.miasko
[Demangle] Support Rust v0 mangling scheme in llvm::demangle

The llvm::demangle is currently used by llvm-objdump and llvm-readobj,
so this effectively adds support for Rust v0 mangling to those
applications.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D104340
The file was modifiedllvm/unittests/Demangle/DemangleTest.cpp (diff)
The file was modifiedllvm/lib/Demangle/Demangle.cpp (diff)
Commit fda8b4714e05c68deee469970cb6f7f7ea8b32b7 by david.green
[InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass

The Interleave Access pass will convert shuffle(binop(load, load)) to
binop(shuffle(load), shuffle(load)), in order to create more
interleaving load patterns (VLD2/3/4) that might have been messed up by
instcombine. As shown in D104247 we were missing copying IR flags to the
new instruction though, which should just be kept the same as the
original instruction.

Differential Revision: https://reviews.llvm.org/D104255
The file was modifiedllvm/test/Transforms/InterleavedAccess/AArch64/binopshuffles.ll (diff)
The file was modifiedllvm/include/llvm/IR/InstrTypes.h (diff)
The file was modifiedllvm/lib/CodeGen/InterleavedAccessPass.cpp (diff)
The file was modifiedllvm/test/Transforms/InterleavedAccess/AArch64/binopshuffles-inseltpoison.ll (diff)
Commit 05e95d2dd74973dd5163b7d44828fac61e416452 by 1.int32
[clang][AST] Set correct DeclContext in ASTImporter lookup table for template params.

Template parameters are created in ASTImporter with the translation unit as DeclContext.
The DeclContext is later updated (by the create function of template classes).
ASTImporterLookupTable was not updated after these changes of the DC. The patch
adds update of the DeclContext in ASTImporterLookupTable.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D103792
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp (diff)
Commit fed1503e855a1e3cf936fa0866f099bf1c8c9416 by fraser
[RISCV][VP] Lower FP VP ISD nodes to RVV instructions

With the exception of `frem`, this patch supports the current set of VP
floating-point binary intrinsics by lowering them to to RVV instructions. It
does so by using the existing `RISCVISD *_VL` custom nodes as an intermediate
layer. Both scalable and fixed-length vectors are supported by using this
method.

The `frem` node is unsupported due to a lack of available instructions. For
fixed-length vectors we could scalarize but that option is not (currently)
available for scalable-vector types. The support is intentionally left out so
it equivalent for both vector types.

The matching of vector/scalar forms is currently lacking, as scalable vector
types do not lower to the custom `VFMV_V_F_VL` node. We could either make
floating-point scalable vector splats lower to this node, or support the
matching of multiple kinds of splat via a `ComplexPattern`, much like we do for
integer types.

Reviewed By: rogfer01

Differential Revision: https://reviews.llvm.org/D104237
The file was addedllvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrdiv-vp.ll
Commit dcd23d875a7e3750903ca4ec865508544757dd99 by sjoerd.meijer
[FuncSpec] Don't specialise functions with attribute NoDuplicate.

Differential Revision: https://reviews.llvm.org/D104378
The file was addedllvm/test/Transforms/FunctionSpecialization/function-specialization-nodup.ll
The file was modifiedllvm/lib/Transforms/IPO/FunctionSpecialization.cpp (diff)
Commit 23cdf7b6ed9781040ef7923372247ce30b250f29 by zinenko
[mlir] separable registration of operation interfaces

This is similar to attribute and type interfaces and mostly the same mechanism
(FallbackModel / ExternalModel, ODS generation). There are minor differences in
how the concept-based polymorphism is implemented for operations that are
accounted for by ODS backends, and this essentially adds a test and exposes the
API.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104294
The file was modifiedmlir/include/mlir/IR/OperationSupport.h (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestInterfaces.td (diff)
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp (diff)
The file was modifiedmlir/docs/Interfaces.md (diff)
The file was modifiedmlir/include/mlir/IR/OpDefinition.h (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
Commit d7550e5d105f998ea34bd6c51c03d37a8c546025 by martin
[libcxx] Fix a case of -Wundef warnings regarding _POSIX_TIMERS

Differential Revision: https://reviews.llvm.org/D104372
The file was modifiedlibcxx/src/chrono.cpp (diff)
Commit 4fe3d5248dfae0a864f0cf0c77d10c4a966f05a9 by martin
[llvm-dlltool] [test] Test both short and long forms of options. NFC.

Differential Revision: https://reviews.llvm.org/D104213
The file was modifiedllvm/test/tools/llvm-dlltool/coff-noname.def (diff)
Commit 08be746728d7de59b045681a4a0f6567f14adea3 by martin
[llvm-dlltool] [test] Remove superfluous --coff-exports option to llvm-readobj. NFC.

The --coff-exports option to llvm-readobj prints the exported symbols
from a DLL/EXE, it doesn't do anything with regards to an import
library.

Differential Revision: https://reviews.llvm.org/D104214
The file was modifiedllvm/test/tools/llvm-dlltool/coff-exports.def (diff)
Commit 675d52bc46ff7e618ffa2fb282d031e387e3a114 by martin
[llvm-dlltool] [test] Add a testcase for all machine option types. NFC.

The existing tests only test that some options (but not e.g. arm)
are accepted, but it doesn't test their functional effect of
affecting the generated object files.

Differential Revision: https://reviews.llvm.org/D104215
The file was addedllvm/test/tools/llvm-dlltool/machine-opt.def
Commit ca56b33daf6781a248750b6d538cef84fdae0d1b by martin
[llvm-dlltool] Imply the target arch from a tool triple prefix

Also use the default LLVM target as default for dlltool. This
matches how GNU dlltool behaves; it is compiled with one default
target, which is used if no option is provided.

Extend the anonymous namespace in the implementation file instead
of using static functions.

Based on a patch by Mateusz Mikuła.

The effect of the default LLVM target, if neither the -m option
nor a tool triple prefix is provided, isn't tested, as we can't
make assumptions about what it is set to.

(We could make the default be forced to one of the four supported
architectures if the default triple is another arch, and then just
test that llvm-dlltool without an -m option is able to produce an
import library, without checking the actual architecture though.)

Differential Revision: https://reviews.llvm.org/D104212
The file was modifiedllvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp (diff)
The file was addedllvm/test/tools/llvm-dlltool/triple-prefix.def
Commit ceee35e3e4bf9729e1aae9bfadd6d25bfe3769ee by martin
[LLD] [COFF] Remove a stray duplicate comment. NFC.

The following class isn't part of the export table; there's a
second correctly placed comment about the things that actually
belong to the export table.
The file was modifiedlld/COFF/DLL.cpp (diff)
Commit 5355b8c6318c194ff15241b7a3217a51fc1a644b by ikudrin
[ELF] Restore arm-branch.s test

After D77330, the comments are inconsistent with the disassembled code.
As the value of `far` has been changed, a thunk to reach it is now
generated, and target addresses of branch instructions are different
from what was initially expected.

The patch fixes that and makes the test closer to what it was originally.

Differential Revision: https://reviews.llvm.org/D104286
The file was modifiedlld/test/ELF/arm-branch.s (diff)
The file was modifiedlld/test/ELF/Inputs/far-arm-abs.s (diff)
The file was modifiedlld/test/ELF/Inputs/far-long-arm-abs.s (diff)
Commit b18f30fb2dd157e5fef91d9327fd12b8965e7e0c by fmayer
[NFC] test commit, fix namespace ending comment.
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread_list.h (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread_list.cpp (diff)
Commit 1a4af2e45ee59cff3d577986b9b7f3f5bd5ab01f by jperier
[flang] preserve symbol in DescriptorInquiry

Do not use ultimate symbols in DescriptorInquiry. Using the ultimate
symbol may lead to issues later for at least two reasons:

- The original symbols may have volatile/asynchronous attributes that
  the ultimate may not have. Later phases working on the DescriptorInquiry
  would then not apply potential care required by these attributes.
- HostAssociatedDetails symbols are used by OpenMP for symbols with
  special OpenMP attributes inside OpenMP region (e.g variables with
  private attribute), so it is very important to preserve this
  aspect in the DescriptorInquiry, that would otherwise apply on the
  symbol outside of the region.

Differential Revision: https://reviews.llvm.org/D104385
The file was modifiedflang/lib/Evaluate/variable.cpp (diff)
The file was modifiedflang/lib/Evaluate/shape.cpp (diff)
Commit 69b0ed9a0a6aeab0b1c93d0a76c66a63c1d6f410 by aqjune
[InstCombine] Fix miscompile on GEP+load to icmp fold (PR45210)

As noted in PR45210: https://bugs.llvm.org/show_bug.cgi?id=45210
...the bug is triggered as Eli say when sext(idx) * ElementSize overflows.

```
   // assume that GV is an array of 4-byte elements
   GEP = gep GV, 0, Idx // this is accessing Idx * 4
   L = load GEP
   ICI = icmp eq L, value
 =>
   ICI = icmp eq Idx, NewIdx
```

The foldCmpLoadFromIndexedGlobal function simplifies GEP+load operation to icmp.
And there is a problem because Idx * ElementSize can overflow.

Let's assume that the wanted value is at offset 0.
Then, there are actually four possible values for Idx to match offset 0: 0x00..00, 0x40..00, 0x80..00, 0xC0..00.
We should return true for all these values, but currently, the new icmp only returns true for 0x00..00.

This problem can be solved by masking off (trailing zeros of ElementSize) bits from Idx.

```
   ...
 =>
   Idx' = and Idx, 0x3F..FF
   ICI = icmp eq Idx', NewIdx
```

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D99481
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/load-cmp.ll (diff)
Commit 18070723ef5cfd7d58bc296fedb67b5e3a88908f by fmayer
[hwasan] Do not use short granule tags as poison tags.

Short granule tags as poison cause a UaF to read the referenced
memory to retrieve the tag, and means we do not detect the UaF
if the last granule's tag is still around.

This only increases the change of not catching a UaF from
0.39 % (1 / 256) to 0.42 % (1 / (256 - 17)).

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D104304
The file was modifiedcompiler-rt/lib/hwasan/hwasan_allocator.cpp (diff)
Commit ccc0f777f6967c557ba066070f40e5fac9e0127d by fmayer
[hwasan] Improve report for addresses within regions.

Before: ADDR is located -320 bytes to the right of 1072-byte region
After: ADDR is located 752 bytes inside 1072-byte region

Reviewed By: eugenis, walli99

Differential Revision: https://reviews.llvm.org/D104412
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp (diff)
The file was addedcompiler-rt/test/hwasan/TestCases/heap-buffer-overflow-into.c
Commit d7e891213444e2990397c623fb0250a470421fce by zinenko
[mlir] Enable delayed registration of attribute/operation/type interfaces

This functionality is similar to delayed registration of dialect interfaces. It
allows external interface models to be registered before the dialect containing
the attribute/operation/type interface is loaded, or even before the context is
created.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104397
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h (diff)
The file was modifiedmlir/lib/IR/Dialect.cpp (diff)
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Dialect.h (diff)
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h (diff)
The file was modifiedmlir/include/mlir/IR/TypeSupport.h (diff)
Commit 983ed1b58ef9d0f97c9cec2876f631e47609d437 by david.spickett
[lldb] Set return object failed status even if error string is empty

The idea is now that AppendError<...> will set eReturnStatusFailed
for you so you don't have to call SetStatus again.

Previously if the error message was empty, the status wouldn't
be set.

I don't think there are any sitautions where the message is in
fact empty but it potentially could be depending on where
we get the string from.

So let's set the status up front then return early if the message is empty.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104380
The file was modifiedlldb/source/Interpreter/CommandReturnObject.cpp (diff)
Commit 7a580f3c28cf47a7e489faa1fc1ab7b88d9a5dbd by david.spickett
[lldb] Remove redundant calls to set eReturnStatusFailed

Since https://reviews.llvm.org/D103701 AppendError<...>
sets this for you.

This change includes all of the non-command uses.

Some uses remain where it's either tricky to reason about
the logic, or they aren't paired with AppendError calls.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104379
The file was modifiedlldb/source/Interpreter/ScriptInterpreter.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Interpreter/CommandAlias.cpp (diff)
The file was modifiedlldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp (diff)
The file was modifiedlldb/source/API/SBCommandInterpreter.cpp (diff)
The file was modifiedlldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp (diff)
The file was modifiedlldb/source/Interpreter/Options.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/minidump/ProcessMinidump.cpp (diff)
The file was modifiedlldb/source/Breakpoint/BreakpointIDList.cpp (diff)
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp (diff)
Commit 6b6338195c1b1a32a62adb37204022c1760eb899 by zinenko
[mlir] define a customized DEBUG_TYPE in InterfaceSupport.h
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h (diff)
Commit 0bd5bbb31e0345aed8d029d70a4197aed53a3cd5 by flo
[X86] Add test showing binary differences with -x86-pad-for-align.

This patch adds a test case showing how a single extra .loc can cause
binary differences when using -x86-pad-for-align=true.

The issue has been discussed in D94542, PR42138, PR48742.
The file was addedllvm/test/MC/X86/Inputs/pad-align-with-debug.s
The file was addedllvm/test/MC/X86/pad-for-align-debug.s
The file was addedllvm/test/MC/X86/Inputs/pad-align-without-debug.s
Commit 8d64ed854449467a3a5fc4450c71a4525a24c4be by gchatelet
[libc] Generate one benchmark per implementation

We now generate as many benchmarks as there are implementations.

Differential Revision: https://reviews.llvm.org/D102156
The file was modifiedlibc/benchmarks/CMakeLists.txt (diff)
The file was modifiedlibc/benchmarks/LibcMemoryBenchmarkMain.cpp (diff)
Commit aa6e8e9572d54d8fdcd6e8789ea7076640011066 by flo
[X86] Check using default in test added in 0bd5bbb31e0345ae.

Make sure llvm-mc is invariant with respect to debug locations in the
test (checks update to use the -x86-pad-for-align default value)
The file was modifiedllvm/test/MC/X86/pad-for-align-debug.s (diff)
Commit 5b3cb31edbcf99ef15c2de2d29ad0ff9927ba136 by pifon
[mlir][linalg] Purge linalg.indexed_generic.

Differential Revision: https://reviews.llvm.org/D104449
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Generalization.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/canonicalize-duplicate-inputs.mlir (diff)
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp (diff)
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir (diff)
Commit cdb4fcf9a19ca35b50754791f3986337046d9406 by llvm-dev
[X86] combineSelect - refactor MIN/MAX detection code to make it easier to add additional select(setcc,x,y) folds. NFCI.

I need to add some additional handling to address some of the regressions from D101074
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit c878d03d60fc91ecad661f4435ce70bf276f3bdb by benny.kra
[mlir] Split things dependent on LLVM_DEBUG into a .cpp file

LLVM_DEBUG in headers is awkward, better avoid it. DEBUG_TYPE in a
header results in a lot of macro redefinition warnings.
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h (diff)
The file was modifiedmlir/lib/Support/CMakeLists.txt (diff)
The file was addedmlir/lib/Support/InterfaceSupport.cpp
Commit 3f596842e3d25009c4d62c75e5b24b515bde8e93 by sjoerd.meijer
[FuncSpec] Precommit test: don't specialise funcs with NoDuplicate instrs. NFC.
The file was addedllvm/test/Transforms/FunctionSpecialization/function-specialization-nodup2.ll
Commit eaf60a4411f79a1addfa6c5d8ddf4b47e082881e by david.spickett
[lldb] Remove redundant calls to set eReturnStatusFailed

This is part 2, covering the commands source.

Some uses remain where it's tricky to see what the
logic is or they are not used with AppendError.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104448
The file was modifiedlldb/source/Commands/CommandObjectSettings.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectThreadUtil.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectStats.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectPlugin.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectDisassemble.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectLog.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectReproducer.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectMultiword.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectSource.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectGUI.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectApropos.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectType.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectWatchpointCommand.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectBreakpointCommand.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectWatchpoint.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectMemory.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectFrame.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectHelp.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectScript.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectPlatform.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectQuit.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectTrace.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectBreakpoint.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectRegister.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectCommands.cpp (diff)
Commit 7cddf56d608f07b8e49f7e2eeb4a20082611adb6 by pifon
[mlir] Remove linalg.indexed_generic forward decl.
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h (diff)
Commit fa1de88f81e9c6db5255ca7c4d0fd25606c5a054 by stephen.tozer
[DebugInfo] Prevent non-determinism when updating DIArgList users of a value

This patch fixes an issue where builds of programs with multiple dbg.values
with DIArgList locations could have non-deterministic output. This issue
was caused by ReplaceableMetadataImpl::getAllArgListUsers, which
returned DIArgList pointers in a random order; the output of this
function would later be used to insert dbg.values, causing the order of
insertion to be non-deterministic. This patch changes getAllArgListUsers
to return pointers in a fixed order.

Differential Revision: https://reviews.llvm.org/D104105
The file was modifiedllvm/lib/IR/Metadata.cpp (diff)
Commit fc6ec9b98cf96bca8f68cc65395f861919c06c2f by Chris.Hamilton
[Sema] Fix for PR50741

Fixed crash when doing pointer math on a void pointer.

Also, reworked test to use -verify rather than FileCheck.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D104424
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
The file was modifiedclang/test/Sema/unbounded-array-bounds.c (diff)
Commit e8991caea8690ec2d17b0b7e1c29bf0da6609076 by stephen.tozer
Revert "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value"

Commit caused build errors on buildbots with [-Werror,-Wreturn-std-move]
enabled.

This reverts commit fa1de88f81e9c6db5255ca7c4d0fd25606c5a054.
The file was modifiedllvm/lib/IR/Metadata.cpp (diff)
Commit 26f1f6d0deaff4d718e32b8e97ea21968c506b60 by gchatelet
[llvm] fix typo in comment
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h (diff)
Commit 60a8edf30d297c8c56988c083801ce1cfc41bb6b by kevin.neal
[FPEnv][InstSimplify] Precommit tests for D103169.

In D103169 I'm adding to InstSimplify support for NaN to constrained
intrinsics that have a regular FP IR instruction counterpart. Precommit
the tests for clarity when that ticket lands.
The file was addedllvm/test/Transforms/InstSimplify/fp-undef-poison-strictfp.ll
The file was addedllvm/test/Transforms/InstSimplify/X86/fp-nan-strictfp.ll
Commit 6765b9c3f1192bd63bdcafc92ee8ff5d7b97d90b by hokein.wu
[clangd] Explicitly fail if the file passed to --check is not valid.

Differential Revision: https://reviews.llvm.org/D104455
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp (diff)
Commit 24706cd73cd150543753a2e169c68a2c68da46a1 by jezng
[lld-macho] Avoid force-loading the same archive twice

We need to dedup archive loads (similar to what we do for dylib
loads).

I noticed this issue after building some Swift stuff that used
`-force_load_swift_libs`, as it caused some Swift archives to be loaded
many times.

Reviewed By: #lld-macho, thakis, MaskRay

Differential Revision: https://reviews.llvm.org/D104353
The file was modifiedlld/test/MachO/archive.s (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/test/MachO/force-load.s (diff)
Commit dee2c76b4c46e71903e3d86ab7555a80d51d1288 by stephen.tozer
Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value"

Reapply the commit which previously caused build failures due to the
mismatched template arguments between the return type and the returned
SmallVector.

This reverts commit e8991caea8690ec2d17b0b7e1c29bf0da6609076.
The file was modifiedllvm/lib/IR/Metadata.cpp (diff)
The file was modifiedllvm/include/llvm/IR/Metadata.h (diff)
Commit bbea64250f65480d787e1c5ff45c4de3ec2dcda8 by Saleem Abdulrasool
RISCV: adjust handling of relocation emission for RISCV

This re-architects the RISCV relocation handling to bring the
implementation closer in line with the implementation in binutils.  We
would previously aggressively resolve the relocation.  With this
restructuring, we always will emit a paired relocation for any symbolic
difference of the type of S±T[±C] where S and T are labels and C is a
constant.

GAS has a special target hook controlled by `RELOC_EXPANSION_POSSIBLE`
which indicates that a fixup may be expanded into multiple relocations.
This is used by the RISCV backend to always emit a paired relocation -
either ADD[WIDTH] + SUB[WIDTH] for text relocations or SET[WIDTH] +
SUB[WIDTH] for a debug info relocation.  Irrespective of whether linker
relaxation support is enabled, symbolic difference is always emitted as
a paired relocation.

This change also sinks the target specific behaviour down into the
target specific area rather than exposing it to the shared relocation
handling.  In the process, we also sink the "special" handling for debug
information down into the RISCV target.  Although this improves the path
for the other targets, this is not necessarily entirely ideal either.
The changes in the debug info emission could be done through another
type of hook as this functionality would be required by any other target
which wishes to do linker relaxation.  However, as there are no other
targets in LLVM which currently do this, this is a reasonable thing to
do until such time as the code needs to be shared.

Improve the handling of the relocation (and add a reduced test case from
the Linux kernel) to ensure that we handle complex expressions for
symbolic difference.  This ensures that we correct relocate symbols with
the adddends normalized and associated with the addition portion of the
paired relocation.

This change also addresses some review comments from Alex Bradbury about
the relocations meant for use in the DWARF CFA being named incorrectly
(using ADD6 instead of SET6) in the original change which introduced the
relocation type.

This resolves the issues with the symbolic difference emission
sufficiently to enable building the Linux kernel with clang+IAS+lld
(without linker relaxation).

Resolves PR50153, PR50156!
Fixes: ClangBuiltLinux/linux#1023, ClangBuiltLinux/linux#1143

Reviewed By: nickdesaulniers, maskray

Differential Revision: https://reviews.llvm.org/D103539
The file was modifiedllvm/test/MC/RISCV/hilo-constaddr-expr.s (diff)
The file was modifiedllvm/include/llvm/MC/MCDwarf.h (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h (diff)
The file was modifiedllvm/include/llvm/MC/MCAsmBackend.h (diff)
The file was modifiedllvm/test/MC/RISCV/fde-reloc.s (diff)
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp (diff)
The file was modifiedllvm/test/MC/RISCV/fixups-expr.s (diff)
The file was modifiedllvm/lib/MC/MCObjectStreamer.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp (diff)
The file was modifiedllvm/include/llvm/MC/MCFixup.h (diff)
The file was addedllvm/test/MC/RISCV/reloc-addend.s
The file was modifiedllvm/lib/MC/MCAsmBackend.cpp (diff)
The file was modifiedllvm/lib/MC/MCExpr.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h (diff)
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h (diff)
The file was modifiedllvm/lib/MC/MCDwarf.cpp (diff)
The file was addedllvm/test/MC/RISCV/scoped-relaxation.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (diff)
The file was modifiedllvm/lib/MC/MCAssembler.cpp (diff)
Commit 249d9b051f92d1a323b3dd477f95133648df4774 by kda
Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack."

This reverts commit 07481b37961f5b9a670c924367d2ead2e3c32b86.

Differential Revision: https://reviews.llvm.org/D104469
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp (diff)
Commit ac35ed5d34876e3b72442e61543233bd3ac6e632 by peter
[compiler-rt][hwasan]: undefine new/delete operators with alignment on Android.

This is to fix build on Android. And we don't want to intercept more new/delete operators on Android.

Differential Revision: https://reviews.llvm.org/D104313
The file was modifiedcompiler-rt/lib/hwasan/hwasan_new_delete.cpp (diff)
Commit 5b1079f6411b7d978550c6bf37e87674d137f1c4 by spatel
[InstCombine][x86] add tests for complex vector shift value tracking; NFC

https://llvm.org/PR50123
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vector-shifts.ll (diff)
Commit 61196f855c395b14bffd7c9b1ba29194577e67f6 by spatel
[InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/shift-knownbits.ll (diff)
Commit 53f5f14136fbc75e42e18374f3ace05a262a18d3 by hokein.wu
fix an -Wunused-variable warning in release built, NFC
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)
Commit e70d4994ea9eb44ba5a86c5073ac83cf500aabdd by Saleem Abdulrasool
test: clean up some of the RISCV tests (NFC)

This addresses some post-commit comments from jrtc27 to make the tests
easier to process.
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll (diff)
Commit a22c55c69bcdef193715fd6e1f92a329649bc153 by cjdb
[libcxx][iwyu] 🎨 adds more headers to IWYU

A few slipped through the cracks because D104175 and D104170 didn't
concern themselves with newer commits.

Differential Revision: https://reviews.llvm.org/D104414
The file was modifiedlibcxx/include/__ranges/empty_view.h (diff)
The file was modifiedlibcxx/include/__ranges/subrange.h (diff)
The file was modifiedlibcxx/include/__ranges/ref_view.h (diff)
Commit d827af03bc1d12e813ef207d2a897998ebf64ca1 by cjdb
[libcxx][module-map] 🎨 updates module map to account for ranges headers

Corresponding module map update for D104414, split out for rollback
reasons.

Differential Revision: https://reviews.llvm.org/D104415
The file was modifiedlibcxx/include/module.modulemap (diff)
Commit 22911585bb3811767a616c20946290b8e9a988d9 by gusss
[mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test

See this documentation from taco:
http://tensor-compiler.org/docs/data_analytics/index.html

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D104417
The file was addedmlir/test/Integration/data/mttkrp_b.tns
The file was addedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
The file was modifiedmlir/test/CMakeLists.txt (diff)
Commit 734d688fbce8a453aa61764b9b5a43b26455dc0d by stilis
[clang] Fix a race condition in the build of clangInterpreter

The library depends on Attributes.inc, so it has to depend on the intrinsics_gen target

Reviewed By: v.g.vassilev

Differential Revision: https://reviews.llvm.org/D104311
The file was modifiedclang/lib/Interpreter/CMakeLists.txt (diff)
Commit f27e4548fc42876f66dac260ca3b6df0d5fd5fd6 by gkm
[lld-macho] Implement ICF

ICF = Identical C(ode|OMDAT) Folding

This is the LLD ELF/COFF algorithm, adapted for MachO. So far, only `-icf all` is supported. In order to support `-icf safe`, we will need to port address-significance tables (`.addrsig` directives) to MachO, which will come in later diffs.

`check-{llvm,clang,lld}` have 0 regressions for `lld -icf all` vs. baseline ld64.

We only run ICF on `__TEXT,__text` for reasons explained in the block comment in `ConcatOutputSection.cpp`.

Here is the perf impact for linking `chromium_framekwork` on a Mac Pro (16-core Xeon W) for the non-ICF case vs. pre-ICF:
```
    N           Min           Max        Median           Avg        Stddev
x  20          4.27          4.44          4.34         4.349   0.043029977
+  20          4.37          4.46         4.405        4.4115   0.025188761
Difference at 95.0% confidence
        0.0625 +/- 0.0225658
        1.43711% +/- 0.518873%
        (Student's t, pooled s = 0.0352566)
```

Reviewed By: #lld-macho, int3

Differential Revision: https://reviews.llvm.org/D103292
The file was modifiedlld/MachO/Writer.cpp (diff)
The file was modifiedlld/MachO/Config.h (diff)
The file was modifiedlld/MachO/Symbols.cpp (diff)
The file was modifiedlld/MachO/ConcatOutputSection.cpp (diff)
The file was addedlld/MachO/ICF.h
The file was addedlld/test/MachO/icf.s
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/MachO/Options.td (diff)
The file was modifiedlld/MachO/UnwindInfoSection.h (diff)
The file was modifiedlld/MachO/InputFiles.cpp (diff)
The file was modifiedlld/MachO/ConcatOutputSection.h (diff)
The file was addedlld/MachO/ICF.cpp
The file was modifiedlld/MachO/SyntheticSections.cpp (diff)
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd (diff)
The file was addedlld/test/MachO/icf-options.s
The file was modifiedlld/MachO/InputSection.cpp (diff)
The file was addedlld/test/MachO/icf-scale.s
The file was modifiedlld/MachO/InputSection.h (diff)
The file was modifiedlld/MachO/UnwindInfoSection.cpp (diff)
The file was modifiedlld/MachO/CMakeLists.txt (diff)
Commit 00553a32330822fd936dcfd4830556468aaf918c by llvmgnsyncbot
[gn build] Port f27e4548fc42
The file was modifiedllvm/utils/gn/secondary/lld/MachO/BUILD.gn (diff)
Commit 4e2aee8d3bab6010420d9be96480f1d8ae0f35c1 by jasonliu
[AIX] Remove --as-needed passing into aix linker

Summary:
AIX does not support --as-needed linker options. Remove that option from
aix linker when -lunwind is needed.
For unwinder library, nothing special is needed because by default aix
linker has the as-needed effect for library that's an archive (which is
the case for libunwind on AIX).

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D104314
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was modifiedclang/test/Driver/aix-ld.c (diff)
Commit 37dfc467ac807bde4f221edbf304d9a46c9789b2 by lebedev.ri
[NFC] LoopVectorizationCostModel::getMaximizedVFForTarget(): clarify debug msg

This really isn't talking about vectors in general,
but only about either fixed or scalable vectors,
and it's pretty confusing to see it state
that there aren't any vectors :)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
Commit 69caacc626f7dbbb9223b370952fcf5660e242dc by lebedev.ri
[X86] AMD Zen 3: don't confuse shift and shuffle, NFC

These proc res groups occupy the exact same pipes,
so this doesn't affect the modelling,
but it's confusing nontheless.
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver3.td (diff)
Commit d02bf362dcf8d1488dfcf970c12c6047885a5f06 by andrew.ng
[llvm-symbolizer][docs] Update example for --verbose in the guide

Differential Revision: https://reviews.llvm.org/D104128
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst (diff)
Commit 366df11a35392c946678f1af94038945c23f06c8 by vyng
[lld-macho] Rework mergeFlag to behave closer to what ld64 does.

Details:
I've been getting a few weird errors similar to the following from our internal tests:

```
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (type=0x0) into __eh_frame (type=0xB): inconsistent types
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (flags=0x0) into __eh_frame (flags=0x6800000B): strict flags differ
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (type=0x0) into __eh_frame (type=0xB): inconsistent types
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (flags=0x0) into __eh_frame (flags=0x6800000B): strict flags differ
```

Differential Revision: https://reviews.llvm.org/D103971
The file was modifiedlld/MachO/ConcatOutputSection.h (diff)
The file was modifiedlld/MachO/ConcatOutputSection.cpp (diff)
The file was modifiedlld/test/MachO/builtin-rename.s (diff)
Commit 758633f92226ad25c9007a8a05f01cb848b97ab8 by sbc
[lld][WebAssembly] Add new `--import-undefined` option

This change revisits https://reviews.llvm.org/D79248 which originally
added support for the --unresolved-symbols flag.

At the time I thought it would make sense to add a third option to this
flag called `import-functions` but it turns out (as was suspects by on
the reviewers IIRC) that this option can be authoganal.

Instead I've added a new option called `--import-undefined` that only
operates on symbols that can be imported (for example, function symbols
can always be imported as opposed to data symbols we can only be
imported when compiling with PIC).

This option gives us the full expresivitiy that emscripten needs to be
able allow reporting of undefined data symbols as well as the option to
disable that.

This change does remove the `--unresolved-symbols=import-functions`
option, which is been in the codebase now for about a year but I would
be extremely surprised if anyone was using it.

Differential Revision: https://reviews.llvm.org/D103290
The file was modifiedlld/wasm/Config.h (diff)
The file was modifiedlld/test/wasm/unresolved-symbols.s (diff)
The file was modifiedlld/wasm/Driver.cpp (diff)
The file was modifiedlld/wasm/Relocations.cpp (diff)
The file was modifiedlld/docs/WebAssembly.rst (diff)
The file was modifiedlld/wasm/Writer.cpp (diff)
The file was modifiedlld/wasm/Options.td (diff)
Commit dc11d4e6be2455e666319e01bc1c79a3ba750fbf by pholland2
[MCA] [RegisterFile] Allow for skipping Defs with RegID of 0 (rather than assert(RegID) like we do before this patch).

This patch will allow developers to remove unwanted instruction Defs (most likely from within a target specific InstrPostProcess) by setting that Def's RegisterID to 0.
Differential Revision: https://reviews.llvm.org/D104433
The file was modifiedllvm/lib/MCA/HardwareUnits/RegisterFile.cpp (diff)
Commit f7c54c4603a2df8c0833f5ddc04a5e109bca1c14 by nikita.ppv
[LoopUnroll] Fold all exits based on known trip count/multiple

Fold all exits based on known trip count/multiple information from
SCEV. Previously only the latch exit or the single exit were folded.

This doesn't yet eliminate ULO.TripCount and ULO.TripMultiple
entirely: They're still used to a) decide whether runtime unrolling
should be performed and b) for ORE remarks. However, the core
unrolling logic is independent of them now.

Differential Revision: https://reviews.llvm.org/D104203
The file was modifiedllvm/test/Transforms/LoopUnroll/nonlatchcondbr.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/multiple-exits.ll (diff)
Commit aa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211 by walter erquinigo
[lldb-vscode] only report long running progress events

When the number of shared libs is massive, there could be hundreds of
thousands of short lived progress events sent to the IDE, which makes it
irresponsive while it's processing all this data. As these small jobs
take less than a second to process, the user doesn't even see them,
because the IDE only display the progress of long operations. So it's
better not to send these events.

I'm fixing that by sending only the events that are taking longer than 5
seconds to process.
In a specific run, I got the number of events from ~500k to 100, because
there was only 1 big lib to parse.

I've tried this on several small and massive targets, and it seems to
work fine.

Differential Revision: https://reviews.llvm.org/D101128
The file was modifiedlldb/tools/lldb-vscode/VSCode.h (diff)
The file was modifiedlldb/tools/lldb-vscode/ProgressEvent.cpp (diff)
The file was modifiedlldb/tools/lldb-vscode/ProgressEvent.h (diff)
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp (diff)
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
Commit 9ac7388e3dd578e9a27b6fe8ab4802da39d2999e by jgorbe
Revert "[NFC] Remove checking pointee type for byval/preallocated type"

This reverts commit 738abfdbea21acd2597d83ad3390daf5696b6d07.
The file was modifiedllvm/include/llvm/IR/InstrTypes.h (diff)
Commit 7b0612088289e4f57e089a792c5e6d1123a2b6e3 by Jon Roelofs
[AArch64][GISel] and+or+shl => bfi

This fixes a GISEL vs SDAG regression that showed up at -Os in 256.bzip2

In `_getAndMoveToFrontDecode`:

gisel:
```
and w9, w0, #0xff
orr w9, w9, w8, lsl #8
```

sdag:
```
bfi w0, w8, #8, #24
```

Differential revision: https://reviews.llvm.org/D103291
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-bitfield-insert.ll
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff)
Commit a2ab765029dd76756e98851847e6675795a973b6 by Jon Roelofs
[GISel] Eliminate redundant bitmasking

This was a GISel vs SDAG regression that showed up at -Os on arm64 in:
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding.test

https://llvm.godbolt.org/z/aecjodsjG

Differential revision: https://reviews.llvm.org/D103334
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/opt-overlapping-and.mir
Commit 71e4d434dc83b02a853712a5cb026ee2fa9ba67f by Louis Dionne
[libc++] Make sure std::allocator<void> is always trivial

When we removed the allocator<void> specialization, the triviality of
std::allocator<void> changed because the primary template had a
non-trivial default constructor and the specialization didn't
(so std::allocator<void> went from trivial to non-trivial).

This commit fixes that oversight by giving a trivial constructor to
the primary template when instantiated on cv-void.

This was reported in https://llvm.org/PR50299.

Differential Revision: https://reviews.llvm.org/D104398
The file was modifiedlibcxx/include/__memory/allocator.h (diff)
The file was addedlibcxx/test/libcxx/memory/allocator_void.trivial.compile.pass.cpp
Commit 116841c623747972d0ae80239d3ea7b8409b868b by Saleem Abdulrasool
RISCV: clean up target expression handling

The target specific expression handling was slightly regressed by
bbea64250f65480d787e1c5ff45c4de3ec2dcda8.  This restores the proper
sub-expression evaluation to allow for constant folding within the
expression.  We explicitly discard the layout and assembler when
evaluating the expression to avoid any symbolic computation and instead
using the `evaluateAsRelocatable` to canonicalise and constant fold
only.

We can also simplify the expression handling - none of the target
variants support symbolic difference.  This simplifies the logic for
that and adds additional tests to ensure that we do not accidentally
regress here in the future.

Reviewed By: maskray

Differential Revision: https://reviews.llvm.org/D104473
The file was addedllvm/test/MC/RISCV/expressions.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp (diff)
Commit 8a567e5f22a6d76ce076cf4305fe5c7cbff50fe0 by efriedma
[ScalarEvolution] Fix pointer/int type handling converting select/phi to min/max.

The old version of this code would blindly perform arithmetic without
paying attention to whether the types involved were pointers or
integers.  This could lead to weird expressions like negating a pointer.

Explicitly handle simple cases involving pointers, like "x < y ? x : y".
In all other cases, coerce the operands of the comparison to integer
types.  This avoids the weird cases, while handling most of the
interesting cases.

Differential Revision: https://reviews.llvm.org/D103660
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
The file was modifiedllvm/test/Analysis/ScalarEvolution/pr46786.ll (diff)
The file was modifiedllvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp (diff)
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr45835.ll (diff)
Commit 8441b993bdba29437b296bad6a37464669eef35e by browneee
[DFSan] Cleanup code for platforms other than Linux x86_64.

These other platforms are unsupported and untested.
They could be re-added later based on MSan code.

Reviewed By: gbalats, stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104481
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (diff)
The file was removedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h (diff)
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp (diff)
Commit 99e95856fb785cb22d898e963a54e8d9a8459fc7 by craig.topper
[PartiallyInlineLibCalls] Disable sqrt expansion for strictfp.

This pass emits a floating point compare and a conditional branch,
but if strictfp is enabled we don't emit a constrained compare
intrinsic.

The backend also won't expand the readonly sqrt call this pass inserts
to a sqrt instruction under strictfp. So we end up with 2 libcalls as
seen here. https://godbolt.org/z/oax5zMEWd

Fix these things by disabling the pass.

Differential Revision: https://reviews.llvm.org/D104479
The file was addedllvm/test/Transforms/PartiallyInlineLibCalls/strictfp.ll
The file was modifiedllvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp (diff)
Commit 76d0747e0807307780ba84cbd7e5c80b20c26bd7 by i
[InstrProfiling] Make __profd_ unconditionally private for ELF

For ELF, since all counters/data are in a section group (either `comdat any` or
`comdat noduplicates`), and the signature for `comdat any` is `__profc_`, the
D1003372 optimization prerequisite (linker GC cannot discard data variables
while the text section is retained) is always satisified, we can make __profd_
unconditionally private.

Reviewed By: davidxl, rnk

Differential Revision: https://reviews.llvm.org/D103717
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile.ll (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)
Commit 39295e92f7f991a745743dd2c888f0a774047f2a by browneee
Revert "[DFSan] Cleanup code for platforms other than Linux x86_64."

This reverts commit 8441b993bdba29437b296bad6a37464669eef35e.

Buildbot failures.
The file was addedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (diff)
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h (diff)
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp (diff)
Commit eaf1b6810ce0f40008b2b1d902750eafa3e198d3 by kuterdinel
[Attributor] Derive AACallEdges attribute

This attribute computes the optimistic live call edges using the attributor
liveness information. This attribute will be used for deriving a
inter-procedural function reachability attribute.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D104059
The file was addedllvm/test/Transforms/Attributor/callgraph.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
Commit 84eeb82888a033bd02b53023f9408760fc86bd81 by lebedev.ri
[NFC][SimpleLoopUnswitch] unswitchTrivialBranch(): add debug output explaining unswitching failure

It's not prohibitively verbose, and allows easier understanding
why certain unswitching ultimately wasn't performed.
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (diff)
Commit c1360fd5fced42ea45ce1eacbf1c5e1ed54fcac5 by walter erquinigo
[lldb-vscode] remove failed test

Found in http://green.lab.llvm.org/green/job/lldb-cmake/32891/testReport/lldb-api/tools_lldb-vscode_launch/TestVSCode_launch_py/

the lldb-vscode changed and that test makes no sense anymore
The file was modifiedlldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py (diff)
Commit bf9f21a28be171dc500cc68b4cb1fcd3fc33f229 by walter erquinigo
[trace][intel-pt] Create basic SB API

This adds a basic SB API for creating and stopping traces.
Note: This doesn't add any APIs for inspecting individual instructions. That'd be a more complicated change and it might be better to enhande the dump functionality to output the data in binary format. I'll leave that for a later diff.

This also enhances the existing tests so that they test the same flow using both the command interface and the SB API.

I also did some cleanup of legacy code.

Differential Revision: https://reviews.llvm.org/D103500
The file was modifiedlldb/include/lldb/Target/Trace.h (diff)
The file was modifiedlldb/test/API/commands/trace/TestTraceDumpInstructions.py (diff)
The file was modifiedlldb/test/API/commands/trace/TestTraceStartStop.py (diff)
The file was modifiedlldb/include/lldb/API/LLDB.h (diff)
The file was modifiedlldb/source/API/SBStructuredData.cpp (diff)
The file was modifiedlldb/test/API/commands/trace/TestTraceSchema.py (diff)
The file was modifiedlldb/docs/.htaccess (diff)
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp (diff)
The file was modifiedlldb/include/lldb/API/SBProcess.h (diff)
The file was modifiedlldb/include/lldb/Target/Process.h (diff)
The file was modifiedlldb/include/lldb/API/SBTarget.h (diff)
The file was modifiedlldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp (diff)
The file was modifiedlldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp (diff)
The file was modifiedlldb/test/API/commands/trace/TestTraceLoad.py (diff)
The file was modifiedlldb/bindings/interfaces.swig (diff)
The file was modifiedlldb/source/Target/Target.cpp (diff)
The file was modifiedlldb/bindings/interface/SBStructuredData.i (diff)
The file was modifiedlldb/include/lldb/API/SBTrace.h (diff)
The file was modifiedlldb/bindings/interface/SBTrace.i (diff)
The file was modifiedlldb/source/API/SBTrace.cpp (diff)
The file was modifiedlldb/include/lldb/lldb-forward.h (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.h (diff)
The file was modifiedlldb/bindings/headers.swig (diff)
The file was modifiedlldb/bindings/interface/SBProcess.i (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.cpp (diff)
The file was addedlldb/packages/Python/lldbsuite/test/tools/intelpt/intelpt_testcase.py
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectThreadUtil.h (diff)
The file was modifiedlldb/include/lldb/API/SBDefines.h (diff)
The file was modifiedlldb/source/API/CMakeLists.txt (diff)
The file was modifiedlldb/docs/lldb-gdb-remote.txt (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h (diff)
The file was modifiedlldb/include/lldb/Utility/TraceGDBRemotePackets.h (diff)
The file was modifiedlldb/include/lldb/Target/Target.h (diff)
The file was removedlldb/source/API/SBTraceOptions.cpp
The file was removedlldb/include/lldb/Utility/TraceOptions.h
The file was modifiedlldb/source/Commands/CommandObjectTrace.cpp (diff)
The file was modifiedlldb/source/API/SBProcess.cpp (diff)
The file was modifiedlldb/source/API/SBTarget.cpp (diff)
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTConstants.h
The file was modifiedlldb/docs/design/overview.rst (diff)
The file was modifiedlldb/include/lldb/API/SBStructuredData.h (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTOptions.td (diff)
The file was removedlldb/include/lldb/API/SBTraceOptions.h
The file was modifiedlldb/source/Plugins/Process/Linux/IntelPTManager.cpp (diff)
The file was modifiedlldb/source/Target/Trace.cpp (diff)
The file was modifiedlldb/include/lldb/API/SBThread.h (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py (diff)
The file was modifiedlldb/source/API/SBReproducer.cpp (diff)
The file was modifiedlldb/bindings/interface/SBTarget.i (diff)
The file was removedlldb/bindings/interface/SBTraceOptions.i
Commit d01e673a9f046913070bd950183480c9bd15956b by sbc
[lld][WebAssembly] Fix crash calling weakly undefined function in PIC code

Differential Revision: https://reviews.llvm.org/D104495
The file was modifiedlld/test/wasm/weak-undefined-pic.s (diff)
The file was modifiedlld/wasm/InputChunks.cpp (diff)
The file was modifiedlld/wasm/Writer.cpp (diff)
Commit 722c51473c7a3bfe13d929734615a3b46d44c09a by vsapsai
[clang][AST] Make `getLocalOrImportedSubmoduleID` work with const `Module*`. NFC.

Differential Revision: https://reviews.llvm.org/D104350
The file was modifiedclang/include/clang/Serialization/ASTWriter.h (diff)
The file was modifiedclang/lib/Serialization/ASTWriter.cpp (diff)
Commit a78671ef54e53196dc7b5ee9c91771c8e146d1d1 by kuterdinel
[FIX][Attributor] Fix broken build due to missing virtual deconstructors.

The lack some virtual deconstructors where causing some builds bots to fail.
This patch fixes that.

Problematic commit:
https://reviews.llvm.org/rGeaf1b6810ce0f40008b2b1d902750eafa3e198d3

Build bot:
https://lab.llvm.org/buildbot/#/builders/18/builds/1741
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
Commit 05d0f1a8ea012a6b7b8ea65893ec4121106444b5 by Duncan P. N. Exon Smith
Frontend: Respect -fno-temp-file when creating a PCH

When creating a PCH file the use of a temp file will be dictated by the
presence or absence of the -fno-temp-file flag. Creating a module file
will always use a temp file via the new ForceUseTemporary flag.

This fixes bug 50033.
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp (diff)
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h (diff)
The file was modifiedclang/lib/Frontend/FrontendActions.cpp (diff)
Commit e7bf4510564a7f4eb924d2e79db0ab7926968583 by jim
[M68k][NFC] Fix indentation in M68kInstrArithmetic.td

Merely fix indentation

Reviewed By: myhsu

Differential Revision: https://reviews.llvm.org/D104434
The file was modifiedllvm/lib/Target/M68k/M68kInstrArithmetic.td (diff)
Commit 3522167efd80e2fef42a865cdf7481d60d062603 by lxfind
[Coroutine] Properly deal with byval and noalias parameters

This patch is to address https://bugs.llvm.org/show_bug.cgi?id=48857.
Previous attempts can be found in D104007 and D101980.
A lot of discussions can be found in those two patches.
To summarize the bug:
When Clang emits IR for coroutines, the first thing it does is to make a copy of every argument to the local stack, so that uses of the arguments in the function will all refer to the local copies instead of the arguments directly.
However, in some cases we find that arguments are still directly used:
When Clang emits IR for a function that has pass-by-value arguments, sometimes it emits an argument with byval attribute. A byval attribute is considered to be local to the function (just like alloca) and hence it can be easily determined that it does not alias other values. If in the IR there exists a memcpy from a byval argument to a local alloca, and then from that local alloca to another alloca, MemCpyOpt will optimize out the first memcpy because byval argument's content will not change. This causes issues because after a coroutine suspension, the byval argument may die outside of the function, and latter uses will lead to memory use-after-free.
This is only a problem for arguments with either byval attribute or noalias attribute, because only these two kinds are considered local. Arguments without these two attributes will be considered to alias coro_suspend and hence we won't have this problem. So we need to be able to deal with these two attributes in coroutines properly.
For noalias arguments, since coro_suspend may potentially change the value of any argument outside of the function, we simply shouldn't mark any argument in a coroutiune as noalias. This can be taken care of in CoroEarly pass.
For byval arguments, if such an argument needs to live across suspensions, we will have to copy their value content to the frame, not just the pointer.

Differential Revision: https://reviews.llvm.org/D104184
The file was addedllvm/test/Transforms/Coroutines/coro-byval-param.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp (diff)
The file was addedllvm/test/Transforms/Coroutines/coro-noalias-param.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroEarly.cpp (diff)
Commit 6aaf4fa2885600b0e31042071ad06f78218ab0f2 by richard
Bring our handling of -Wframe-larger-than more in line with GCC.

Support -Wno-frame-larger-than (with no =) and make it properly
interoperate with -Wframe-larger-than. Reject -Wframe-larger-than with
no argument.

We continue to support Clang's old spelling, -Wframe-larger-than=, for
compatibility with existing users of that facility.

In passing, stop the driver from accepting and ignoring
-fwarn-stack-size and make it a cc1-only flag as intended.
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/test/Driver/Wframe-larger-than.c (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td (diff)
The file was modifiedclang/test/Misc/backend-stack-frame-diagnostics.cpp (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td (diff)
The file was modifiedclang/test/Frontend/backend-diagnostic.c (diff)
Commit 1d891d44f33f99c55e779acaeac4628e4ac9aaaf by aheejin
[WebAssembly] Rename event to tag

We recently decided to change 'event' to 'tag', and 'event section' to
'tag section', out of the rationale that the section contains a
generalized tag that references a type, which may be used for something
other than exceptions, and the name 'event' can be confusing in the web
context.

See
- https://github.com/WebAssembly/exception-handling/issues/159#issuecomment-857910130
- https://github.com/WebAssembly/exception-handling/pull/161

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D104423
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp (diff)
The file was modifiedllvm/include/llvm/ObjectYAML/WasmYAML.h (diff)
The file was removedlld/test/wasm/event-section.ll
The file was removedllvm/test/MC/WebAssembly/event-section.ll
The file was modifiedllvm/tools/obj2yaml/wasm2yaml.cpp (diff)
The file was modifiedlld/wasm/Symbols.cpp (diff)
The file was modifiedlld/wasm/InputFiles.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp (diff)
The file was addedlld/test/wasm/Inputs/tag-section2.ll
The file was modifiedllvm/include/llvm/BinaryFormat/WasmRelocs.def (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (diff)
The file was addedllvm/test/MC/WebAssembly/tag-section-decoding.ll
The file was modifiedllvm/include/llvm/MC/MCSymbolWasm.h (diff)
The file was modifiedllvm/test/MC/WebAssembly/basic-assembly.s (diff)
The file was modifiedllvm/lib/ObjectYAML/WasmEmitter.cpp (diff)
The file was modifiedlld/wasm/WriterUtils.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td (diff)
The file was modifiedlld/wasm/SyntheticSections.h (diff)
The file was modifiedllvm/lib/ObjectYAML/WasmYAML.cpp (diff)
The file was modifiedlld/wasm/WriterUtils.h (diff)
The file was modifiedlld/wasm/InputElement.h (diff)
The file was modifiedlldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (diff)
The file was removedllvm/test/MC/WebAssembly/event-section-decoding.ll
The file was modifiedllvm/include/llvm/Object/Wasm.h (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/event_section.yaml (diff)
The file was modifiedlld/wasm/InputChunks.cpp (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/exception.ll (diff)
The file was modifiedlld/wasm/SymbolTable.cpp (diff)
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h (diff)
The file was addedllvm/test/MC/WebAssembly/tag-section.ll
The file was removedlld/test/wasm/Inputs/event-section2.ll
The file was modifiedlld/wasm/Writer.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td (diff)
The file was modifiedllvm/tools/llvm-readobj/WasmDumper.cpp (diff)
The file was modifiedllvm/lib/Object/RelocationResolver.cpp (diff)
The file was modifiedlld/wasm/MarkLive.cpp (diff)
The file was modifiedllvm/include/llvm/BinaryFormat/Wasm.h (diff)
The file was modifiedlld/wasm/SyntheticSections.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/WasmEHFuncInfo.h (diff)
The file was modifiedllvm/test/MC/WebAssembly/annotations.s (diff)
The file was modifiedlld/wasm/InputFiles.h (diff)
The file was modifiedllvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp (diff)
The file was addedlld/test/wasm/tag-section.ll
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp (diff)
The file was addedlld/test/wasm/Inputs/tag-section1.ll
The file was modifiedlld/wasm/Symbols.h (diff)
The file was modifiedllvm/lib/BinaryFormat/Wasm.cpp (diff)
The file was modifiedlld/include/lld/Common/LLVM.h (diff)
The file was modifiedlld/wasm/OutputSections.cpp (diff)
The file was removedlld/test/wasm/Inputs/event-section1.ll
The file was modifiedlld/wasm/SymbolTable.h (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/null-streamer.ll (diff)
Commit a10aeb3b32b5f935528ba41d7b7ee18e8d79d9e2 by carl.ritson
[AMDGPU] Remove duplicate setOperationAction for v4i16/v4f16 (NFC)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
Commit 85ec21075100049ea8b8e5f945628ae2adae628e by ikudrin
[objdump][ARM] Fix evaluating the target address of a Thumb BLX(i)

The instruction can be 16-bit aligned while targeting 32-bit aligned
code. To calculate the target address correctly, the address of the
instruction has to be adjusted.

Differential Revision: https://reviews.llvm.org/D104446
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp (diff)
The file was addedllvm/test/tools/llvm-objdump/ELF/ARM/tblxi-target.s
Commit aea67232b1ee6da9fb97e8d1750221cbf3cf5165 by vdsered
[InstCombine][NFC] Added tests for mul with zext/sext operands

Baseline tests for D104193
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll (diff)
Commit c2e97ba85e46b4d99b13d651f58179251fce9007 by luke957
[RISCV] Don't enable Interleaved Access Vectorization

The patch https://reviews.llvm.org/D101469 is intended to enable loop unrolling,
not interleaved access vectorization. The method bool enableInterleavedAccessVectorization()
should not be implemented.
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.h (diff)
Commit c6b5a25eeb336bb1e6abcba8131b946552432ac0 by gbalats
[dfsan] Replace dfs$ prefix with .dfsan suffix

The current naming scheme adds the `dfs$` prefix to all
DFSan-instrumented functions.  This breaks mangling and prevents stack
trace printers and other tools from automatically demangling function
names.

This new naming scheme is mangling-compatible, with the `.dfsan`
suffix being a vendor-specific suffix:
https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-structure

With this fix, demangling utils would work out-of-the-box.

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104494
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_select.ll (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_unaligned_memtrans.c (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/atomics.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/custom_fun_varargs_attributes.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_call.ll (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/musttailcall.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_store_threshold.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/store.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/arith.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/array.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/dont_combine_offset_labels_on_gep.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_phi.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/load.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/shadow-args-zext.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/prefix-rename.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/basic.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_load.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_other_ops.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/select.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/vector.ll (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_with_signals.cpp (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/memset.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/union.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/custom_fun_callback_attributes.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/call.ll (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_memcpy.c (diff)
The file was modifiedclang/docs/DataFlowSanitizerDesign.rst (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/unordered_atomic_mem_intrins.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/struct.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_abilist.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/abilist.ll (diff)
The file was modifiedcompiler-rt/test/dfsan/pthread.c (diff)
The file was modifiedcompiler-rt/test/dfsan/stack_trace.c (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_with_sigactions.c (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_memmove.c (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_stack_trace.c (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/abilist_aggregate.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_store.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_mem_intrinsic.ll (diff)
The file was modifiedcompiler-rt/test/dfsan/origin_track_ld.c (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_cached_shadows.ll (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_track_load.ll (diff)
Commit 8d7bace3b517e4f1ef43375e65f6c4da115ffef8 by johannes
[Attributor][NFC] AAReachability is currently stateless, don't invalidate it

We invalidated AAReachabilityImpl directly which is not helpful and
confusing as we still used it regardless. We now avoid invalidating it
(not needed anyway) and add checks for the state. This has by itself no
actual effect but prepares for later extensions.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit 39e1876b0649b35de2ca3bff1983be82dca0bbcc by johannes
[Attributor][NFC] Precommit a set of test cases for load simplification
The file was addedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
Commit ca7563bb02689a7145a7348d8b7a9676189df296 by johannes
[Attributor][NFC] Add test from PR49606

It is not clear to me how we fixed this, I reverted a few candidates but
I couldn't make the test fail. Still worth having it in our regression
suite.
The file was addedllvm/test/Transforms/Attributor/cgscc_bugs.ll
Commit 9a23e673caebdd54d8cc285fcad78f18fa2e919a by johannes
[OpenMP][NFC] Expose AAExecutionDomain and rename its getter

The initial use for AAExecutionDomain was to determine if a single
thread executes a block. While this is sometimes informative most
of the time, and for other reasons, we actually want to know if it
is the "initial thread". Thus, the thread that started execution on
the current device. The deduction needs to be adjusted in a follow
up as the methods we use right not are looking for the OpenMP thread
id which is resets whenever a thread enters a parallel region. What
we basically want is to look for `llvm.nvvm.read.ptx.sreg.ntid.x` and
equivalent functions.
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
Commit 9959eee0015a97f3eb6bdb1b7b1f500190d66f53 by johannes
[Attributor] Make sure Heap2Stack works properly on a GPU target

If the target stack is not accessible between different running
"threads" we have to make sure not to create allocas for mallocs
that might be used by multiple "threads". The "use check" is
sufficient to prevent this but if we apply the "free check" we have
to make sure the pointer is not communicated to others before
the free is reached.

Differential Revision: https://reviews.llvm.org/D98608
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
The file was addedllvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit d9194b6efb4d287d2a9f2ad216a6fb5b7b260353 by johannes
[Attributor] Introduce a helper do deal with constant type mismatches

If we simplify values we sometimes end up with type mismatches. If the
value is a constant we can often cast it though to still allow
propagation. The logic is now put into a helper and it replaces some
ad hoc things we did before.

This also introduces the AA namespace for abstract attribute related
functions and types.

Differential Revision: https://reviews.llvm.org/D103856
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit 666dc6f1267dfedcd0502a1f8fbd9aafe463e06a by johannes
[Attributor] Use a centralized value simplification interface

To allow outside AAs that simplify values we need to ensure all value
simplification goes through the Attributor, not AAValueSimplify (or any
of the other AAs we have already like AAPotentialValues). This patch
also introduces an interface for the outside AAs to register
simplification callbacks for an IRPosition. To make this work as
expected we have to pass IRPositions instead of Values in
AAValueSimplify, which makes sense by itself.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll (diff)
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
The file was modifiedllvm/test/Transforms/Attributor/internalize.ll (diff)
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll (diff)
Commit 3d6df0108b48358b8cdc6cf3267300c217fe823c by johannes
[Attributor] Allow to skip the initial update for a new AA

Users might want to run initialize for a set of AAs without an
intermediate update step. Running update eagerly is not a requirement
anyway so we make it optional.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
Commit 30c9d68ad93af7f420f6d01f91adf12ff36254a0 by johannes
[Attributor][FIX] Arguments of unknown functions can be undef

This should fix PR50683. The wrong assumption was that we
could always know what the callee is when we replace a call site
argument with undef. We wanted to know that to remove the `noundef`
that might be attached to the argument. Since no callee means we
did the propagation on the caller site, there is no need to remove
an attribute. It is only needed if we replace all uses and therefore
pass `undef` instead of the value that was passed in otherwise.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll (diff)
Commit 5798be84580be233e4cf34c08ceec8f79e80502e by i
Revert D103717 "[InstrProfiling] Make __profd_ unconditionally private for ELF"

This reverts commit 76d0747e0807307780ba84cbd7e5c80b20c26bd7.

If a group has `__llvm_prf_vals` due to static value profiler counters
(`NS!=0`), we cannot make `__llvm_prf_data` private, because a prevailing text
section may reference `__llvm_prf_data` and will cause a `relocation refers to a
discarded section` linker error.

Note: while a `__profc_` group is non-prevailing, it may be referenced by a
prevailing text section due to inlining.

```
group section [   66] `.group' [__profc__ZN5clang20EmitClangDeclContextERN4llvm12RecordKeeperERNS0_11raw_ostreamE] contains 4 sections:
   [Index]    Name
   [   67]   __llvm_prf_cnts
   [   68]   __llvm_prf_vals
   [   69]   __llvm_prf_data
   [   70]   .rela__llvm_prf_data
```
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile.ll (diff)
Commit 6aac2773d80b42bcf9da2414bbd410aa9f10095e by bjorn.a.pettersson
[polly][GPGPU] Fixup related to overloading exponent type in llvm.powi

Commit 4c7f820b2b206bb changed the llvm.powi intrinsic to support
different 'int' sizes for the exponent. That happened to break
the IntrinsicToLibdeviceFunc mapping in PPCGCodeGeneration, which
obviously should have been updated as part of commit 4c7f820b2b
(https://reviews.llvm.org/D99439).

The shortcoming was found by buildbots that use
   -DPOLLY_ENABLE_GPGPU_CODEGEN=ON

This patch should fixup the problem.
The file was modifiedpolly/test/GPGPU/libdevice-functions-copied-into-kernel.ll (diff)
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp (diff)
Commit 31053338c97b36ffb582f9c04a74cec69cce3e70 by vdsered
[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)

InstCombine didn't perform (sext bool X) * (sext bool X) --> zext (and X, X) which can result in just (zext X). The patch adds regression tests to check this transformation and adds a check for equality of mul's operands for that case.

Differential Revision: https://reviews.llvm.org/D104193
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll (diff)
Commit 37afd67c38cf85f1308505892e7999457d8769cd by sivachandra
[libc] Add few macro definitions to make it easy to accommodate Windows.

The new macro definitions have been used to add Windows specific
specializations.
The file was modifiedlibc/utils/FPUtil/ManipulationFunctions.h (diff)
The file was modifiedlibc/utils/FPUtil/NormalFloat.h (diff)
The file was modifiedlibc/utils/FPUtil/FPBits.h (diff)
The file was modifiedlibc/utils/FPUtil/Sqrt.h (diff)
The file was addedlibc/utils/FPUtil/PlatformDefs.h
The file was modifiedlibc/utils/FPUtil/SqrtLongDoubleX86.h (diff)
Commit 6de741de08a11048027cb4d4e4d5d4bd067319fa by vdsered
Revert "[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)"

This reverts commit 31053338c97b36ffb582f9c04a74cec69cce3e70.
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (diff)
Commit 2a5bb9c877f23224ee6b789054b4edfa17b4fd30 by tomasz.miasko
[Demangle][Rust] Parse dot suffix

Allow mangled names to include an arbitrary dot suffix, akin to vendor
specific suffix in Itanium mangling.

Primary motivation is a support for symbols renamed during ThinLTO
import / promotion (ThinLTO is the default configuration for optimized
builds in rustc).

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D104358
The file was modifiedllvm/test/Demangle/rust.test (diff)
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp (diff)
Commit 7a1e4f18468d0f25407b6ea9f7986cf2a4620f54 by sivachandra
[libc][Obvious] Add the new header file PlatformDefs.h to the fputil  target.
The file was modifiedlibc/utils/FPUtil/CMakeLists.txt (diff)
Commit 7670938bbad8755a34a282febc852651255c69b3 by hokein.wu
[Attributor] Don't print the call-graph in a hard-coded file.

This looks like not a practical pattern in our codebase (it could fail
in some sandbox environement).

Instead we print it via standard output, and it is controled by the
-attributor-print-call-graph, this follows a similiar pattern of attributor-print-dep.
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
The file was modifiedllvm/test/Transforms/Attributor/callgraph.ll (diff)
Commit 2a629efc74e5ad414f05e293f296b392f724bc9f by patacca
[Polly][Isl] Refactoring IslAstInfo::getBuild() and IslAstInfo::IslAstUserPayload::Build to use isl++. NFC

Polly uses algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.

Changes made:
- Refactoring the method `IslAstInfo::getBuild()`
- `IslAstInfo::IslAstUserPayload.Build` now uses C++ types instead of C types
- Removing destructor of `IslAstInfo::IslAstUserPayload`

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D104370
The file was modifiedpolly/lib/CodeGen/IslNodeBuilder.cpp (diff)
The file was modifiedpolly/lib/CodeGen/IslAst.cpp (diff)
The file was modifiedpolly/include/polly/CodeGen/IslAst.h (diff)
Commit 6f665cd53dfdb3a23ed10950113fd73a0f53c9e7 by springerm
[mlir][linalg] Fix PadTensorOp constructor

Differential Revision: https://reviews.llvm.org/D104510
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff)
Commit fa5eb22ad4e127b1fa960b33da890afb5bca3f92 by mkazantsev
[NFC] Assert non-zero factor before division

This is to ensure that zero denominator leads to controlled
assertion failure rather than UB.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (diff)
Commit a740b707d1937621dcf56579001bcad87b81724f by taolq
[llvm][Inliner] Add an optional PriorityInlineOrder

This patch adds an optional PriorityInlineOrder, which uses the heap to order inlining.
The callsite which size is smaller would have a higher priority.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D104028
The file was modifiedllvm/test/Transforms/Inline/inline_invoke.ll (diff)
The file was modifiedllvm/test/Transforms/Inline/monster_scc.ll (diff)
The file was modifiedllvm/test/Transforms/Inline/last-callsite.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp (diff)
The file was modifiedllvm/test/Transforms/Inline/inline_call.ll (diff)
Commit 4498137bd7857c07921b4cd6313baac62ead24e2 by diana.picus
[flang] Rewrite test for CPU_TIME

Don't rely on volatile writes to keep the CPU busy - it seems MSVC
optimizes them out, so we don't get different values for 'start' and
'end' on Windows. Rewrite the test to loop until we get a different
value for 'end'.

Fix suggested by Michael Kruse in
https://reviews.llvm.org/rG57e85622bbdb2eb18cc03df2ea457019c58f6912#inline-6002

Committing to fix the Windows buildbot, post-commit comments welcome!
The file was modifiedflang/unittests/RuntimeGTest/Time.cpp (diff)
Commit 07bbfd9c1368a165952e74902016739287ce2299 by mkazantsev
[Test] Add XFAIL unit test for PR50765
The file was addedllvm/test/Transforms/LoopStrengthReduce/pr50765.ll
Commit 6643e51d79d776efc3f4469b6f90b73c71a8fc41 by vdsered
[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)

InstCombine didn't perform (sext bool X) * (sext bool X) --> zext (and X, X) which can result in just (zext X). The patch adds regression tests to check this transformation and adds a check for equality of mul's operands for that case.

Differential Revision: https://reviews.llvm.org/D104193
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll (diff)
Commit 1f9dcd2b7384780cb3e4ae34e58799ef2816192b by jay.foad
[AMDGPU] Update generated checks. NFC.
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-i16-to-i32.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll (diff)
Commit 3f5d53a525c62c507a482fd5f4c08451835b342d by hokein.wu
[Attributor] Fix UB behavior on uninitalized bool variables.

Found by ASAN.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit 18c8c934d8584f706dfca9e633f0f89cefe3688e by uday
[MLIR] Introduce scf.execute_region op

Introduce the execute_region op that is able to hold a region which it
executes exactly once. The op encapsulates a CFG within itself while
isolating it from the surrounding control flow. Proposal discussed here:
https://llvm.discourse.group/t/introduce-std-inlined-call-op-proposal/282

execute_region enables one to inline a function without lowering out all
other higher level control flow constructs (affine.for/if, scf.for/if)
to the flat list of blocks / CFG form. It thus allows the benefit of
transforms on higher level control flow ops available in the presence of
the inlined calls. The inlined calls continue to benefit from
propagation of SSA values across their top boundary. Functions won’t
have to remain outlined until later than desired.  Abstractions like
affine execute_regions, lambdas with implicit captures could be lowered
to this without first lowering out structured loops/ifs or outlining.
But two potential early use cases are of: (1) an early inliner (which
can inline functions by introducing execute_region ops), (2) lowering of
an affine.execute_region, which cleanly maps to an scf.execute_region
when going from the affine dialect to the scf dialect.

Differential Revision: https://reviews.llvm.org/D75837
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td (diff)
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir (diff)
The file was modifiedmlir/test/Dialect/SCF/ops.mlir (diff)
The file was modifiedmlir/utils/vim/syntax/mlir.vim (diff)
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp (diff)
The file was modifiedmlir/test/Dialect/SCF/invalid.mlir (diff)
Commit de92287cf8d1b07516b7e006a54529f174d4f5ef by mkazantsev
[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration (try 3)

This patch handles one particular case of one-iteration loops for which SCEV
cannot straightforwardly prove BECount = 1. The idea of the optimization is to
symbolically execute conditional branches on the 1st iteration, moving in topoligical
order, and only visiting blocks that may be reached on the first iteration. If we find out
that we never reach header via the latch, then the backedge can be broken.

This implementation uses InstSimplify. SCEV version was rejected due to high
compile time impact.

Differential Revision: https://reviews.llvm.org/D102615
Reviewed By: nikic
The file was modifiedllvm/test/Transforms/LoopDeletion/eval_first_iteration.ll (diff)
The file was modifiedllvm/test/Transforms/LoopDeletion/unreachable-loops.ll (diff)
The file was modifiedllvm/test/Transforms/LoopDeletion/zero-btc.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopDeletion.cpp (diff)
Commit 93183a41b962ce21ea168357172aaf00cdca5bd9 by taolq
Revert D104028 "[llvm][Inliner] Add an optional PriorityInlineOrder"
The file was modifiedllvm/test/Transforms/Inline/monster_scc.ll (diff)
The file was modifiedllvm/test/Transforms/Inline/inline_call.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp (diff)
The file was modifiedllvm/test/Transforms/Inline/inline_invoke.ll (diff)
The file was modifiedllvm/test/Transforms/Inline/last-callsite.ll (diff)
Commit cec8e69f01c3374cb38c6683058381b96fab8f89 by Lang Hames
[ORC] Add support for dumping objects to the C API.

Provides ObjectTransformLayer APIs, a getter to access the
ObjectTransformLayer member of LLJIT, and the DumpObjects utility
to make construction of a dump-to-disk transform easy.

An example showing how the new APIs can be used has been added in
llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects.
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt (diff)
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/OrcV2CBindingsDumpObjects.c
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff)
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/CMakeLists.txt
The file was modifiedllvm/include/llvm-c/LLJIT.h (diff)
The file was modifiedllvm/include/llvm-c/Orc.h (diff)
Commit 7ddd15cd5dea76a19a9c5315e2a9903d74a49be8 by mizvekov
[clang] Exclude function pointers on DefaultedComparisonAnalyzer

This implements a more comprehensive fix than was done at D95409.
Instead of excluding just function pointer subobjects, we also
exclude any user-defined function pointer conversion operators.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D103855
The file was modifiedclang/test/CXX/class/class.compare/class.spaceship/p2.cpp (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
Commit cbfb12469ba312c8ff513397b29bef470f151caa by Lang Hames
[ORC] Use uint8_t rather than char for RPC wrapper-function calls.

This partially reverts 838490de7ed, which broke some Solaris bots. Apparently
Solaris defines int8_t as char rather than signed char, which made the
SerializationTypeName<char> specialization a redefinition.

This partial revert isolates use of uint8_t buffers to ORC-RPC handling of
wrapper functions only. The TargetProcessControl::runWrapper method will
continue to use char buffers.
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/Serialization.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRPCTPCServer.h (diff)
Commit 8962c68ad007a525f9daa987c99eda57e0d0069a by Lang Hames
[ORC][C-bindings] Re-order object transform function arguments.

ObjInOut is an in-out parameter not a return value argument, so by convention
it should come after the context value (Ctx).
The file was modifiedllvm/include/llvm-c/Orc.h (diff)
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/OrcV2CBindingsDumpObjects.c (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff)
Commit fd569a11b585d13cdceac2d890c2beda0fa5f0eb by simon.tatham
[libclang] Fix error handler in translateSourceLocation.

Given an invalid SourceLocation, translateSourceLocation will call
clang_getNullLocation, and then do nothing with the result. But
clang_getNullLocation has no side effects: it just constructs and
returns a null CXSourceLocation value.

Surely the intention was to //return// that null CXSourceLocation to
the caller, instead of throwing it away and pressing on anyway.

Reviewed By: miyuki

Differential Revision: https://reviews.llvm.org/D104442
The file was modifiedclang/tools/libclang/CXSourceLocation.h (diff)
Commit cc2ef195560999d0690a8d8805ea811270e38f26 by vsavchenko
[analyzer] Handle NTTP invocation in CallContext.getCalleeDecl()

This fixes a crash in MallocChecker for the situation when operator new (delete) is invoked via NTTP  and makes the behavior of CallContext.getCalleeDecl(Expr) identical to CallEvent.getDecl().

Reviewed By: vsavchenko

Differential Revision: https://reviews.llvm.org/D103025
The file was modifiedclang/lib/StaticAnalyzer/Core/CheckerContext.cpp (diff)
The file was modifiedclang/test/Analysis/NewDelete-checker-test.cpp (diff)
Commit 7353beda4aa13187d1c9ba03015589272b157c61 by llvm-dev
[DAG] SelectionDAG::computeKnownBits - use APInt::insertBits to merge subvector knownbits. NFCI.

As noticed on D104472 we can use APInt::insertBits which will avoid a lot of temporary APInt creations
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
Commit 7f7be19e6a5e0ebb3af04a624996fbc7cd06f209 by silvasean
[mlir] Add notes about using external interface application.

Differential Revision: https://reviews.llvm.org/D104489
The file was modifiedmlir/docs/Interfaces.md (diff)
Commit ced6b204d18e6eed611f8ebf27122ec19147ea7a by mizvekov
[clang] Implement P2266 Simpler implicit move

This Implements [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2266r1.html|P2266 Simpler implicit move]].

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: Quuxplusone

Differential Revision: https://reviews.llvm.org/D99005
The file was modifiedclang/lib/Sema/SemaType.cpp (diff)
The file was modifiedclang/test/SemaCXX/coroutines.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/test/CXX/class/class.init/class.copy.elision/p3.cpp (diff)
The file was modifiedclang/test/CXX/temp/temp.decls/temp.mem/p5.cpp (diff)
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-cxx14.cpp (diff)
The file was modifiedclang/test/SemaCXX/coroutine-rvo.cpp (diff)
The file was modifiedclang/test/SemaCXX/constant-expression-cxx11.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCoroutine.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/test/SemaObjCXX/block-capture.mm (diff)
The file was modifiedclang/test/SemaCXX/return-stack-addr.cpp (diff)
The file was modifiedclang/test/SemaCXX/warn-return-std-move.cpp (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-cxx14.cpp (diff)
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was modifiedclang/test/SemaCXX/deduced-return-type-cxx14.cpp (diff)
The file was modifiedclang/test/CXX/drs/dr3xx.cpp (diff)
The file was modifiedclang/test/SemaCXX/constant-expression-cxx14.cpp (diff)
The file was modifiedclang/www/cxx_status.html (diff)
Commit 493565a4aa7cc3b48e2b5c51b541a438fc449217 by mascasa
[HWASan] Run LAM tests with -hwasan-generate-tags-with-calls.

The default callback instrumentation in x86 LAM mode uses ASLR bits
to randomly choose a tag, and thus has a 1/64 chance of choosing a
stack tag of 0, causing stack tests to fail intermittently.  By using
__hwasan_generate_tag to pick tags, we guarantee non-zero tags and
eliminate the test flakiness.

aarch64 doesn't seem to have this problem using thread-local addresses
to pick tags, so perhaps we can remove this workaround once we implement
a similar mechanism for LAM.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D104470
The file was modifiedcompiler-rt/lib/hwasan/hwasan.cpp (diff)
The file was modifiedcompiler-rt/test/hwasan/lit.cfg.py (diff)
Commit b30bc8cc5d51a0c61651bafd977eb6b1729ca471 by Saleem Abdulrasool
RISCV: simplify a test case for RISCV (NFCI)

The output of the object file is unimportant and entirely discarded.
Simply redirect the output to `/dev/null` or `NUL` as the case may be.
Additionally, the space between the labels is unimportant.  There is no
need to add space between the labels.  Two labels at the same address
are sufficient to generate the difference expression and should still
test the same behaviour.
The file was modifiedllvm/test/MC/RISCV/hilo-constaddr-expr.s (diff)
Commit 9777f3fd06e20237992883b2b4668582228a1f90 by omair.javaid
Fix build failure on 32 bit Arm

This patch fixes build failure caused by commit
f27e4548fc42876f66dac260ca3b6df0d5fd5fd6 on 32 bit arm.

Differential Revision: https://reviews.llvm.org/D103292
The file was modifiedlld/MachO/InputFiles.cpp (diff)
Commit c5b7c7c8f7fc645a3755c6e2f97f8e8710ee5ff9 by vyacheslav.p.zakharin
[NFC][libomptarget] Fixed -DLLVM_ENABLE_RUNTIMES="openmp" build.

Differential Revision: https://reviews.llvm.org/D104535
The file was modifiedopenmp/libomptarget/plugins/common/elf_common/CMakeLists.txt (diff)
The file was modifiedopenmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake (diff)
Commit 836992ab9a42b8b5f6cb0339b98d31f46794af7e by vyacheslav.p.zakharin
[NFC][libomptarget] Build elf_common with PIC.

Differential Revision: https://reviews.llvm.org/D104545
The file was modifiedopenmp/libomptarget/plugins/common/elf_common/CMakeLists.txt (diff)
Commit 78b75b452b08e4ce3ad468e426e6e4fa1c92f7bd by jingu.kang
[AArch64] Add TableGen patterns to generate uaddlv

uaddv(uaddlp(x)) ==> uaddlv(x)
addp(uaddlp(x))  ==> uaddlv(x)

Differential Revision: https://reviews.llvm.org/D104236
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vabs.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/neon-sad.ll (diff)
The file was addedllvm/test/CodeGen/AArch64/neon-uaddlv.ll
Commit 8120c9e379c7cc1c91a6cecdc42760b3aa562f78 by gkm
Rename option -icf MODE to --icf=MODE

The `icf` command-line option is not present in ld64, so it should use the LLD option syntax, which begins with double dashes and separates primary option from any suboption with the equal sign.

Differential Revision: https://reviews.llvm.org/D104548
The file was modifiedlld/test/MachO/icf.s (diff)
The file was modifiedlld/MachO/Options.td (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/test/MachO/icf-scale.s (diff)
The file was modifiedlld/test/MachO/icf-options.s (diff)
Commit f7366890c23f5be142a434879a3d42f46c4e4d92 by thakis
[lld/mac] Support -data_in_code_info, -function_starts flags

These are on by default, but there's also an explicit flag for them.

Differential Revision: https://reviews.llvm.org/D104543
The file was modifiedlld/test/MachO/function-starts.s (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/MachO/Options.td (diff)
The file was modifiedlld/test/MachO/data-in-code.s (diff)
Commit f2c009dbcfd11fd1e8941513dcf49fffe43565a1 by walter erquinigo
[lldb-vscode] attempt to fix flakiness

There are many tests failing intermittently for lldb-vscode after
https://reviews.llvm.org/rGaa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211. I'm
unsure if this actually the culprit, so I'm softly removing that feature
to see if that fixes the issue.
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
Commit 79caf69cc08a72022f968020eab486b698fd4178 by pklausler
[flang] Runtime implementation for default derived type formatted I/O

This is *not* user-defined derived type I/O, but rather Fortran's
built-in capabilities for using derived type data in I/O lists
and NAMELIST groups.

This feature depends on having the derived type description tables
that are created by Semantics available, passed through compilation
as initialized static objects to which pointers can be targeted
in the descriptors of I/O list items and NAMELIST groups.

NAMELIST processing now handles component references on input
(e.g., "&GROUP x%component = 123 /").

The C++ perspectives of the derived type information records
were transformed into proper classes when it was necessary to add
member functions to them.

The code in Semantics that generates derived type information
was changed to emit derived type components in component order,
not alphabetic order.

Differential Revision: https://reviews.llvm.org/D104485
The file was modifiedflang/runtime/type-info.h (diff)
The file was modifiedflang/include/flang/Semantics/runtime-type-info.h (diff)
The file was addedflang/runtime/type-info.cpp
The file was modifiedflang/lib/Semantics/runtime-type-info.cpp (diff)
The file was modifiedflang/runtime/derived.cpp (diff)
The file was modifiedflang/runtime/copy.cpp (diff)
The file was modifiedflang/runtime/descriptor.cpp (diff)
The file was modifiedflang/runtime/tools.h (diff)
The file was modifiedflang/runtime/descriptor-io.h (diff)
The file was modifiedflang/runtime/CMakeLists.txt (diff)
The file was modifiedflang/runtime/namelist.cpp (diff)
The file was modifiedflang/runtime/descriptor.h (diff)
The file was modifiedflang/test/Semantics/typeinfo01.f90 (diff)
Commit 88d93923e6653f02f5ece1faf9f49a7e309989a0 by leonardchan
[compiler-rt][hwasan] Move Thread::Init into hwasan_linux.cpp

This allows for other implementations to define their own version of `Thread::Init`.
This will be the case for Fuchsia where much of the thread initialization can be
broken up between different thread hooks (`__sanitizer_before_thread_create_hook`,
`__sanitizer_thread_create_hook`, `__sanitizer_thread_start_hook`). Namely, setting
up the heap ring buffer and stack info and can be setup before thread creation.
The stack ring buffer can also be setup before thread creation, but storing it into
`__hwasan_tls` can only be done on the thread start hook since it's only then we
can access `__hwasan_tls` for that thread correctly.

Differential Revision: https://reviews.llvm.org/D104248
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread.cpp (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread.h (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_linux.cpp (diff)
Commit e0b68f7149f9c66ba9e81878729225421f99a030 by fmayer
[hwasan] Clarify report for allocation-tail-overwritten.

Explain what the given stack trace means before showing it, rather than
only in the paragraph at the end.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D104523
The file was modifiedcompiler-rt/test/hwasan/TestCases/tail-magic.c (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp (diff)
Commit 5c189d30e60ac044b5bb473648c5505b4acdeb08 by ashermancinelli
[OpenMP] Update FAQ for enabling cuda offloading

Add an FAQ entry and add a few lines to an existing one. Document
the use of `GCC_INSTALL_PREFIX` for pointing clang to correct
GCC installation for two-stage build.

Reviewed By: jhuber6

Differential Revision: https://reviews.llvm.org/D104474
The file was modifiedopenmp/docs/SupportAndFAQ.rst (diff)
Commit ec91df8d8195b8b759a89734dba227da1eaa729f by kparzysz
Delay initialization of OptBisect

When LLVM is used in other projects, it may happen that global cons-
tructors will execute before the call to ParseCommandLineOptions.
Since OptBisect is initialized via a constructor, and has no ability
to be updated at a later time, passing "-opt-bisect-limit" to the
parse function may have no effect.

To avoid this problem use a cl::cb (callback) to set the bisection
limit when the option is actually processed.

Differential Revision: https://reviews.llvm.org/D104551
The file was modifiedllvm/include/llvm/IR/OptBisect.h (diff)
The file was modifiedllvm/lib/IR/OptBisect.cpp (diff)
Commit c1e6d25a0285b7825ef74690c622c47fb0123245 by kparzysz
XFAIL a testcase on Hexagon (missing-abstract-variable.ll)

This seems to be a common problem among several architectures.
The file was modifiedllvm/test/DebugInfo/Generic/missing-abstract-variable.ll (diff)
Commit 4688d151572693bd9383639164b8ab84e6f59cb8 by kparzysz
Revert "Delay initialization of OptBisect"

This reverts commit ec91df8d8195b8b759a89734dba227da1eaa729f.

It was committed by accident.
The file was modifiedllvm/lib/IR/OptBisect.cpp (diff)
The file was modifiedllvm/include/llvm/IR/OptBisect.h (diff)
Commit 14407332de6185462ceda785c620bb1206e7ca40 by browneee
[DFSan] Cleanup code for platforms other than Linux x86_64.

These other platforms are unsupported and untested.
They could be re-added later based on MSan code.

Reviewed By: gbalats, stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104481
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h (diff)
The file was removedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (diff)
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/basic.ll (diff)
Commit c60f1d5d98ebf1cec20b80f5a94d733290dd6556 by hoy
[CSSPGO] Fix an invalid hash table reference issue in the CS preinliner.

We were using a `StringMap` object to store all profiles to be emitted. The object is basically an unordered hash table, therefore updating it in the process of trasvering it may cause issue since the underlying bucket array could change.

I'm also moving the `csspgo-preinliner` switch around so that no context tri will be constructed (by the constructor of `CSPreInliner`) when the switch is off.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D104267
The file was modifiedllvm/tools/llvm-profgen/CSPreInliner.cpp (diff)
The file was modifiedllvm/lib/ProfileData/SampleProf.cpp (diff)
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp (diff)
Commit 2e5dc4a1efe18a411734abb05b03431b120b1fea by angandhi
[AMDGPU] [CodeGen] Fold negate llvm.amdgcn.class into test mask

Implemented the transformation of xor (llvm.amdgcn.class x, mask), -1 into
llvm.amdgcn.class(x, ~mask). Added LIT tests as well.

Differential Revision: https://reviews.llvm.org/D104049
The file was addedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-foldnegate.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp (diff)
Commit 8c2c97287eacda1ed9cbee893054d868e3b990c5 by hoy
[CSSPGO][llvm-profgen] Ignore LBR records after interrupt transition

If we have seen an inwards transition from external code to internal code, but not a following outwards transition, the inwards transition is likely due to interrupt which is usually unpaired. Ignore current  and subsequent entries since they are likely from an unrelated pre-interrupt context.

LBR records from different interrupt context are unrelated and they should not be mixed together. Currenlty the OS does this for task-scheduling interrupt but not for all interrupts.

Reviewed By: wenlei, wlei

Differential Revision: https://reviews.llvm.org/D104276
The file was addedllvm/test/tools/llvm-profgen/cs-interrupt.test
The file was modifiedllvm/tools/llvm-profgen/PerfReader.cpp (diff)
The file was addedllvm/test/tools/llvm-profgen/Inputs/cs-interrupt.perfscript
Commit ac87133f1de902bcc7ab4330e7ac79b2ba376d34 by craig.topper
[RISCV] Teach vsetvli insertion to remember when predecessors have same AVL and SEW/LMUL ratio if their VTYPEs otherwise mismatch.

Previously we went directly to unknown state on VTYPE mismatch.
If we instead remember the partial match, we can use this to
still use X0, X0 vsetvli in successors if AVL and needed SEW/LMUL
ratio match.

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D104069
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll (diff)
Commit bdd5da9dec61072f693726d9ed2a94c78e431ba2 by flx
[clang-tidy] performance-unnecessary-copy-initialization: Directly examine the initializing var's initializer.

This fixes false positive cases where a reference is initialized outside of a
block statement and then its initializing variable is modified. Another case is
when the looped over container is modified.

Differential Revision: https://reviews.llvm.org/D103021

Reviewed-by: ymandel
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/performance-unnecessary-copy-initialization.cpp (diff)
The file was modifiedclang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp (diff)
The file was modifiedclang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.h (diff)
Commit dd15c2723cd29574c341ec189409a6c83fbefb04 by arthur.j.odwyer
[libc++] [P1518R2] Better CTAD behavior for containers with allocators.

P1518 does the following in C++23 but we'll just do it in C++17 as well:
- Stop requiring `Alloc` to be an allocator on some container-adaptor deduction guides
- Stop deducing from `Allocator` on some sequence container constructors
- Stop deducing from `Allocator` on some other container constructors (libc++ already did this)

The affected constructors are the "allocator-extended" versions of
constructors where the non-allocator arguments are already sufficient
to deduce the allocator type. For example,

    std::pmr::vector<int> v1;
    std::vector v2(v1, std::pmr::new_delete_resource());
    std::stack s2(v1, std::pmr::new_delete_resource());

Differential Revision: https://reviews.llvm.org/D97742
The file was modifiedlibcxx/include/vector (diff)
The file was modifiedlibcxx/include/forward_list (diff)
The file was modifiedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.map/unord.map.cnstr/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/deque/deque.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/include/deque (diff)
The file was modifiedlibcxx/test/std/containers/associative/map/map.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/multimap/multimap.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/list/list.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/container.adaptors/queue/queue.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/container.adaptors/stack/stack.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp (diff)
The file was modifiedlibcxx/include/list (diff)
The file was modifiedlibcxx/include/stack (diff)
The file was modifiedlibcxx/docs/Cxx2bStatusPaperStatus.csv (diff)
The file was modifiedlibcxx/include/queue (diff)
The file was modifiedlibcxx/test/std/containers/sequences/vector/vector.cons/deduct.pass.cpp (diff)
Commit 8fdd475c85634c4a5e5cd83d7dc15ff56c458813 by arnamoy.bhattacharyya
[flang][OpenMP] Add semantic checks for occurrence of nested Barrier regions

This patch adds the following nesting check for `barrier` constructs:

```
A barrier region may not be closely nested inside a worksharing, loop, task, taskloop, critical, ordered, atomic, or master region.
```

Also adds a test case for the check,

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D99888
The file was addedflang/test/Semantics/omp-nested-barrier.f90
The file was modifiedflang/lib/Semantics/check-omp-structure.h (diff)
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp (diff)
Commit 4c49f9ceafd6bdc261e0ee157a2ea0fa943d6921 by jezng
[lld-macho] Handle non-extern symbols marked as private extern

Previously, we asserted that such a case was invalid, but in fact
`ld -r` can emit such symbols if the input contained a (true) private
extern, or if it contained a symbol started with "L".

Non-extern symbols marked as private extern are essentially equivalent
to regular TU-scoped symbols, so no new functionality is needed.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D104502
The file was modifiedlld/MachO/InputFiles.cpp (diff)
The file was addedlld/test/MachO/local-private-extern.yaml
Commit 1d31fb8d122b1117cf20a9edc09812db8472e930 by jezng
[lld-macho] Have path-related functions return std::string, not StringRef

findLibrary() returned a StringRef while findFramework & other helper
functions returned std::strings. Standardize on std::string.

(I initially tried making the helper functions all return StringRefs,
but I realized we shouldn't return input StringRefs since their
lifetimes would not be obvious from the calling code.)
The file was modifiedlld/MachO/Driver.h (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/MachO/DriverUtils.cpp (diff)
Commit f7999e73caeff482a324ab0f9ac2fbeb99f8e3ec by leonardchan
[NFC][compiler-rt][hwasan] Move hwasanThreadList().CreateCurrentThread() into InitThreads

Once D104553 lands, CreateCurrentThread will be able to accept optional
parameters for initializing the hwasan thread object. On fuchsia, we can get
stack info in the platform-specific InitThreads and pass it through
CreateCurrentThread. On linux, this is a no-op.

Differential Revision: https://reviews.llvm.org/D104561
The file was modifiedcompiler-rt/lib/hwasan/hwasan.cpp (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_linux.cpp (diff)
Commit 193e41c987127aad86d0380df83e67a85266f1f1 by ndesaulniers
[Clang][Codegen] Add GNU function attribute 'no_profile' and lower it to noprofile

noprofile IR attribute already exists to prevent profiling with PGO;
emit that when a function uses the newly added no_profile function
attribute.

The Linux kernel would like to avoid compiler generated code in
functions annotated with such attribute. We already respect this for
libcalls to fentry() and mcount().

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223
Link: https://lore.kernel.org/lkml/CAKwvOdmPTi93n2L0_yQkrzLdmpxzrOR7zggSzonyaw2PGshApw@mail.gmail.com/

Reviewed By: MaskRay, void, phosek, aaron.ballman

Differential Revision: https://reviews.llvm.org/D104475
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test (diff)
The file was addedclang/test/CodeGen/no_profile.c
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
The file was modifiedclang/include/clang/Basic/Attr.td (diff)
The file was addedclang/test/Sema/no_profile-attribute.c
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp (diff)
Commit bef299286104c2b6383a43b9d1eb0e47838cb5b6 by ndesaulniers
[GCOVProfiling] don't profile Fn's w/ noprofile attribute

Similar to D104475, the Linux kernel would like to avoid compiler
generated code in certain functions. The no_profile function
attribute can be used in C to generate the the noprofile fn attr in IR.
Respect that from GCOVProfiling.

Link: https://lore.kernel.org/lkml/CAKwvOdmPTi93n2L0_yQkrzLdmpxzrOR7zggSzonyaw2PGshApw@mail.gmail.com/

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D104257
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
The file was addedllvm/test/Transforms/GCOVProfiling/noprofile.ll
Commit d1baf2895467735ab14f4b3415fce204c0cc8e7f by riddleriver
[mlir] Add support to SourceMgrDiagnosticHandler for filtering FileLineColLocs

This revision adds support for passing a functor to SourceMgrDiagnosticHandler for filtering out FileLineColLocs when emitting a diagnostic. More specifically, this can be useful in situations where there may be large CallSiteLocs with locations that aren't necessarily important/useful for users.

For now the filtering support is limited to FileLineColLocs, but conceptually we could allow filtering for all locations types if a need arises in the future.

Differential Revision: https://reviews.llvm.org/D103649
The file was modifiedmlir/docs/Diagnostics.md (diff)
The file was addedmlir/test/IR/diagnostic-handler-filter.mlir
The file was modifiedmlir/include/mlir/IR/Diagnostics.h (diff)
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
The file was modifiedmlir/lib/IR/Diagnostics.cpp (diff)
The file was addedmlir/test/lib/IR/TestDiagnostics.cpp
The file was modifiedmlir/test/lib/IR/CMakeLists.txt (diff)
Commit fb19aa0c74fdb864ddbd677a7b3585661966a098 by hoy
[CSSPGO][llvm-profgen] Fix an issue in findDisjointRanges

We were using 0 as an indicator of invalid offset when computing disjoint ranges. In reality, 0 can be an valid code offset which stands for the first function in .text section. I'm using UINT64_MAX as an invalid code offset instead.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D104497
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp (diff)
Commit 3308205ae9dd3b42e19b377157c642a04312f7fd by nikita.ppv
[LoopUnroll] Simplify optimization remarks

Remove dependence on ULO.TripCount/ULO.TripMultiple from ORE and
debug code. For debug code, print information about all exits.
For optimization remarks, only include the unroll count and the
type of unroll (complete, partial or runtime), but omit detailed
information about exit folding, now that more than one exit may
be folded.

Differential Revision: https://reviews.llvm.org/D104482
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/loop-micro-op-buffer-size-t99.ll (diff)
The file was modifiedllvm/test/Transforms/LoopUnroll/loop-remarks-with-hotness.ll (diff)
Commit 4b9d28bd530fd227a5db4da094d5a60577e1d1ac by stellaraccident
Partial rollback: Disable MLIR verifier parallelism.

Deadlocks have been found in several downstream projects as noted on the original patch: https://reviews.llvm.org/D104207

Disabling pending full root cause analysis.

Differential Revision: https://reviews.llvm.org/D104570
The file was modifiedmlir/lib/IR/Verifier.cpp (diff)
Commit 817218336aa3e3c0ca422ae00f8d8ca41b8fbd6d by ndesaulniers
Whitespace fixes for
193e41c987127aad86d0380df83e67a85266f1f1
which reportedly fails on the mac builds.
The file was modifiedclang/test/CodeGen/no_profile.c (diff)
Commit 36f93fc594ea168d541bb2fde95014a5502bef88 by pklausler
[flang] Fix clang build (struct/class mismatch warning)

A recent patch changed a struct into a class, but missed a
forward definition.  GCC didn't warn, but clang does.  Fix.
The file was modifiedflang/runtime/type-info.h (diff)
Commit bd52495518808bdbf24f4d8e9e20774d6d2e3333 by hoy
[CSSPGO] Undoing the concept of dangling pseudo probe

As a follow-up to https://reviews.llvm.org/D104129, I'm cleaning up the danling probe related code in both the compiler and llvm-profgen.

I'm seeing a 5% size win for the pseudo_probe section for SPEC2017 and 10% for Ciner. Certain benchmark such as 602.gcc has a 20% size win. No obvious difference seen on build time for SPEC2017 and Cinder.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D104477
The file was modifiedllvm/include/llvm/IR/PseudoProbe.h (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp (diff)
The file was modifiedllvm/test/Transforms/SampleProfile/pseudo-probe-dangle.ll (diff)
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp (diff)
The file was removedllvm/test/Transforms/SampleProfile/pseudo-probe-dedup.ll
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-pseudoprobe.test (diff)
The file was modifiedllvm/test/Transforms/SampleProfile/pseudo-probe-dangle2.ll (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.perfscript (diff)
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h (diff)
The file was modifiedllvm/lib/Transforms/IPO/SampleProfileProbe.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Utils/BasicBlockUtils.h (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin (diff)
The file was removedllvm/test/tools/llvm-profgen/Inputs/inline-cs-dangling-pseudoprobe.perfscript
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/recursion-compression-pseudoprobe.perfbin (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp (diff)
The file was modifiedllvm/tools/llvm-profgen/PseudoProbe.h (diff)
The file was modifiedllvm/tools/llvm-profgen/PseudoProbe.cpp (diff)
The file was modifiedllvm/test/Transforms/SampleProfile/pseudo-probe-dangle3.ll (diff)
The file was removedllvm/test/Transforms/SampleProfile/pseudo-probe-dangling.mir
The file was modifiedllvm/test/tools/llvm-profgen/fname-canonicalization.test (diff)
The file was removedllvm/test/tools/llvm-profgen/inline-cs-dangling-pseudoprobe.test
The file was modifiedllvm/lib/IR/PseudoProbe.cpp (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/inline-cs-pseudoprobe.perfbin (diff)
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp (diff)
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp (diff)
The file was modifiedllvm/lib/CodeGen/PseudoProbeInserter.cpp (diff)
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-pseudoprobe.test (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.perfbin (diff)
The file was modifiedllvm/test/tools/llvm-profgen/pseudoprobe-decoding.test (diff)
The file was modifiedllvm/lib/CodeGen/TailDuplicator.cpp (diff)
The file was modifiedllvm/include/llvm/MC/MCPseudoProbe.h (diff)
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test (diff)
The file was modifiedllvm/test/tools/llvm-profgen/Inputs/unique-linkage-name-probe.perfbin (diff)
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/BasicBlockUtils.cpp (diff)
The file was modifiedllvm/test/tools/llvm-profgen/merge-cold-profile.test (diff)
Commit ec978664542d6202c05e809fcfd6ead62a43d41b by tianshilei1992
[OpenMP] Make bug49334.cpp more reproducible

`bug49334.cpp` cannot detect data race in `libomptarget` efficiently. It
is reported that with `N = 256` and `BS = 16`, the data race can be reproduced
more steadily. The next coming pathces will fix it so this patch is expected to
fail now.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D104552
The file was modifiedopenmp/libomptarget/test/offloading/bug49334.cpp (diff)
Commit ad4a18251a37a244e3d4375538abfc0894a1e6ac by Matthew.Arsenault
AMDGPU: Fix assert on m0_lo16/m0_hi16

These get added (redundantly) to the bundle expanded for indirect
register accesses. We hit this path only when there is a call in the
function.
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si-gfx9.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (diff)
Commit fb32de9e97af0921242a021e30020ffacf7aa6e2 by thakis
Re-Revert "DirectoryWatcher: add an implementation for Windows"

This reverts commit 76f1baa7875acd88bdd4b431eed6e2d2decfc0fe.

Also reverts 2 follow-ups:

1. Revert "DirectoryWatcher: also wait for the notifier thread"
   This reverts commit 527a1821e6f8e115db3335a3341c7ac491725a0d.

2. Revert "DirectoryWatcher: close a possible window of race on Windows"
   This reverts commit a6948da86ad7e78d66b26263c2681ef6385cc234.

Makes tests hang, see comments on https://reviews.llvm.org/D88666
The file was modifiedclang/unittests/DirectoryWatcher/CMakeLists.txt (diff)
The file was modifiedclang/lib/DirectoryWatcher/windows/DirectoryWatcher-windows.cpp (diff)
Commit d6467e00dfccf10aa91e5a1d55d981a9b13642a3 by Matthew.Arsenault
AMDGPU: Fix infinite loop in DAG combine with fneg + fma

We were not reporting isFNegFree for v2f32, although it is effectively
free after legalization. The generic combine was pulling fneg out of
the fma source operands, and the AMDGPU combine was doing the
opposite.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-combines.ll (diff)
Commit 5540470f642a3118439996cbcde7d90530588eb5 by i
[profile][test] Delete profraw directory so that tests are immune to format version upgrade
The file was modifiedcompiler-rt/test/profile/instrprof-lto-pgogen.c (diff)
The file was modifiedcompiler-rt/test/profile/instrprof-gc-sections.c (diff)
Commit b3c1f53c989f6aefad581955e3add222cfb5d890 by pklausler
[flang] Recode a switch() to dodge a sketchy warning

One of the buildbots uses a compiler (can't tell which) that
doesn't approve of a "default:" in a switch statement whose
cases appear to completely cover all possible values of an
enum class.  But this switch is in raw data dumping code that
needs to allow for incorrect values in memory.  So rewrite it
as a cascade of if statements; performance doesn't matter here.
The file was modifiedflang/runtime/type-info.cpp (diff)
Commit 3307240f057b856bfb01c1e42e260aa3f896c592 by i
[InstrProfiling][ELF] Make __profd_ private if the function does not use value profiling

On ELF, the D1003372 optimization can apply to more cases. There are two
prerequisites for making `__profd_` private:

* `__profc_` keeps `__profd_` live under compiler/linker GC
* `__profd_` is not referenced by code

The first is satisfied because all counters/data are in a section group (either
`comdat any` or `comdat noduplicates`). The second requires that the function
does not use value profiling.

Regarding the second point: `__profd_` may be referenced by other text sections
due to inlining. There will be a linker error if a prevailing text section
references the non-prevailing local symbol.

With this change, a stage 2 (`-DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_INSTRUMENTED=IR`)
clang is 4.2% smaller (1-169620032/177066968).
`stat -c %s **/*.o | awk '{s+=$1}END{print s}' is 2.5% smaller.

Reviewed By: davidxl, rnk

Differential Revision: https://reviews.llvm.org/D103717
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile.ll (diff)
Commit c9b241efd68c5a0f1f67e9250960ade454f3bc11 by thakis
Revert "[lld-macho] Avoid force-loading the same archive twice"

This reverts commit 24706cd73cd150543753a2e169c68a2c68da46a1.
Test seems to fail flakily. See comments on https://reviews.llvm.org/D104353
for a hypothesis for why.
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/test/MachO/archive.s (diff)
The file was modifiedlld/test/MachO/force-load.s (diff)
Commit 575ba6f42560002807dd6382ffc83abc1b6b9b50 by carrot
[InstCombine] Don't transform code if DoTransform is false

In patch https://reviews.llvm.org/D72396, it doesn't check DoTransform before transforming the code, and generates wrong result for the attached test case.

Differential Revision: https://reviews.llvm.org/D104567
The file was modifiedllvm/test/Transforms/InstCombine/zext.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp (diff)
Commit 070556237e29e8a804fbec1d416d431239384ab0 by gbalats
[libfuzzer] Disable failing DFSan-related tests

These have been broken by https://reviews.llvm.org/D104494.
However, `lib/fuzzer/dataflow/` is unused (?) so addressing this is not a priority.

Added TODOs to re-enable them in the future.

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104568
The file was modifiedcompiler-rt/test/fuzzer/only-some-bytes.test (diff)
The file was modifiedcompiler-rt/test/fuzzer/only-some-bytes-fork.test (diff)
The file was modifiedcompiler-rt/lib/fuzzer/dataflow/DataFlow.cpp (diff)
Commit 9b699450dd66df258cb424470fcb1ea737a99341 by Lang Hames
[ORC][examples] Fix file name in comment.
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c (diff)
Commit 80f30a6b855b7aa96b99205c986972483d75822e by Lang Hames
[ORC][C-bindings] Add access to LLJIT IRTransformLayer, ThreadSafeModule utils.

This patch was derived from Valentin Churavy's work in
https://reviews.llvm.org/D104480. It adds support for setting the transform on
an IRTransformLayer, and for accessing the IRTransformLayer in LLJIT. It also
adds access to the ThreadSafeModule::withModuleDo method for thread-safe
access to modules.

A new example has been added to show how to use these APIs to optimize a module
during materialization.

Thanks Valentin!

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D103855
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt (diff)
The file was modifiedllvm/include/llvm-c/LLJIT.h (diff)
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff)
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt
The file was modifiedllvm/include/llvm-c/Orc.h (diff)
Commit 671a87104b8132e45718a9584cbb7ed97916683f by taolq
[llvm][Inliner] Add an optional PriorityInlineOrder

This patch adds an optional PriorityInlineOrder, which uses the heap to order inlining.
The callsite which size is smaller would have a higher priority.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D104028
The file was modifiedllvm/test/Transforms/Inline/inline_call.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp (diff)
The file was modifiedllvm/test/Transforms/Inline/inline_invoke.ll (diff)
The file was modifiedllvm/test/Transforms/Inline/last-callsite.ll (diff)
Commit a79c01832553a8a192ab157098662a9e8f2c16af by jezng
Revert "[lld-macho] Have path-related functions return std::string, not StringRef"

This reverts commit 1d31fb8d122b1117cf20a9edc09812db8472e930.

Making `rerootPath` return a temporary std::string caused a
use-after-free:

https://ci.chromium.org/ui/p/chromium/builders/try/win_upload_clang/1608/overview
The file was modifiedlld/MachO/Driver.h (diff)
The file was modifiedlld/MachO/DriverUtils.cpp (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
Commit 4507f64165fd0c95f08b66d61db39549b22c50d3 by jezng
[re-land][lld-macho] Avoid force-loading the same archive twice

This reverts commit c9b241efd68c5a0f1f67e9250960ade454f3bc11, which was
a backout diff to fix the buildbots.

The real culprit of the crash is
https://github.com/llvm/llvm-project/commit/1d31fb8d122b1117cf20a9edc09812db8472e930,
which is being reverted.

Differential Revision: https://reviews.llvm.org/D104353
The file was modifiedlld/test/MachO/archive.s (diff)
The file was modifiedlld/test/MachO/force-load.s (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
Commit 24199f534f61d9ac7d2d9dcde7b9cac93c84d4f0 by springerm
[mlir][linalg] Lower subtensor(pad_tensor) to pad_tensor(subtensor)

Only high padding is supported at the moment. Low padding will be added in a separate commit.

Differential Revision: https://reviews.llvm.org/D104357
The file was addedmlir/test/Dialect/Linalg/subtensor-of-padtensor.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp (diff)
Commit 382b3fe043380c02bcffc8e3fba928bea12c0f5a by Lang Hames
[ORC][examples] Add missing library dependence
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt (diff)
Commit 31190738c024298745d877a47ef95a5263ea5c9e by powerman1st
[RISCV][test] Add new tests for add-mul optimization in the zba extension with SH*ADD

These tests will show the following optimization by future patches.

Rx + Ry * 18  => (SH1ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 20  => (SH2ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 24  => (SH3ADD (SH1ADD Rx, Rx), Ry)
Rx + Ry * 36  => (SH2ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 40  => (SH3ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 72  => (SH3ADD (SH3ADD Rx, Rx), Ry)
Rx * (3 << C) => (SLLI (SH1ADD Rx, Rx), C)
Rx * (5 << C) => (SLLI (SH2ADD Rx, Rx), C)
Rx * (9 << C) => (SLLI (SH3ADD Rx, Rx), C)

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D104507
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll (diff)
Commit d934b72809cb3cbc9f646a2b505e781e0b8b3d7b by powerman1st
[RISCV] Optimize add-mul in the zba extension with SH*ADD

This patch does the following optimization.

Rx + Ry * 18 => (SH1ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 20 => (SH2ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 24 => (SH3ADD (SH1ADD Rx, Rx), Ry)
Rx + Ry * 36 => (SH2ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 40 => (SH3ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 72 => (SH3ADD (SH3ADD Rx, Rx), Ry)

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D104588
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td (diff)
Commit 1bd4085e0bbc14ec61ab69c83464098622b2df56 by nikita.ppv
[LoopUnroll] Push runtime unrolling decision up into tryToUnrollLoop()

Currently, UnrollLoop() is passed an AllowRuntime flag and decides
itself whether runtime unrolling should be used or not. This patch
pushes the decision into the caller and allows us to eliminate the
ULO.TripCount and ULO.TripMultiple parameters.

Differential Revision: https://reviews.llvm.org/D104487
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Utils/UnrollLoop.h (diff)
Commit 876de062f94650f9ded56a22b062236f711fcd18 by marius.brehler
[mlir] Add EmitC dialect

This upstreams the EmitC dialect and the corresponding Cpp target, both
initially presented with [1], from [2] to MLIR core. For the related
discussion, see [3].

[1] https://reviews.llvm.org/D76571
[2] https://github.com/iml130/mlir-emitc
[3] https://llvm.discourse.group/t/emitc-generating-c-c-from-mlir/3388

Co-authored-by: Jacques Pienaar <jpienaar@google.com>
Co-authored-by: Simon Camphausen <simon.camphausen@iml.fraunhofer.de>
Co-authored-by: Oliver Scherf <oliver.scherf@iml.fraunhofer.de>

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D103969
The file was addedmlir/lib/Dialect/EmitC/IR/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/EmitC/IR/EmitCAttributes.td
The file was addedmlir/include/mlir/Dialect/EmitC/IR/EmitC.h
The file was addedmlir/include/mlir/Dialect/EmitC/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/CMakeLists.txt (diff)
The file was modifiedmlir/test/mlir-opt/commandline.mlir (diff)
The file was addedmlir/lib/Dialect/EmitC/IR/EmitC.cpp
The file was addedmlir/test/Dialect/EmitC/types.mlir
The file was addedmlir/test/Dialect/EmitC/invalid_ops.mlir
The file was addedmlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
The file was modifiedmlir/include/mlir/InitAllDialects.h (diff)
The file was addedmlir/test/Dialect/EmitC/ops.mlir
The file was addedmlir/include/mlir/Dialect/EmitC/IR/EmitCTypes.td
The file was addedmlir/include/mlir/Dialect/EmitC/IR/EmitCBase.td
The file was addedmlir/lib/Dialect/EmitC/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/CMakeLists.txt (diff)
The file was addedmlir/include/mlir/Dialect/EmitC/IR/EmitC.td
Commit a1449a10dbcfcf353f4f761281c4e572b4ce9308 by melanie.blower
[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on

This patch changes the ffp-model=precise to enables -ffp-contract=on
(previously -ffp-model=precise enabled -ffp-contract=fast). This is a
follow-up to Andy Kaylor's comments in the llvm-dev discussion
"Floating Point semantic modes". From the same email thread, I put
Andy's distillation of floating point options and floating point modes
into UsersManual.rst

Differential Revision: https://reviews.llvm.org/D74436
The file was modifiedclang/test/CodeGen/ppc-emmintrin.c (diff)
The file was modifiedclang/test/CodeGen/ffp-contract-option.c (diff)
The file was modifiedclang/docs/UsersManual.rst (diff)
The file was modifiedclang/test/Driver/fp-model.c (diff)
The file was modifiedclang/test/CodeGen/ppc-xmmintrin.c (diff)
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
Commit c9889c44ec5a4054833457c813e155f284703ef4 by markus.boeck02
[clang-cl] Don't expand /permissive- to /ZC:strictStrings yet

Follow up on rGc70b0e808da8

/Zc:strictStrings is an alias to an option part of the -W group. When the driver tries to render the option back to a string for the cc1 invocation, it sadly gets rendered with the original spelling instead of the alias, causing issues reported here: https://reviews.llvm.org/D103773#inline-989447

I am thinking it's the best to revert this part of the patch until I figured out how to correctly add the arg and until /Zc:strictStrings- exists/is needed.
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp (diff)
Commit 134723edd5bf06ff6ec8aca7b87c56e5bd70ccae by Louis Dionne
[libcxx] Move all algorithms into their own headers

This is a fairly mechanical change, it just moves each algorithm into
its own header. This is intended to be a NFC.

This commit re-applies 7ed7d4ccb899, which was reverted in 692d7166f771
because the Modules build got broken. The modules build has now been
fixed, so we're re-committing this.

Differential Revision: https://reviews.llvm.org/D103583

Attribution note
----------------
I'm only committing this. This commit is a mix of D103583, D103330 and
D104171 authored by:

Co-authored-by: Christopher Di Bella <cjdb@google.com>
Co-authored-by: zoecarver <z.zoelec2@gmail.com>
The file was addedlibcxx/include/__algorithm/is_permutation.h
The file was addedlibcxx/include/__algorithm/find_first_of.h
The file was addedlibcxx/include/__algorithm/find.h
The file was addedlibcxx/include/__algorithm/minmax_element.h
The file was addedlibcxx/include/__algorithm/sample.h
The file was addedlibcxx/include/__algorithm/count.h
The file was modifiedlibcxx/include/random (diff)
The file was addedlibcxx/include/__algorithm/find_if_not.h
The file was addedlibcxx/include/__algorithm/push_heap.h
The file was addedlibcxx/include/__algorithm/remove_copy_if.h
The file was addedlibcxx/include/__algorithm/partition_copy.h
The file was addedlibcxx/include/__algorithm/search_n.h
The file was addedlibcxx/include/__algorithm/copy_backward.h
The file was addedlibcxx/include/__algorithm/generate.h
The file was addedlibcxx/include/__algorithm/inplace_merge.h
The file was addedlibcxx/include/__algorithm/move_backward.h
The file was addedlibcxx/include/__algorithm/set_intersection.h
The file was addedlibcxx/include/__algorithm/nth_element.h
The file was addedlibcxx/include/__algorithm/none_of.h
The file was addedlibcxx/include/__algorithm/comp.h
The file was addedlibcxx/include/__algorithm/for_each.h
The file was addedlibcxx/include/__algorithm/fill_n.h
The file was addedlibcxx/include/__algorithm/max_element.h
The file was addedlibcxx/include/__algorithm/prev_permutation.h
The file was modifiedlibcxx/include/CMakeLists.txt (diff)
The file was addedlibcxx/include/__algorithm/is_sorted.h
The file was addedlibcxx/include/__algorithm/make_heap.h
The file was addedlibcxx/include/__algorithm/replace_copy.h
The file was addedlibcxx/include/__algorithm/adjacent_find.h
The file was addedlibcxx/include/__algorithm/shuffle.h
The file was addedlibcxx/include/__algorithm/generate_n.h
The file was addedlibcxx/include/__algorithm/partial_sort_copy.h
The file was addedlibcxx/include/__algorithm/lower_bound.h
The file was modifiedlibcxx/include/__memory/temporary_buffer.h (diff)
The file was modifiedlibcxx/include/algorithm (diff)
The file was addedlibcxx/include/__algorithm/comp_ref_type.h
The file was addedlibcxx/include/__algorithm/copy_if.h
The file was addedlibcxx/include/__algorithm/partition.h
The file was addedlibcxx/include/__algorithm/partition_point.h
The file was addedlibcxx/include/__algorithm/equal.h
The file was addedlibcxx/include/__algorithm/partial_sort.h
The file was addedlibcxx/include/__algorithm/count_if.h
The file was addedlibcxx/include/__algorithm/sift_down.h
The file was addedlibcxx/include/__algorithm/replace_if.h
The file was modifiedlibcxx/include/experimental/functional (diff)
The file was addedlibcxx/include/__algorithm/sort_heap.h
The file was addedlibcxx/include/__algorithm/min_element.h
The file was modifiedlibcxx/include/regex (diff)
The file was addedlibcxx/include/__functional/search.h
The file was addedlibcxx/include/__algorithm/reverse_copy.h
The file was addedlibcxx/include/__algorithm/binary_search.h
The file was addedlibcxx/include/__algorithm/transform.h
The file was addedlibcxx/include/__random/uniform_int_distribution.h
The file was addedlibcxx/include/__algorithm/find_end.h
The file was addedlibcxx/include/__algorithm/remove_copy.h
The file was addedlibcxx/include/__algorithm/search.h
The file was addedlibcxx/include/__algorithm/set_symmetric_difference.h
The file was addedlibcxx/include/__algorithm/shift_left.h
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.fail.cpp (diff)
The file was addedlibcxx/include/__algorithm/mismatch.h
The file was addedlibcxx/include/__algorithm/includes.h
The file was addedlibcxx/include/__algorithm/move.h
The file was addedlibcxx/include/__algorithm/copy.h
The file was addedlibcxx/include/__algorithm/copy_n.h
The file was addedlibcxx/include/__algorithm/equal_range.h
The file was addedlibcxx/include/__algorithm/for_each_n.h
The file was addedlibcxx/include/__algorithm/shift_right.h
The file was addedlibcxx/include/__algorithm/stable_partition.h
The file was addedlibcxx/include/__algorithm/rotate.h
The file was modifiedlibcxx/include/module.modulemap (diff)
The file was addedlibcxx/include/__algorithm/unique_copy.h
The file was addedlibcxx/include/__algorithm/upper_bound.h
The file was addedlibcxx/include/__algorithm/find_if.h
The file was addedlibcxx/include/__algorithm/pop_heap.h
The file was modifiedlibcxx/test/std/containers/sequences/array/compare.fail.cpp (diff)
The file was addedlibcxx/include/__algorithm/replace_copy_if.h
The file was addedlibcxx/include/__algorithm/remove.h
The file was addedlibcxx/include/__algorithm/all_of.h
The file was addedlibcxx/include/__algorithm/max.h
The file was addedlibcxx/include/__algorithm/set_difference.h
The file was modifiedlibcxx/include/functional (diff)
The file was addedlibcxx/include/__algorithm/half_positive.h
The file was addedlibcxx/include/__algorithm/minmax.h
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.fail.cpp (diff)
The file was addedlibcxx/include/__algorithm/is_heap_until.h
The file was addedlibcxx/include/__algorithm/set_union.h
The file was addedlibcxx/include/__algorithm/unique.h
The file was addedlibcxx/include/__algorithm/is_partitioned.h
The file was addedlibcxx/include/__algorithm/is_sorted_until.h
The file was addedlibcxx/include/__algorithm/unwrap_iter.h
The file was addedlibcxx/include/__algorithm/fill.h
The file was addedlibcxx/include/__algorithm/sort.h
The file was addedlibcxx/include/__algorithm/min.h
The file was addedlibcxx/include/__algorithm/next_permutation.h
The file was addedlibcxx/include/__algorithm/merge.h
The file was addedlibcxx/include/__algorithm/remove_if.h
The file was addedlibcxx/include/__algorithm/is_heap.h
The file was addedlibcxx/include/__algorithm/lexicographical_compare.h
The file was addedlibcxx/include/__algorithm/stable_sort.h
The file was addedlibcxx/include/__algorithm/rotate_copy.h
The file was addedlibcxx/include/__algorithm/replace.h
The file was addedlibcxx/include/__algorithm/any_of.h
The file was addedlibcxx/include/__algorithm/clamp.h
The file was addedlibcxx/include/__algorithm/reverse.h
Commit 2ec672dcdf4b72523bbee50c2be0d02fc38be660 by llvmgnsyncbot
[gn build] Port 134723edd5bf
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn (diff)
Commit 9abaf5c359ca29fcdd4f42b72ae0a62f18626180 by melanie.blower
Revert "[clang][FPEnv] Clang floatng point model ffp-model=precise enables ffp-contract=on"

This reverts commit a1449a10dbcfcf353f4f761281c4e572b4ce9308.
Seems like my changes to LNT had no effect -- puzzled.
The 21 tests pass on my sandbox with the clang patch but are
failing in exec time in the bot
The file was modifiedclang/test/CodeGen/ffp-contract-option.c (diff)
The file was modifiedclang/test/Driver/fp-model.c (diff)
The file was modifiedclang/docs/UsersManual.rst (diff)
The file was modifiedclang/test/CodeGen/ppc-xmmintrin.c (diff)
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc-emmintrin.c (diff)
Commit 18dbe6897857944653ee8f68dca8d63bc38aaff8 by tomas.matheson
[ARM][NFC] Tidy up subtarget frame pointer routines

getFramePointerReg only depends on information in ARMSubtarget,
so move it in there so it can be accessed from more places.

Make use of ARMSubtarget::getFramePointerReg to remove duplicated code.

The main use of useR7AsFramePointer is getFramePointerReg, so inline it.

Differential Revision: https://reviews.llvm.org/D104476
The file was modifiedllvm/lib/Target/ARM/Thumb1FrameLowering.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h (diff)
The file was modifiedllvm/lib/Target/ARM/ARMFrameLowering.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMAsmPrinter.cpp (diff)
Commit 1bcfa84ae908ddcf042163345ffee2d247669e60 by tomas.matheson
Allow building for release with EXPENSIVE_CHECKS

D97225 moved LazyCallGraph verify() calls behind EXPENSIVE_CHECKS,
but verity() is defined for debug builds only so this had the unintended
effect of breaking release builds with EXPENSIVE_CHECKS.

Fix by enabling verify() for both debug and EXPENSIVE_CHECKS.

Differential Revision: https://reviews.llvm.org/D104514
The file was modifiedllvm/include/llvm/Analysis/LazyCallGraph.h (diff)
The file was modifiedllvm/lib/Analysis/LazyCallGraph.cpp (diff)
Commit decfad7d8e9b268654dd2d76a7f5f777502b60a6 by Saleem Abdulrasool
Revert "Re-Revert "DirectoryWatcher: add an implementation for Windows""

This reverts commit fb32de9e97af0921242a021e30020ffacf7aa6e2.

Remove the secondary synchronization point as noted by Adrian.  This is
technically only to make the builders happier about tests and should not
be needed.  This also pushes the condition variable setting to after the
watch is actually established (which was the source of the original race
condition, but would normally succeed as the thread shouldn't get put to
sleep immediately on the trigger of the condition variable).

This also was pretested on the chromium builders:
https://ci.chromium.org/ui/p/chromium/builders/try/win_upload_clang/1612/overview.
The file was modifiedclang/unittests/DirectoryWatcher/CMakeLists.txt (diff)
The file was modifiedclang/lib/DirectoryWatcher/windows/DirectoryWatcher-windows.cpp (diff)
Commit 328b21a3389cf04e50bf9fb7b295c1d6af6f60d3 by spatel
[InstCombine][test] add tests for select-of-bit-manip; NFC
The file was addedllvm/test/Transforms/InstCombine/intrinsic-select.ll
Commit 940efa4f6981964c95a69ff412378722438607bf by michael.hliao
[amdgpu] Improve the from f32 to i64.

- Take the same principle as the conversion from f64 to i64 with extra
  necessary pre- and post-processing. It helps to reduce that conversion
  sequence by half compared to legacy one.

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D104427
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fptosi.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fp_to_uint.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.h (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fptoui.mir (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fp_to_sint.ll (diff)
Commit b9c05aff205bab3f8ca639e44b825277d6cf48a9 by michael.hliao
[MIRPrinter] Add machine metadata support.

- Distinct metadata needs generating in the codegen to attach correct
  AAInfo on the loads/stores after lowering, merging, and other relevant
  transformations.
- This patch adds 'MachhineModuleSlotTracker' to help assign slot
  numbers to these newly generated unnamed metadata nodes.
- To help 'MachhineModuleSlotTracker' track machine metadata, the
  original 'SlotTracker' is rebased from 'AbstractSlotTrackerStorage',
  which provides basic interfaces to create/retrive metadata slots. In
  addition, once LLVM IR is processsed, additional hooks are also
  introduced to help collect machine metadata and assign them slot
  numbers.
- Finally, if there is any such machine metadata, 'MIRPrinter' outputs
  an additional 'machineMetadataNodes' field containing all the
  definition of those nodes.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D103205
The file was addedllvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/MIRYamlMapping.h (diff)
The file was modifiedllvm/lib/IR/AsmWriter.cpp (diff)
The file was modifiedllvm/include/llvm/IR/ModuleSlotTracker.h (diff)
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt (diff)
The file was addedllvm/lib/CodeGen/MachineModuleSlotTracker.cpp
The file was modifiedllvm/unittests/CMakeLists.txt (diff)
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt (diff)
The file was addedllvm/unittests/MIR/MachineMetadata.cpp
The file was addedllvm/unittests/MIR/CMakeLists.txt
Commit 17271ece0da69c4dde0bbab60883b7fdd05be131 by thakis
[lld/mac] Give __DATA,__thread_ptrs type S_THREAD_LOCAL_VARIABLE_POINTERS

...instead of S_NON_LAZY_SYMBOL_POINTERS. This matches ld64.

Part of PR50769.

While here, also remove an old TODO that was done in D87178.

Differential Revision: https://reviews.llvm.org/D104594
The file was modifiedlld/test/MachO/tlv.s (diff)
The file was modifiedlld/test/MachO/tlv-dylib.s (diff)
The file was modifiedlld/MachO/SyntheticSections.cpp (diff)
The file was modifiedlld/MachO/SyntheticSections.h (diff)
Commit c931e12b1d517ca2d0b1dbcb90f65b770046ef3e by thakis
[lld/mac] Make sure __thread_ptrs is in front of __thread_bss

The exact location doesn't matter, but it should be in front
of __thread_bss. We put it right in front of __thread_data
which is where ld64 seems to put it as well.

Fixes PR50769.

(As mentioned on the bug, there is probably a more structural
fix too, see comment 5. If we don't address this, it's likely
we'll run into this again with other synthetic sections. But
for now, let's fix the immediate breakage.)

Differential Revision: https://reviews.llvm.org/D104596
The file was modifiedlld/test/MachO/tlv-dylib.s (diff)
The file was modifiedlld/MachO/OutputSegment.cpp (diff)
Commit 1605fce6c3074f8d1dff5a917a1840ffa66abd86 by thakis
[gn build] (manually) port b9c05aff205b (MIRTests)
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn (diff)
The file was addedllvm/utils/gn/secondary/llvm/unittests/MIR/BUILD.gn
Commit 59d90fe817b5f1feae1a1406bd487e6552b9928d by i
Simplify some typedef struct
The file was modifiedllvm/lib/Target/PowerPC/PPCFastISel.cpp (diff)
The file was modifiedllvm/tools/llvm-profdata/llvm-profdata.cpp (diff)
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (diff)
Commit 834aafa55bd175efce0575e6e596f19cdf317d91 by lebedev.ri
[NFC] AMD Zen 3: fix typo in a comment
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver3.td (diff)
Commit b663f30fa45ce86c8a3362624b87ccb372bd036a by craig.topper
[RISCV] Prevent formation of shXadd(.uw) and add.uw if it prevents the use of addi.

If the outer add has an simm12 immediate operand we should prefer
it instead of materializing it in a register. This would guarantee
and extra instruction and temporary register. Since we don't check
one use on the shl or zext we might generate more instructions if
there is an additional user.
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td (diff)
Commit 0f558db742fa52745f475d84336f88f04380e2fb by i
[llvm-profdata] Delete unneeded empty output filename check
The file was modifiedllvm/tools/llvm-profdata/llvm-profdata.cpp (diff)
Commit 1c8bb625b716b647206bcf5f51ac1c356ec2985e by martin
[LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix

Pass the original argv[0] to the coff linker, as the coff linker uses
the basename of argv[0] as the log prefix.

This makes error messages to be printed with a "ld.lld:" prefix
instead of "lld-link:". The current "lld-link:" prefix can be confusing
to users, as they're invoking the MinGW linker (and might not even have
a lld-link executable).

Keep the first argument as lld-link when printing the command line, to
make it an actually reproducible standalone command.

Differential Revision: https://reviews.llvm.org/D104526
The file was modifiedlld/test/MinGW/driver.test (diff)
The file was modifiedlld/MinGW/Driver.cpp (diff)
Commit e1adf90826a57b674eee79b071fb46c1f5683cd0 by martin
[LLD] [COFF] Avoid doing repeated fuzzy symbol lookup for each iteration. NFC.

This is run every time around in the main linker loop. Once a match
has been found, stop trying to rematch such a symbol.

Not sure if this has any actual measurable performance impact though
(SymbolTable::findMangle() iterates over the whole symbol table for
each call and does fuzzy matching on top of that) but this makes the
code more reassuring to read at least. (This is in practice run for def
files listing undecorated stdcall functions to be exported.)

Differential Revision: https://reviews.llvm.org/D104529
The file was modifiedlld/COFF/Driver.cpp (diff)
Commit d85c258fd1e7459cc8085b5f364e356f50b490a4 by phosek
[profile] Don't publish VMO if there are no counters

If there are no counters, there's no need to publish the VMO.

Differential Revision: https://reviews.llvm.org/D102786
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c (diff)
Commit 8ea2a58a2ec6dcfc33ddab8deeb9eb0e69968c6d by i
[llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style

The format is currently inconsistent. Use the https://llvm.org/docs/CodingStandards.html#error-and-warning-messages style.

And add `error:` or `warning:` to CHECK lines wherever appropriate.
The file was modifiedllvm/test/tools/llvm-profdata/weight-sample.test (diff)
The file was modifiedllvm/test/Transforms/PGOProfile/diag_no_funcprofdata.ll (diff)
The file was modifiedllvm/test/tools/llvm-profdata/malformed-ptr-to-counter-array.test (diff)
The file was modifiedllvm/test/tools/llvm-profdata/text-format-errors.test (diff)
The file was modifiedllvm/test/tools/llvm-profdata/overflow-instr.test (diff)