FailedChanges

Summary

  1. [SelectionDAG] Move ISD:PARITY formation from DAGCombine to SimplifyDemandedBits. (details)
  2. [docs] Document LLVM_EXTERNALIZE_DEBUGINFO CMake option (details)
  3. [CodeGenPrepare] Fix zapping dead operands of assume (details)
  4. [AST][FPEnv] Keep FP options in trailing storage of CastExpr (details)
  5. [llvm-cov gcov] Refactor counting and reporting (details)
  6. [analyzer] Evaluate PredefinedExpressions (details)
  7. [analyzer][docs][NFC] Document the ento namespace in the llvm/Lexicon (details)
  8. [analyzer][z3] Use more elaborate Z3 variable names (details)
  9. [CodeGen] Fix bug in IncrementPointer (details)
  10. [ARM] Fix so immediates and pc relative checks (details)
  11. [UnifyLoopExits] Fix non-deterministic iteration order (details)
  12. [compiler-rt] [netbsd] Use internal_ptrace() instead of ptrace() (details)
  13. [JumpThreading] Fix an incorrect Modified status (details)
  14. AMDGPU/GlobalISel/Emitter Support for predicate code that uses operands (details)
  15. [clangd] Add error() function for creating formatv-style llvm::Errors. NFC (details)
  16. [gn build] Port 30667c967d3 (details)
  17. [DebugInstrRef][1/9] Add fields for instr-ref variable locations (details)
  18. [clangd] Track tweaks that fail the apply stage (details)
  19. [CodeGen][X86] Regenerate minmax reduction sequence tests to match arithmetic tests. (details)
  20. [clangd] makeStringError,make_error<StringError> -> error() (details)
  21. [LegalizeDAG] Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFCI. (details)
  22. AMDGPU/GlobalISel Add test for non-leaf complex patterns (details)
  23. AMDGPU/GlobalISel/Emitter Recognize additional 'same operand checks' (details)
  24. AMDGPU/GlobalISel Check for NoNaNsFPMath in isKnownNeverSNaN (details)
  25. [SVE] In LoopIdiomRecognize::isLegalStore bail out for scalable vectors (details)
  26. [ARM][MVE] Tail-predication: check get.active.lane.mask's TC value (details)
  27. [SyntaxTree][List] Fix: `ParameterDeclarationList` is the `List` inside `ParametersAndQualifiers` (details)
  28. [SyntaxTree] Provide `List::classof` (details)
  29. [SyntaxTree][List] `assertInvariants` for `List`s (details)
  30. [ARM] Selects SSAT/USAT from correct LLVM IR (details)
  31. [DSE] Precommit test case for invalid elimination of store in loop. (details)
  32. [DSE] Only eliminate candidates that always store the same loc. (details)
  33. [CGP] Limit converting phi types to simple loads and stores (details)
  34. [mlir] Check for type conversion success in std->llvm function conversion (details)
  35. [pstl] Support Threading Building Blocks 2020 (oneTBB) for "tbb" parallel backend. (details)
  36. [llvm-readobj/elf][test] - Test all core note types properly. (details)
  37. [llvm-readelf/obj] - Refine and generalize the code that is used to dump notes. (details)
  38. [NFC] Add missing `const` statements in SCEV (details)
  39. [llvm-readobj] - Cleanup implementation LLVMStyle<ELFT>::printAddrsig(). (details)
  40. [llvm-readobj/elf] - Don't use unwrapOrError when reporting errors about SHT_DYNAMIC sections. (details)
  41. Don't dereference from a dyn_cast<>. NFCI. (details)
  42. Assert we've found both vector types. NFCI. (details)
  43. [AMDGPU] Don't cluster stores (details)
  44. [InstSimplify] fix miscompiles with maximum/minimum intrinsics (details)
  45. [ARM] Enable tail predication for reduction tests. NFC (details)
  46. [XCOFF][AIX] Handle TOC entries that could not be reached by positive range in small code model (details)
  47. [InstSimplify] fix test comments; NFC (details)
  48. [InstSimplify] add/move tests for fmin/fmax; NFC (details)
  49. [InstSimplify] reduce code duplication for fmin/fmax folds; NFC (details)
  50. Add support for casting elements in vectors for certain Std dialect type conversion operations. (details)
  51. [libcxx] ostream{,buf}_iterator::difference_type changes in C++20 (details)
  52. Assert we've found the size of each (non-overlapping) structure. NFCI. (details)
  53. [MemorySSA] Precommit test case for PR47498. (details)
  54. [MemorySSA] Make sure PerformedPhiTrans is updated for each visited def. (details)
  55. [InstSimplify] allow folds for fmin/fmax with 'ninf' (details)
  56. Sema: add support for `__attribute__((__swift_objc_members__))` (details)
  57. [InstSimplify] add folds for fmin/fmax with 'nnan' (details)
  58. [flang] Correctly detect overlapping integer cases (details)
  59. [libc] Decouple string functions. (details)
  60. [ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors (details)
  61. [flang] Fix analyzed form of type-bound assignment (details)
  62. Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols. (details)
  63. collectBitParts - use const references. NFCI. (details)
  64. Retry of D84974 (details)
  65. [libc++] Upgrade the Clang on build bots (details)
  66. Fix 132e57bc597bd3f50174b7d286c43f76b47f11c1 (details)
  67. [DAGCombiner] Fold fmin/fmax with INF / FLT_MAX (details)
  68. [InstCombine] Simplify select operand based on equality condition (details)
  69. [ms] [llvm-ml] Add missing built-in type aliases (details)
  70. [ms] [llvm-ml] Fix struct padding logic (details)
  71. [ms] [llvm-ml] Add support for size queries in MASM (details)
  72. [ms] [llvm-ml] Add basic support for SEH, including PROC FRAME (details)
  73. [ARM] Add more tests for vecreduce soft float legalization (NFC) (details)
  74. [Legalize][ARM][X86] Add float legalization for VECREDUCE (details)
  75. [libc] Extend MPFRMatcher to handle 2-input-1-output and support hypot function. (details)
  76. [libc++] Use LLVM 11 instead of trunk on build bots (details)
  77. [AArch64] Add additional vecreduce fmax/fmin legalization tests (NFC) (details)
  78. [PowerPC] Implement Thread Local Storage Support for Local Exec (details)
  79. [ELF] Add documentation for --warn-backrefs: a GNU ld compatibility checking tool (and lesser of layering detection) (details)
  80. [FastISel] Bail out of selectGetElementPtr for vector GEPs. (details)
  81. [libc++] Add comment in atomic test to explain why part of it is disabled on Apple (details)
  82. [MemProf] Rename HeapProfiler to MemProfiler for consistency (details)
  83. [gn build] Port 226d80ebe20 (details)
  84. [docs][NewPM] Add docs for writing NPM passes (details)
  85. [Asan] Fix false leak report (details)
  86. Make namespace handling uniform across dialect backends. (details)
  87. Update PowerPC backend ownership in CODE_OWNERS.TXT (details)
  88. [AMDGPU] Add XDL resource to scheduling model (details)
  89. [SelectionDAG] Use Align/MaybeAlign in calls to getLoad/getStore/getExtLoad/getTruncStore. (details)
  90. [libc++] Make rotate a constexpr. (details)
  91. [libc++] Finish implementing P0202R3 (details)
  92. Fix MLIR standalone example to properly handle namespace (details)
  93. [libc++][test] Portability fix of std::strstreambuf constructor test (details)
  94. [docs] Update OrcV1 removal timeline. (details)
  95. [PruneEH][NFC] Use CallGraphUpdater in PruneEH (details)
  96. [flang] More clean-up of CookedSource API (details)
  97. Revert "[libc++] Make rotate a constexpr." (details)
  98. [Take 2] [libc++] Make rotate a constexpr. (details)
  99. [flang] Fix bug for forward referenced type (details)
  100. [GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine (details)
  101. Revert "[docs][NewPM] Add docs for writing NPM passes" (details)
  102. [GISel]: Add combine for G_FABS to G_FABS (details)
  103. Reland [docs][NewPM] Add docs for writing NPM passes (details)
  104. [Hexagon] Some HVX DAG combines (details)
  105. [Hexagon] Widen loads and handle any-/sign-/zero-extensions (details)
  106. [Hexagon] Add more detailed testcase for widening truncates (details)
  107. [Sema] Address-space sensitive index check for unbounded arrays (details)
  108. [X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract. (details)
  109. [GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine (details)
  110. [Asan] Accept __lsan_ignore_object for redzone pointer (details)
  111. [AArch64] Statepoint support for AArch64. (details)
  112. [flang] Allow Fortran comments after #include path (details)
  113. Revert "[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract." (details)
  114. [X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract (details)
  115. [flang] Respect BZ mode in exponent parts, too (details)
  116. [libc++abi] Do not declare __cxa_finalize and __cxa_atexit in <cxxabi.h> (details)
  117. [GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z (details)
  118. [GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine (details)
  119. [Coroutines] Fix a typo in documentation (details)
  120. [DebugInfo] Remove dots from getFilenameByIndex return value (details)
  121. [lld][WebAssembly] Allow globals imports via import_name/import_module (details)
  122. [DebugInfo] Fix methods of AsmPrinter to emit values corresponding to the DWARF format (1/19). (details)
  123. [DebugInfo] Fix DIE value emitters to be compatible with DWARF64 (2/19). (details)
  124. [DebugInfo] Add new emitting methods for values which depend on the DWARF format (3/19). (details)
  125. [DebugInfo] Add the -dwarf64 switch to llc and other internal tools (4/19). (details)
  126. [DebugInfo] Fix emitting DWARF64 compilation units (5/19). (details)
  127. [DebugInfo] Use a common method to determine a suitable form for section offsts (6/19). (details)
  128. [DebugInfo] Fix emitting the DW_AT_location attribute for 64-bit DWARFv3 (7/19). (details)
  129. [DebugInfo] Fix emitting DWARF64 .debug_str_offsets sections (8/19). (details)
  130. [DebugInfo] Fix emitting DWARF64 DWO compilation units and string offset tables (9/19). (details)
  131. [DebugInfo] Fix emitting DWARF64 type units (10/19). (details)
  132. [DebugInfo] Fix emitting DWARF64 .debug_aranges sections (11/19). (details)
  133. [DebugInfo] Fix emitting pre-v5 name lookup tables in the DWARF64 format (12/19). (details)
  134. [DebugInfo] Fix emitting DWARF64 .debug_rnglists sections (13/19). (details)
  135. [DebugInfo] Fix emitting DWARF64 .debug_loclists sections (14/19). (details)
  136. [DebugInfo] Fix emitting DWARF64 .debug_addr sections (15/19). (details)
  137. [DebugInfo] Fix emitting DWARF64 .debug_names sections (16/19). (details)
  138. [DebugInfo] Fix emitting DWARF64 .debug_macro[.dwo] sections (17/19). (details)
  139. [DebugInfo] Make the offset of string pool entries 64-bit (18/19). (details)
  140. [DebugInfo] Make offsets of dwarf units 64-bit (19/19). (details)
  141. [BinaryFormat/MachO] Add a missing constant. (details)
  142. [llvm-readobj] [ARMWinEH] Print ARM64 packed unwind info (details)
  143. [LLD] Allow configuring default ld.lld backend (details)
  144. [Windows][Polly] Disable LLVMPolly module for all compilers on Windows (details)
  145. [NFC][lsan][fuzzer] Relax fuzzer-leak.test (details)
  146. [X86] Pre-commit test cases for D87593 (details)
  147. [NFC][Asan] Don't use MetaData for size (details)
  148. [NFC][Asan] Remove from_memalign and rz_log (details)
  149. Revert "[Sema] Address-space sensitive index check for unbounded arrays" (details)
  150. [NFC][Asan] Reorder bitfields (details)
  151. [Asan] Cleanup kAllocBegMagic setup (details)
  152. [NFC][Asan] Return uptr as before D87646 (details)
  153. [NFC][Asan] Remove chunk pointer from metadata (details)
  154. [SVE] Fix isLoadInvariantInLoop for scalable vectors (details)
  155. [doc] Fix broken link (details)
  156. [DebugInfo] Support both forward and backward slashes in tests (details)
  157. [Support] Make building with snmalloc work (details)
  158. [MVE] Rename of tests making them consistent with tail-predication tests. NFC. (details)
  159. GlobalISel/IRTranslator resetTargetOptions based on function attributes (details)
  160. [lib/Object] - Refine interface of ELFFile<ELFT>. NFCI. (details)
  161. [NFC][DebugInfo] Use consistent regex group spelling (details)
  162. [llvm-readobj/elf] - Simplify and refine the implementation which dumps .stack_sizes (details)
  163. [X86] detectAVGPattern - accept non-pow2 vectors by padding. (details)
  164. [MVE] fix typo in llvm debug message. NFC. (details)
  165. [Transforms][Coroutines] Add missing header path to CMakeLists.txt (details)
  166. [SelectionDAG] Remove unused FP constant in getNegatedExpression (details)
  167. [ARM] Corrected condition in isSaturatingConditional (details)
  168. [X86] Update SSE/AVX integer MINMAX intrinsics to emit llvm.smax.* etc. (PR46851) (details)
  169. Revert "[InstCombine] Simplify select operand based on equality condition" (details)
  170. [mlir][integration_test] Linalg Conv folder renamed to CPU (details)
  171. [mlir] check for failures when packing function sigunatures in std->llvm conversion (details)
  172. Recommit "[ConstraintSystem] Add helpers to deal with linear constraints." (details)
  173. SelectionDAGBuilder.h - remove unnecessary includes. NFCI. (details)
  174. StatepointLowering.cpp - remove unnecessary includes. NFCI. (details)
  175. SpillPlacement.cpp - remove unnecessary includes. NFCI. (details)
  176. Revert "RegAllocFast: Record internal state based on register units" (details)
  177. [lldb/cmake] Fix testing support library dependencies (details)
  178. [lldb] Improve qemu interop for aarch64 (details)
  179. [Scalarizer] Avoid changing name of non-instructions (details)
  180. [ARM][MVE] Tail-predication: use unsigned SCEV ranges for tripcount (details)
  181. AliasSetTracker.cpp - remove unnecessary includes. NFCI. (details)
  182. ProvenanceAnalysis.h - remove unnecessary AliasAnalysis.h include. NFCI. (details)
  183. LoopCacheAnalysis.h - remove unnecessary includes. NFCI. (details)
  184. [libc++] Allow building without threads in standalone builds (details)
  185. Restrict UnnecessaryCopyInitialization check to variables initialized from free functions without arguments (details)
  186. [ConstraintSolver] Add isConditionImplied helper. (details)
  187. [Flang] Add GettingInvolved documentation page and sidebar. (details)
  188. [lld][WebAssembly] Fix --export-all when __stack_pointer is present (details)
  189. [gn build] (semi-manually) port 380e746bcca (details)
  190. [ConstraintElimination] Add initial tests. (details)
  191. [libcxx] Disable failing test for no-exceptions build (details)
  192. [InstCombine] improve test names; NFC (details)
  193. [InstCombine] add RUN to show miscompile of pow expansion; NFC (details)
  194. [InstCombine] fix bug in pow expansion (details)
  195. [gn build] Port a8058c6f8d1 (details)
  196. [gn build] Port cd4edf94cd4 (details)
  197. [mlir][Standard] Add canonicalizer for dynamic_tensor_from_elements (details)
  198. [mlir][openacc] Add missing print of vector_length in parallel op (details)
  199. [Utils] isLegalToPromote - Fix missing null check before writing to FailureReason. (details)
  200. AMDGPUPrintfRuntimeBinding.cpp - drop unnecessary casts/dyn_casts. NFCI. (details)
  201. Revert "[SelectionDAG] Remove unused FP constant in getNegatedExpression" (details)
  202. [LLD][PowerPC] Add support for R_PPC64_TPREL34 used in TLS Local Exec (details)
  203. [libc] Fix typo in platform_defs.h.inc (details)
  204. [libc] Add missing LibcFPTestHelpers library (details)
  205. [libc] Add missing TableGen dependency (details)
  206. [analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite (details)
  207. [llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken. (details)
  208. [analyzer] Add documentation for alpha.fuchsia.Lock and alpha.core.C11Lock (details)
  209. [InstSimplify] add limit folds for fmin/fmax (details)
  210. [libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any (details)
  211. SLPVectorizer.h - remove unnecessary AliasAnalysis.h include. NFCI. (details)
  212. [mlir][openacc] Add loop op verifier (details)
  213. [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist (details)
  214. [XCOFF] Run resource intense test only on platforms where it makes sense (details)
  215. [libc++] Add a benchmark for std::map operations (details)
  216. [MachineBasicBlock] Fix a typo in function copySuccessor (details)
  217. NFC: Add whitespace change to .git-blame-ignore-revs (details)
  218. [X86][AVX] lowerShuffleWithSHUFPS - handle missed canonicalization cases. (details)
  219. [lldb] Add -l/--language option to script command (details)
  220. [VectorCombine] Don't vectorize scalar load under asan/hwasan/memtag/tsan (details)
  221. Revert "[DebugInfo] Remove dots from getFilenameByIndex return value" (details)
  222. Revert "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  223. [MemoryBuffer] Revert unintended MemoryBuffer change from D86996 (details)
  224. Fix bot failure after ccb4124a4172 (details)
  225. [OPENMP]Add support for allocate vars in untied tasks. (details)
  226. [LoopAccessAnalysis][NewPM] Fix tests to work under NPM (details)
  227. [DependenceAnalysis][NewPM] Fix tests to work under NPM (details)
  228. [RegionInfo][NewPM] Fix RegionInfo tests to work under NPM (details)
  229. [NewPM][opt] Fix -globals-aa not being recognized as alias analysis in NPM (details)
  230. [PostDominators][NewPM] Fix tests to work under NPM (details)
  231. [libc++] Add missing friend keyword (details)
  232. [X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info. (details)
  233. [Bugpoint][NewPM] Pin bugpoint to legacy PM (details)
  234. [ConstraintElimination] Add constraint elimination pass. (details)
  235. [gn build] Port 3d42d549554 (details)
  236. Fix .debug_aranges parsing. (details)
  237. [DemandedBits][NewPM] Pin some tests to legacy PM (details)
  238. [Dominators][NewPM] Pin tests with -analyze to legacy PM (details)
  239. [libc++] Fix broken test for std::any and allocators (details)
  240. [ASTMatchers] extract public matchers from const-analysis into own patch (details)
  241. [CodeGen][typeid] Emit typeinfo directly if type is known at compile-time (details)
  242. [PowerPC] Implement __int128 vector divide operations (details)
  243. [AArch64][SVE] Add lowering for llvm fsqrt (details)
  244. [clang] Add a command line flag for the Machine Function Splitter. (details)
  245. InferAddressSpaces: Fix assert with unreachable code (details)
  246. [TableGen] Fix invalid comparison function `SizeOrder` in `getMatchingSubClassWithSubRegs` (details)
  247. Implement __isOSVersionAtLeast for Android (details)
  248. [libc] remove useless headers (details)
  249. [SLPVectorizer][SVE] Skip scalable-vector instructions before vectorizeSimpleInstructions. (details)
  250. [libc] use stddef instead of string header (details)
  251. Sema: add support for `__attribute__((__swift_bridged_typedef__))` (details)
  252. [libc] Remove special case for 8 and 16 bytes (details)
  253. [mlir] Rename 'setInsertionPointAfter' to avoid ambiguity (details)
  254. [OPENMP]Fix codegen for is_device_ptr component, captured by reference. (details)
  255. [OpenMP] Additional Information for Libomptarget Mappings (details)
  256. [TSAN] Handle musttail call properly in EscapeEnumerator (and TSAN) (details)
  257. [AMDGPU] Unify intrinsic ret/nortn interface (details)
  258. GlobalISel: Add combines for G_TRUNC (details)
  259. [SourceManager] Explicitly check for potential iterator underflow (details)
  260. [ThinLTO] add post-thinlto-merge option to -lto-embed-bitcode (details)
  261. [GISel] Add new GISel combiners for G_MUL (details)
  262. [BFI] Make BFI information available through loop passes inside LoopStandardAnalysisResults (details)
  263. [llvm][cmake] Change LLVM_INTEGRATED_CRT_ALLOC to a path instead of a boolean (details)
  264. GlobalISel: Fix a failing combiner test (details)
  265. [CGSCC][NewPM] Fix adding mutually recursive new functions (details)
  266. [AArch64][GlobalISel] Refactor + improve CMN, ADDS, and ADD emit functions (details)
  267. [LICM] Make Loop ICM profile aware again (details)
  268. SVML support for log10, sqrt (details)
  269. [LowerSwitch][NewPM] Port lowerswitch to NPM (details)
  270. [NewPM] Port strip* passes to NPM (details)
  271. [Hexagon] Replace incorrect pattern for vpackl HWI32 -> HVi8 (details)
  272. [PDB] Drop LF_PRECOMP from debugTypes earlier (details)
  273. Fix test after D86156. (details)
  274. [X86] Always use 16-bit displacement in 16-bit mode when there is no base or index register. (details)
  275. [NewPM] Fix 2003-02-19-LoopInfoNestingBug.ll under NPM (details)
  276. [NewPM][SCEV] Fix constant-fold-gep.ll under NPM (details)
  277. [NewPM] Fix opt-hot-cold-split.ll under NPM (details)
  278. Fully qualify some more namespace in MLIR ODS to be more friendly to dialects not defined under the mlir namespace (NFC) (details)
  279. [InstCombine] Add tests for statepoint simplification (details)
  280. [Test] Add signed version of a test (details)
  281. [clang-tidy] Fix crash in modernize-use-noexcept on uninstantiated throw class (details)
  282. [lldb] Reword CompilerType docstring to not say "generic type" (details)
  283. [MLIR][NFC] Value print update for block arguments (details)
  284. libclc: Add a __builtin to let SPIRV targets select between SW and HW FMA (details)
  285. [ThinLTO] Relax thinlto_embed_bitcode.ll check (details)
  286. [X86] Add test case for non-power of 2 scatter. NFC (details)
  287. [X86] Don't scalarize gather/scatters with non-power of 2 element counts. Widen instead. (details)
  288. [MemorySSA] Set MustDominate to true for PhiTranslation. (details)
  289. [llvm-rc] Allow omitting components from VERSIONINFO versions (details)
  290. [llvm-rc] Update a comment. NFC. (details)
  291. [llvm-rc] Lowercase the option definitions. NFC. (details)
  292. [obj2yaml] Add support for dumping the .debug_addr(v5) section. (details)
  293. [MemorySSA] Report unoptimized as None, not MayAlias. (details)
  294. [Test] Some more potential range check elimination opportunities (details)
  295. [flang] Fix docs build (details)
  296. [Test] Add positive range checks tests in addition to negative (details)
  297. Revert "[Asan] Fix false leak report" (details)
  298. Revert "[Asan] Accept __lsan_ignore_object for redzone pointer" (details)
  299. [ARM][MachineOutliner] Add calls handling. (details)
  300. [clangd] Don't use zlib when it's unavailable. (details)
  301. [ARM][LowOverheadLoops] Combine a VCMP and VPST into a VPT (details)
  302. Follow up rG635b87511ec3: forgot to add/commit the new test file. NFC. (details)
  303. [DebugInfo][flang] DISubrange support for fortran assumed size array (details)
  304. [llvm-readobj][test] - Address a forgotten review comment for D86923. (details)
  305. [clangd] Implement hot index reloading for clangd-index-server (details)
  306. [Support] Add GlobPattern::isTrivialMatchAll() (details)
  307. [LLD][ELF] Optimize linker script filename glob pattern matching NFC (details)
  308. [llvm-readobj][test] - Improve section-symbols.test (details)
  309. [ARM][LowOverheadLoops] Fix tests after ef0b9f3 (details)
  310. [clang-tidy] Improve documentation on Clangd integration (details)
  311. [DAG] Remover getOperand() call. NFCI. (details)
  312. Fix table formatting after D87686 (details)
  313. [ARM] Add more validForTailPredication (details)
  314. [ARM] Fix tail predication predicate tracking (details)
  315. [clangd] Actually parse Index section of the YAML file. (details)
  316. [clang-tidy] Crash fix for bugprone-misplaced-pointer-arithmetic-in-alloc (details)
  317. [ASTMatchers] Fix `hasBody` for the descendants of `FunctionDecl` (details)
  318. CGBlocks.cpp - assert non-null CGF pointer. NFCI. (details)
  319. TokenAnnotator.cpp - remove useless pointer null test. NFCI. (details)
  320. [AST] ASTReader::ReadModuleMapFileBlock - assert non-null Module. NFCI. (details)
  321. Update dead links to Itanium and ARM ABIs. NFC (details)
  322. [Sema] isOpenMPCapturedDecl - assert we locate CapturedRegionScopeInfo. NFCI. (details)
  323. [RDA] Fix getUniqueReachingDef for self loops (details)
  324. [SLP] change poorly named variable; NFC (details)
  325. [SLP] move loop index variable declaration to its use; NFC (details)
  326. [SLP] remove redundant size check; NFC (details)
  327. [SLP] remove uses of 'auto' that obscure functionality; NFC (details)
  328. [ARM] Reorder some logic (details)
  329. [clang-format] [NFC] Fix spelling mistake in the documentation (details)
  330. [SLP] fix formatting; NFC (details)
  331. Add section with details about DAGs. (details)
  332. [OPENMP]Do not allow threadprivates as base for array-like reduction. (details)
  333. [DSE] Add another test cases with loop carried dependence. (details)
  334. [mlir] Model StringRef in C API (details)
  335. [Partial Inliner] Compute intrinsic cost through TTI (details)
  336. Enable inlining for Linalg dialect (details)
  337. [mlir][openacc] Add missing operands for acc.parallel operation (details)
  338. [X86][SSE] Move VZEXT_MOVL(INSERT_SUBVECTOR(UNDEF,X,0)) handling into combineTargetShuffle. (details)
  339. [AMDGPU] Add -show-mc-encoding to setreg tests (details)
  340. [AMDGPU] Enable scheduling around FP MODE-setting instructions (details)
  341. [X86] Assert that we've found a terminator instruction. NFCI. (details)
  342. [AMDGPU] Add v3f16/v3i16 support to SDag (details)
  343. AMDGPU: Improve <2 x i24> arguments and return value handling (details)
  344. [NFC][Regalloc] accessors for 'reg' and 'weight' (details)
  345. [X86] EmitInstrWithCustomInserter - remove redundant getDebugLoc() calls. NFCI. (details)
  346. [ASTMatchers] Add missing definition for decompositionDecl (details)
  347. [AMDGPU] Corrected directive to use for ELF weak refs (details)
  348. [NPM] Translate alias analysis into require<> as well (details)
  349. [llvm][CodeGen] Do not scalarize `llvm.masked.[gather|scatter]` operating on scalable vectors. (details)
  350. [AMDGPU] Remove obsolete comment (details)
  351. [ARM][MVE] Tail-predication: predicate new elementcount checks on force-enabled (details)
  352. [Coro][NewPM] Handle llvm.coro.prepare.retcon in NPM coro-split pass (details)
  353. [libfuzzer] Reduce default verbosity when printing large mutation sequences (details)
  354. Do not apply calling conventions to MSVC entry points (details)
  355. LocalStackSlotAllocation: Swap order of check (details)
  356. AMDGPU: Add baseline test for incorrect SP access (details)
  357. AMDGPU: Clear offset register when using local stack area (details)
  358. Include (Type|Symbol)Record.h less (details)
  359. RegAllocFast: Make self loop live-out heuristic more aggressive (details)
  360. [libc++] Ensure streams are initialized early (details)
  361. Re-land: Add new hidden option -print-changed which only reports changes to IR (details)
  362. [llvm-nm] Use aggregate initialization instead of memset zero (details)
  363. [SLP] add tests for reduction ordering; NFC (details)
  364. ValueEnumerator.cpp - remove duplicate includes. NFCI. (details)
  365. InterferenceCache.cpp - remove duplicate includes. NFCI. (details)
  366. raw_ostream.cpp - remove duplicate includes. NFCI. (details)
  367. DwarfUnit.h - remove unnecessary includes. NFCI. (details)
  368. [GISel] Add new combines for unary FP instrs with constant operand (details)
  369. [Sema][MSVC] warn at dynamic_cast/typeid when /GR- is given (details)
  370. [libFuzzer] Enable entropic by default. (details)
  371. Sema: add support for `__attribute__((__swift_bridge__))` (details)
  372. fix test no-rtti.cpp (details)
  373. [clang][codegen] Skip adding default function attributes on intrinsics. (details)
  374. [AArch64][GlobalISel] Make G_BUILD_VECTOR os <16 x s8> legal. (details)
  375. [gn build] make "all" target build (details)
  376. GlobalISel: Lift store value widening restriction (details)
Commit 56b33391d3a42ef8e6fd1bcdcbcbb72bfb562092 by craig.topper
[SelectionDAG] Move ISD:PARITY formation from DAGCombine to SimplifyDemandedBits.

Previously, we formed ISD::PARITY by looking for (and (ctpop X), 1)
but the AND might be separated from the ctpop. For example if the
parity result is multiplied by 2, we'll pull the AND through the
shift.

So to handle more cases, move to SimplifyDemandedBits where we
can handle more cases that result in only the LSB of the CTPOP
being used.
The file was modifiedllvm/test/CodeGen/X86/parity.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
Commit 6e42cadf106ccdc7759dd8af113ecf797220de47 by davelee.com
[docs] Document LLVM_EXTERNALIZE_DEBUGINFO CMake option

Add `LLVM_EXTERNALIZE_DEBUGINFO` to CMake.rst. This should help make dSYM
generation more discoverable.

Differential Revision: https://reviews.llvm.org/D87591
The file was modifiedllvm/docs/CMake.rst (diff)
Commit 88690a965892e82cac05a162a9d10e2ce4e2355f by yrouban
[CodeGenPrepare] Fix zapping dead operands of assume

This patch fixes a problem of the commit 52cc97a0.
A test case is created to demonstrate the crash caused by
the instruction iterator invalidated by the recursive
removal of dead operands of assume. The solution restarts
from the blocks's first instruction in case CurInstIterator
is invalidated by RecursivelyDeleteTriviallyDeadInstructions().

Reviewed By: bkramer

Differential Revision: https://reviews.llvm.org/D87434
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp (diff)
The file was addedllvm/test/Transforms/CodeGenPrepare/X86/recursively-delete-dead-instructions.ll
Commit f1cd6593da3ad763eb3f7aaf7761d06fb303493a by sepavloff
[AST][FPEnv] Keep FP options in trailing storage of CastExpr

This is recommit of 6c8041aa0f, reverted in de044f7562 because of some
fails. Original commit message is below.

This change allow a CastExpr to have optional FPOptionsOverride object,
stored in trailing storage. Of all cast nodes only ImplicitCastExpr,
CStyleCastExpr, CXXFunctionalCastExpr and CXXStaticCastExpr are allowed
to have FPOptions.

Differential Revision: https://reviews.llvm.org/D85960
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprObjC.h (diff)
The file was modifiedclang/lib/Analysis/BodyFarm.cpp (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDecl.cpp (diff)
The file was modifiedclang/include/clang/Basic/LangOptions.h (diff)
The file was modifiedclang/lib/AST/TextNodeDumper.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCast.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp (diff)
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplate.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
The file was modifiedclang/include/clang/AST/Stmt.h (diff)
The file was modifiedclang/lib/CodeGen/CGObjC.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp (diff)
The file was modifiedclang/include/clang/AST/Expr.h (diff)
The file was modifiedclang/lib/Sema/SemaInit.cpp (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp (diff)
The file was modifiedclang/lib/AST/Expr.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp (diff)
The file was modifiedclang/lib/Sema/SemaLambda.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp (diff)
The file was modifiedclang/include/clang/AST/TextNodeDumper.h (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (diff)
Commit 4d7b19454397103620394dcceaf29592ef195231 by i
[llvm-cov gcov] Refactor counting and reporting

The current organization of FileInfo and its referenced utility functions of
(GCOVFile, GCOVFunction, GCOVBlock) is messy. Some members of FileInfo are just
copied from GCOVFile. FileInfo::print (.gcov output and --intermediate output)
is interleaved with branch statistics and computation of line execution counts.
--intermediate has to do redundant .gcov output to gather branch statistics.

This patch deletes lots of code and introduces a clearer work flow:

```
fn collectFunction
  for each block b
    for each line lineNum
      let line be LineInfo of the file on lineNum
      line.exists = 1
      increment function's lines & linesExec if necessary
      increment line.count
      line.blocks.push_back(&b)

fn collectSourceLine
  compute cycle counts
  count = incoming_counts + cycle_counts
  if line.exists
    ++summary->lines
    if line.count
      ++summary->linesExec

fn collectSource
  for each line
    call collectSourceLine

fn main
  for each function
    call collectFunction
    print function summary
  for each source file
    call collectSource
    print file summary
    annotate the source file with line execution counts
  if -i
    print intermediate file
```

The output order of functions and files now follows the original order in
.gcno files.
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h (diff)
The file was modifiedllvm/test/tools/llvm-cov/gcov-fake-4.2.c (diff)
The file was modifiedllvm/test/tools/llvm-cov/llvm-cov.test (diff)
The file was modifiedllvm/lib/ProfileData/GCOV.cpp (diff)
The file was modifiedllvm/tools/llvm-cov/gcov.cpp (diff)
Commit 163863604f9c1ad3add238f9e8fb32cfd136f894 by benicsbalazs
[analyzer] Evaluate PredefinedExpressions

We did not evaluate such expressions, just returned `Unknown` for such cases.
After this patch, we will be able to access a unique value identifying a template instantiation via the value of the `PRETTY_FUNCTION` predefined expression.

Reviewed By: vsavchenko

Differential Revision: https://reviews.llvm.org/D87004
The file was modifiedclang/lib/StaticAnalyzer/Core/SValBuilder.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp (diff)
The file was addedclang/test/Analysis/eval-predefined-exprs.cpp
Commit d7ae9696e31f6484de4ff4c10bca144d7e61320c by benicsbalazs
[analyzer][docs][NFC] Document the ento namespace in the llvm/Lexicon

Document the `ento` namespace in the Lexicon according to @nicolas17 on the
mailing list (http://lists.llvm.org/pipermail/cfe-dev/2020-August/066577.html).

The analyzer lived at different namespaces at different times.
Originally lived at the `GR` aka. (Graph Reachability)  namespace [7], later it
moved under the `ento` namespace [9].

The Static Analyzer's code lived at many other places as well:
`Analysis` -[2]-> `Checker` -[5]-> `GR` -[10]> `entoSA` -[11]-> `StaticAnalyzer`

The relevant code motion, refactor commits, cfe-dev mailing in chronological
order:
1) 2008-03-15 Make a major restructuring of the clang tree: introduce a ...
    7a51313d8a0a358bb92eb5dbf8fd846b7c48e7fe
2) 2010-01-25 Split libAnalysis into two libraries: libAnalysis and libChecker
    d6b8708643219776b1f0f41df32c5eccf065ed5b
3) 2010-12-21 Reorganization of Checker files
    http://lists.llvm.org/pipermail/cfe-dev/2010-December/012694.html
4) 2010-12-22 Refactoring: include/clang/Checker -> include/clang/GR
    8d602a8aa8e6697509465d8a5473fc41cb1a382e
5) 2010-12-22 Refactoring: lib/Checker -> lib/GR
    2ff5ab1516e48c2fff0138f953d887b5e695214b
6) 2010-12-22 Refactoring: Move checkers into lib/GR/Checkers and their own
    a700e976b658860418bc145ec0bdacd4f1db3264
7) 2010-12-22 Refactoring: Move stuff into namespace 'GR'
    ca08fba4141f1d3ae6193b3c81fb6ba8fb10d7dc
8) 2010-12-22 Refactoring: Drop the 'GR' prefix.
    1696f508e2fe95793ca8bb70d78b88023b6b8625
9) 2010-12-23 Rename static analyzer namespace 'GR' to 'ento'
    98857c986078c6e6a10910628dbabf75ae735b76
10) 2010-12-23 Rename headers: 'clang/GR' 'clang/EntoSA' and update Makefile
    ef33f0996c6a625767690395f3cfb41afb84db5a
11) 2010-12-23 Chris Lattner has strong opinions about directory
    d99bd55a5e092774214ba31fc5a871bfc31e711c
12) 2010-12-24 Remove the EntoSA directories.
    9d6af5328e3a61641a125b17125952fa1a6bf11d

Reviewed By: Szelethus,martong,ASDenysPetrov,xazax.hun

Differential Revision: https://reviews.llvm.org/D86446
The file was modifiedllvm/docs/Lexicon.rst (diff)
Commit cdacffe4acc083dfb1cccb6458420eed09f9d093 by benicsbalazs
[analyzer][z3] Use more elaborate Z3 variable names

Previously, it was a tedious task to comprehend Z3 dumps.
We will use the same name prefix just as we use in the corresponding dump method

For all `SymbolData` values:
    `$###` -> `conj_$###`
    `$###` -> `derived_$###`
    `$###` -> `extent_$###`
    `$###` -> `meta_$###`
    `$###` -> `reg_$###`

Reviewed By: xazax.hun,mikhail.ramalho

Differential Revision: https://reviews.llvm.org/D86223
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h (diff)
The file was addedclang/test/Analysis/z3/pretty-dump.c
Commit 15bff4dec4360985a6a058a7e42a4ffd590dc665 by david.sherwood
[CodeGen] Fix bug in IncrementPointer

In an earlier patch I meant to add the correct flags to the ADD
node when incrementing the pointer, but forgot to pass them to
SelectionDAG::getNode.

Differential Revision: https://reviews.llvm.org/D87496
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)
Commit 4946802c5f406b050cbb1524d0fd03cf3fd7b0dc by simon.wallis2
[ARM] Fix so immediates and pc relative checks

Treating an SoImm offset as a multiple of 4 between -1020 and 1020
mis-handles the second of a pair of 16-bit constants where the offset is a multiple of 2 but not a multiple of 4,
leading to an LLVM ERROR: out of range pc-relative fixup value

For 32-bit and larger (64-bit) constants, continue to treat an SoImm offset as a multiple of 4 between -1020 and 1020.
For smaller (16-bit) constants, treat an SoImm offset as a multiple of 1 between -255 and 255.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D86949
The file was modifiedllvm/lib/Target/ARM/ARMConstantIslandPass.cpp (diff)
The file was addedllvm/test/CodeGen/ARM/constant-island-SOImm-limit16.mir
Commit 9a4476072e152881e00179bef2c6da9fea9b274e by jay.foad
[UnifyLoopExits] Fix non-deterministic iteration order

This was causing random minor codegen differences in shaders compiled
with the AMDGPU backend.

Differential Revision: https://reviews.llvm.org/D87548
The file was modifiedllvm/lib/Transforms/Utils/UnifyLoopExits.cpp (diff)
Commit 0008fb343704bafc3469703be930b8a65d7c47fa by n54
[compiler-rt] [netbsd] Use internal_ptrace() instead of ptrace()
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp (diff)
Commit bfcb824ba5287f96c5b9f1009d10af37b7eb9519 by david.stenberg
[JumpThreading] Fix an incorrect Modified status

This fixes PR47297.

When ProcessBlock() was able to constant fold the terminator's
condition, but not do any more transformations, the function would
return false, which would lead to the JumpThreading pass returning an
incorrect modified status. This patch makes so that ProcessBlock()
returns true in such cases. This will trigger an unnecessary invocation
of ProcessBlock() in such cases, but this should be rare to occur.

This was caught using the check introduced by D80916.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87392
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp (diff)
The file was addedllvm/test/Transforms/JumpThreading/constant-fold-status.ll
Commit 09b8871f8d81ce2777afe836604f392a2af9e620 by petar.avramovic
AMDGPU/GlobalISel/Emitter Support for predicate code that uses operands

Predicates with 'let PredicateCodeUsesOperands = 1' want to examine
matched operands. When we encounter predicate code that uses operands,
analyze its named operand arguments and create a map between argument
index and name. Later, when leaf node with name is encountered, emit
GIM_RecordNamedOperand that will store that operand at its argument
index in operand list. This operand list will be an argument to c++
code of the predicate.

Differential Revision: https://reviews.llvm.org/D87285
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td (diff)
The file was modifiedllvm/test/TableGen/GlobalISelEmitterCustomPredicate.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/add_shl.ll
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp (diff)
The file was modifiedllvm/test/TableGen/GlobalISelEmitter.td (diff)
Commit 30667c967d3f420d3f53fb1c9c2465550a1112df by sam.mccall
[clangd] Add error() function for creating formatv-style llvm::Errors. NFC

Summary:
This is considerably terser than the makeStringError and friends, and
avoids verbosity cliffs that discourage adding log information.

It follows the syntax used in log/elog/vlog/dlog that have been successful.

The main caveats are:
- it's strictly out-of-place in logger.h, though kind of fits thematically and
   in implementation
- it claims the "error" identifier, which seems a bit too opinionated
   to put higher up in llvm

I've updated some users of StringError mostly at random - there are lots
more mechanical changes but I'd like to get this reviewed before making
them all.

Reviewers: kbobyrev, hokein

Subscribers: mgorny, ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83419
The file was modifiedclang-tools-extra/clangd/support/Logger.cpp (diff)
The file was modifiedclang-tools-extra/clangd/DraftStore.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp (diff)
The file was addedclang-tools-extra/clangd/unittests/LoggerTests.cpp
The file was modifiedclang-tools-extra/clangd/CodeComplete.cpp (diff)
The file was modifiedclang-tools-extra/clangd/RIFF.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt (diff)
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/index/Serialization.cpp (diff)
The file was modifiedclang-tools-extra/clangd/PathMapping.cpp (diff)
The file was modifiedclang-tools-extra/clangd/JSONTransport.cpp (diff)
The file was modifiedclang-tools-extra/clangd/support/Logger.h (diff)
Commit 119e57be76266bf524a4e3b45e01dd8c2c1e9d35 by llvmgnsyncbot
[gn build] Port 30667c967d3
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn (diff)
Commit d3af441dfeb69d4c2a91b427e3d7a57e04c59201 by jeremy.morse
[DebugInstrRef][1/9] Add fields for instr-ref variable locations

Add a DBG_INSTR_REF instruction and a "debug instruction number" field to
MachineInstr. The two allow variable values to be specified by
identifying where the value is computed, rather than the register it lies
in, like so:

  %0 = fooinst, debug-instr-number 1
  [...]
  DBG_INSTR_REF 1, 0

See the original RFC for motivation:
http://lists.llvm.org/pipermail/llvm-dev/2020-February/139440.html

This patch is NFCI; it only adds fields and other boiler plate.

Differential Revision: https://reviews.llvm.org/D85741
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/MachineInstr.h (diff)
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was modifiedllvm/include/llvm/Target/Target.td (diff)
Commit 574dd60547179a2c143ac14cdd6f5f5a40156d54 by kadircet
[clangd] Track tweaks that fail the apply stage

Differential Revision: https://reviews.llvm.org/D87501
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp (diff)
Commit 4232bccfb461fb9bc1ca83f0cbbda2b11f92bda8 by llvm-dev
[CodeGen][X86] Regenerate minmax reduction sequence tests to match arithmetic tests.

avx512-reduceIntrin.c wasn't bothering with the exhaustive alloca/store/load/bitcast checks and avx512-reduceMinMaxIntrin.c shouldn't need to either.

This makes it a lot easier to maintain as the update script still doesn't work properly on x86 targets
The file was modifiedclang/test/CodeGen/X86/avx512-reduceMinMaxIntrin.c (diff)
Commit 687e1d7121645d23aa5e919ed4d3c0e57af975cd by sam.mccall
[clangd] makeStringError,make_error<StringError> -> error()
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/RemoveUsingNamespace.cpp (diff)
The file was modifiedclang-tools-extra/clangd/SourceCode.cpp (diff)
The file was modifiedclang-tools-extra/clangd/index/SymbolID.cpp (diff)
The file was modifiedclang-tools-extra/clangd/xpc/XPCTransport.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
The file was modifiedclang-tools-extra/clangd/IncludeFixer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/JSONTransport.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp (diff)
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp (diff)
The file was modifiedclang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/SwapIfBranches.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp (diff)
The file was modifiedclang-tools-extra/clangd/index/YAMLSerialization.cpp (diff)
The file was modifiedclang-tools-extra/clangd/index/Background.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/Tweak.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ObjCLocalizeStringLiteral.cpp (diff)
The file was modifiedclang-tools-extra/clangd/FindSymbols.cpp (diff)
The file was modifiedclang-tools-extra/clangd/URI.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExpandAutoType.cpp (diff)
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/AddUsing.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/TestFS.cpp (diff)
Commit 00e5676cf64740daf99b694d1ac968be141b655f by llvm-dev
[LegalizeDAG] Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFCI.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
Commit 0c8f4cd657346fcb25e99a3d2c93a7a12080d667 by petar.avramovic
AMDGPU/GlobalISel Add test for non-leaf complex patterns

GlobalIsel emitter does not import patterns where complex sub-operand
of a non-leaf complex pattern is referenced more then once. Multiple
references of complex patterns with same name and same sub-operands
represent the same operand. Document this with a test.
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir
Commit 416346d1ca503262983c954ddc861ff4f91347a3 by petar.avramovic
AMDGPU/GlobalISel/Emitter Recognize additional 'same operand checks'

The "name" of a non-leaf complex pattern (MY_PAT $op1, $op2) is
"MY_PAT:op1:op2" and the ones with same "name" represent same operand.
Add 'same operand check' for this case.

Differential Revision: https://reviews.llvm.org/D87351
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir (diff)
The file was modifiedllvm/test/TableGen/GlobalISelEmitterSkippedPatterns.td (diff)
The file was modifiedllvm/test/TableGen/GlobalISelEmitter.td (diff)
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp (diff)
Commit 6e2a86ed5abfdb75ba9c08ea94ed8dbd41e75c9e by petar.avramovic
AMDGPU/GlobalISel Check for NoNaNsFPMath in isKnownNeverSNaN

Check for NoNaNsFPMath function attribute in isKnownNeverSNaN.
Function attributes are in held in 'TargetMachine.Options'.
Among other things, this allows selection of some patterns imported
in D87351 since G_FCANONICALIZE is not generated when isKnownNeverSNaN
returns true in lowerFMinNumMaxNum.

However we notice some incorrect results since function attributes are
not correctly written in TargetMachine.Options when next function is
processed. Take a look at @v_test_no_global_nnans_med3_f32_pat0_srcmod0,
it has "no-nans-fp-math"="false" but TargetMachine.Options still has it
set to true since first function in test file had this attribute set to
true. This will be fixed in D87511.

Differential Revision: https://reviews.llvm.org/D87456
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
Commit 816663adb5f1362597c9b2947586e0847c5cdf9b by david.sherwood
[SVE] In LoopIdiomRecognize::isLegalStore bail out for scalable vectors

The function LoopIdiomRecognize::isLegalStore looks for stores in loops
that could be transformed into memset or memcpy. However, the algorithm
currently requires that we know how big the store is at runtime, i.e.
that the store size will not overflow an unsigned integer. For scalable
vectors we cannot guarantee this so I have changed the code to bail out
for now. In addition, even if we add a way to query the maximum value of
vscale in future we will still need to update the algorithm to cope with
non-constant strides. The additional cost associated with calculating
the memset and memcpy arguments will need to be taken into account as
well.

This patch also fixes up an implicit TypeSize -> uint64_t cast,
thereby removing a warning. I've added tests here showing a fixed
width vector loop being transformed into memcpy, and a scalable
vector loop remaining unchanged:

  Transforms/LoopIdiom/memcpy-vectors.ll

Differential Revision: https://reviews.llvm.org/D87439
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (diff)
The file was addedllvm/test/Transforms/LoopIdiom/memcpy-vectors.ll
Commit 676febc044ecbb27f8a227d351ced282cfe908cf by sjoerd.meijer
[ARM][MVE] Tail-predication: check get.active.lane.mask's TC value

This adds additional checks for the original scalar loop tripcount value, i.e.
get.active.lane.mask second argument, and perform several sanity checks to see
if it is of the form that we expect similarly like we already do for the IV
which is the first argument of get.active.lane.

Differential Revision: https://reviews.llvm.org/D86074
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-const.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/basic-tail-pred.ll (diff)
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp (diff)
Commit 12232dc181cbe78fbd40a6ed1a89795a2c9a1154 by ecaldas
[SyntaxTree][List] Fix: `ParameterDeclarationList` is the `List` inside `ParametersAndQualifiers`

Differential Revision: https://reviews.llvm.org/D87598
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
Commit 0f4cc64fd747fbb33aeccfaccb8873762d2511f2 by ecaldas
[SyntaxTree] Provide `List::classof`

Differential Revision: https://reviews.llvm.org/D87599
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
Commit ceb0128509c51100afbf804bda84d82b7ebe06b1 by ecaldas
[SyntaxTree][List] `assertInvariants` for `List`s

Differential Revision: https://reviews.llvm.org/D87600
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
Commit dd519bf0b074cfee2879036ec9b55452e53c9d99 by meera.nakrani
[ARM] Selects SSAT/USAT from correct LLVM IR

LLVM will canonicalize conditional selectors to a different pattern than the old code that was used.
This is updating the function to match the new expected patterns and select SSAT or USAT when successful.
Tests have also been updated to use the new patterns.

Differential Review: https://reviews.llvm.org/D87379
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/ARM/usat.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/ssat.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-satmul-loops.ll (diff)
Commit eef30334d1daaddf8b4e465be7c0f4aa4f98e208 by flo
[DSE] Precommit test case for invalid elimination of store in loop.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll (diff)
Commit f715d81c9df3fb3e047a54899fc749f57c84aeb5 by flo
[DSE] Only eliminate candidates that always store the same loc.

AliasAnalysis/MemoryLocation does not account for loops. Two
MemoryLocation can be must-overwrite, even if the first one writes
multiple locations in a loop.

This patch prevents removing such stores, by only considering candidates
that are known to be loop invariant, or executed in the same BB.

Currently the invariant check is quite conservative and only considers
Alloca and Alloca-like instructions and arguments as invariant base pointers.
It also considers GEPs with all constant indices and invariant bases as
invariant.

This can be improved in the future, but the current implementation has
only minor impact on the total number of stores eliminated (25903 vs
26047 for the baseline). There are some 2-10% swings for some individual
benchmarks. In roughly half of the cases, the number of stores removed
increases actually, because we skip candidates that are unlikely to be
valid candidates early.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll (diff)
Commit 06fb4e90649f264a129d3ad2a08fd3492ee78651 by david.green
[CGP] Limit converting phi types to simple loads and stores

Instcombine limits converting phi types to simple loads and stores. This
does the same in codegenprepare, not processing phis that are not
simple.

Note that volatile loads/store ISel will happily convert between float
and int. Atomics are more likely to always be integer. This just keeps
things simple and doesn't process either.

Differential Revision: https://reviews.llvm.org/D83770
The file was modifiedllvm/test/CodeGen/AArch64/convertphitype.ll (diff)
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp (diff)
Commit 5cac85c931d95f3c94f79837a3bf406eb68edaeb by zinenko
[mlir] Check for type conversion success in std->llvm function conversion

Type converter may fail and return nullptr on unconvertible types. The function
conversion did not include a check and was attempting to use a nullptr type to
construct an LLVM function, leading to a crash. Add a check and return early.
The rest of the call stack propagates errors properly.

Fixes PR47403.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D87075
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
The file was modifiedmlir/test/Conversion/StandardToLLVM/invalid.mlir (diff)
Commit 0b2e0e80d963f3498705a38e8d02eafe541ca9d6 by mikhail.dvorskiy
[pstl] Support Threading Building Blocks 2020 (oneTBB) for "tbb" parallel backend.

After the changes the "tbb" parallel backend will work with old TBB versions(TBB_INTERFACE_VERSION <= 12000) and new ones (TBB 2020 and greater)

More about oneTBB:
https://github.com/oneapi-src/oneTBB

Phabricator Review:
https://reviews.llvm.org/D87380
The file was modifiedpstl/include/pstl/internal/parallel_backend_tbb.h (diff)
Commit f4eb94e1db88cd5ea2ffac502c9d788eedb1e547 by grimar
[llvm-readobj/elf][test] - Test all core note types properly.

Currently we don't test all core note types that are defined in
`getCoreNoteTypeName` in ELFDumper.cpp.

Also we don't have a test for an unknown core note type.

This patch fixes it.

Differential revision: https://reviews.llvm.org/D87453
The file was modifiedllvm/test/tools/llvm-readobj/ELF/note-core.test (diff)
Commit e9c314611bc97dc0d5d4ba384b8d5321f3728b16 by grimar
[llvm-readelf/obj] - Refine and generalize the code that is used to dump notes.

There is some code that can be shared between GNU/LLVM styles.
Also, this fixes 2 inconsistencies related to dumping unknown note types:
1) For GNU style we printed "Unknown note type: (0x00000003)" in some cases, and
   "Unknown note type (0x00000003)" (no colon) in other cases.
   GNU readelf always prints `:`. This patch removes the related code
   duplication and does the same.
2) For LLVM style in some cases we printed "Unknown note type (0x00000003)",
   but sometimes just "Unknown (0x00000003)". The latter is the right form, which
   is consistent with other unknowns that are printed in LLVM style.

Rebased on top of D87453.

Differential revision: https://reviews.llvm.org/D87454
The file was modifiedllvm/test/tools/llvm-readobj/ELF/note-freebsd.s (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-notes.ll (diff)
Commit 412b417bfa79d54ebea1ae8bd0fd359044a133f4 by mkazantsev
[NFC] Add missing `const` statements in SCEV
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)
Commit 14e191a0e7c54d40327c2367b00261ac4856f4b5 by grimar
[llvm-readobj] - Cleanup implementation LLVMStyle<ELFT>::printAddrsig().

It has following issues:
1) `getStaticSymbolName` returns `std::string`, but the code
   assigns a result to `Expected<std::string>`.
2) The code uses `unwrapOrError` and never tests the error reported.

This patch fixes these issues.

Differential revision: https://reviews.llvm.org/D87507
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/addrsig.test (diff)
Commit 7448e64a790bfed10a04a550c14b91429cda07e0 by grimar
[llvm-readobj/elf] - Don't use unwrapOrError when reporting errors about SHT_DYNAMIC sections.

This changes messages reported to stop using dynamic section names (use `describe()` instead).
This allows to avoid `unwrapOrError` and improves diagnostics.

Differential revision: https://reviews.llvm.org/D87503
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-not-in-pt-dynamic.test (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/non-dynamic-in-pt-dynamic.test (diff)
Commit 7109fc9e42e6b9a56497dcc6a25228d818af4f38 by llvm-dev
Don't dereference from a dyn_cast<>. NFCI.

Use cast<> instead which will assert if it fails and not just return null.

Fixes clang static analyzer warning.
The file was modifiedllvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp (diff)
Commit 98eaacd73d40eb28d5fa86bc3cfc9371581ee0cb by llvm-dev
Assert we've found both vector types. NFCI.

Fixes clang static analyzer warning about potential null dereferences.
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp (diff)
Commit c799f873cb9feaea265aa3df8f3372949f8263d0 by jay.foad
[AMDGPU] Don't cluster stores

Clustering loads has caching benefits, but as far as I know there is no
advantage to clustering stores on any AMDGPU subtargets.

The disadvantage is that it tends to increase register pressure and
restricts scheduling freedom.

Differential Revision: https://reviews.llvm.org/D85530
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.global.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/merge-stores.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fshr.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/memory_clause.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/non-entry-alloca.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/store-local.96.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/local-memory.amdgcn.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/store-local.128.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/store-weird-sizes.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/token-factor-inline-limit-test.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/cluster_stores.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/half.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.private.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll (diff)
Commit 7bb9a2f996a33fde689fc0b7603fce0115fb92b4 by spatel
[InstSimplify] fix miscompiles with maximum/minimum intrinsics

As discussed in the sibling codegen functionality patch D87571,
this transform was created with D52766, but it is not correct.

The incorrect test diffs were missed during review, but the
'TODO' comment about this functionality was still in the code -
we need 'nnan' to enable this fold.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll (diff)
Commit 08baa979235ab98cf13497dde813ab8ae58b11cb by david.green
[ARM] Enable tail predication for reduction tests. NFC
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll (diff)
Commit 9868ea764f31b0fd4ec250867807aa0ad7958abf by jasonliu
[XCOFF][AIX] Handle TOC entries that could not be reached by positive range in small code model

Summary:
In small code model, AIX assembler could not deal with labels that
could not be reached within the [-0x8000, 0x8000) range from TOC base.
So when generating the assembly, we would need to help the assembler
by subtracting an offset from the label to keep the actual value
within [-0x8000, 0x8000).

Reviewed By: hubert.reinterpretcast, Xiangling_L

Differential Revision: https://reviews.llvm.org/D86879
The file was addedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py
The file was modifiedllvm/test/CodeGen/PowerPC/lit.local.cfg (diff)
The file was modifiedllvm/lib/MC/XCOFFObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp (diff)
Commit 5df9cb5bc71fc880a05ff7a1a2af727c7ce3cab3 by spatel
[InstSimplify] fix test comments; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll (diff)
Commit dae68fdf9ece930ad158e15966cb99a15636e8c7 by spatel
[InstSimplify] add/move tests for fmin/fmax; NFC

The new tests are duplicated from the sibling patch for codegen:
D87571
The file was addedllvm/test/Transforms/InstSimplify/fminmax-folds.ll
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll (diff)
Commit 22c583c3d03a6750d6474ad46e5d52eb9974e2b0 by spatel
[InstSimplify] reduce code duplication for fmin/fmax folds; NFC

We use the same code structure for folding integer min/max.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
Commit ef7a255c037ca462f71ddd3d2b5a46310b08f6eb by Lubomir.Litchev
Add support for casting elements in vectors for certain Std dialect type conversion operations.

Added support to the Std dialect cast operations to do casts in vector types when feasible.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D87410
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir (diff)
Commit 71a16e40f78adee12663816edf6635b96dca09dc by Louis Dionne
[libcxx] ostream{,buf}_iterator::difference_type changes in C++20

In C++20, since P0896R4, std::ostream_iterator and std::ostreambuf_iterator
must have std::ptrdiff_t instead of void as a difference_type.

Tests by Casey Carter (thanks!).

Differential Revision: https://reviews.llvm.org/D87459
The file was modifiedlibcxx/include/iterator (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp (diff)
Commit 3b7708e2deb48befcef764fb69f9217f55ac1155 by llvm-dev
Assert we've found the size of each (non-overlapping) structure. NFCI.

Fixes clang static analyzer warning.
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp (diff)
Commit f07f3c72375b872bfb988f7531d4e0485233ade1 by flo
[MemorySSA] Precommit test case for PR47498.
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll (diff)
Commit c4f1b3144184e4c276a7e7c801cbcd4ac3c573ba by flo
[MemorySSA] Make sure PerformedPhiTrans is updated for each visited def.

1ce82015f6d0 added a fix to restrict phi optimizations after phi
translations. But the current use of performedPhiTranslation only
checked whether phi translation happened for the first iterator and
missed cases where phi translations happens at subsequent
iterators/upwards defs.

This patch changes upward_defs_iteartor to take a pointer to a bool, so
we can easily ensure the final value includes all visited defs, while
still being able to conveniently use it with make_range & co.
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/MemorySSA.h (diff)
The file was modifiedllvm/lib/Analysis/MemorySSA.cpp (diff)
Commit 7526376164801cc758c94217931ab025bc226b0e by spatel
[InstSimplify] allow folds for fmin/fmax with 'ninf'

maxnum(ninf X, +FLT_MAX) --> +FLT_MAX
minnum(ninf X, -FLT_MAX) --> -FLT_MAX

This is based on the similar codegen transform proposed in:
D87571
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll (diff)
Commit 916b43403588a85425bbc82712427cf53ed877cc by Saleem Abdulrasool
Sema: add support for `__attribute__((__swift_objc_members__))`

This adds the `__swift_objc_members__` attribute to the semantic
analysis.  It allows for annotating ObjC interfaces to provide Swift
semantics indicating that the types derived from this interface will be
back-bridged to Objective-C to allow interoperability with Objective-C
and Swift.

This is based on the work of the original changes in
https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c

Differential Revision: https://reviews.llvm.org/D87395
Reviewed By: Aaron Ballman, Dmitri Gribenko
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test (diff)
The file was modifiedclang/include/clang/Basic/Attr.td (diff)
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp (diff)
The file was addedclang/test/SemaObjC/attr-swift_objc_members.m
Commit 55d371abd7f470496f45d960c29bb66da0e81aee by spatel
[InstSimplify] add folds for fmin/fmax with 'nnan'

maximum(nnan X, +INF) --> +INF
minimum(nnan X, -INF) --> -INF

This is based on the similar codegen transform proposed in:
D87571
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll (diff)
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
Commit ed0abc8ad3f3be99f40c25238ec42065a8ba077f by tkeith
[flang] Correctly detect overlapping integer cases

Integer case values were being compared as unsigned by operator<
on evaluate::value::Integer. Change that to signed so that overlap
can be detected correctly.

Explicit CompareUnsigned and BLT are still available if unsigned
comparison is needed.

Fixes https://bugs.llvm.org/show_bug.cgi?id=47309

Differential Revision: https://reviews.llvm.org/D87595
The file was modifiedflang/include/flang/Evaluate/integer.h (diff)
The file was modifiedflang/test/Semantics/case01.f90 (diff)
Commit c92d1aa44b132597d57523a90342b3e620dbdb1e by gyurgyikcp
[libc] Decouple string functions.

This revision removes dependencies that exist between different string functions. This allows for the libc user to use a specific function X of this library without also depending on Y and Z.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D87421
The file was modifiedlibc/src/string/strlen.cpp (diff)
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
The file was modifiedlibc/src/string/strcat.cpp (diff)
The file was modifiedlibc/src/string/string_utils.h (diff)
The file was modifiedlibc/src/string/strnlen.cpp (diff)
The file was modifiedlibc/src/string/memchr.cpp (diff)
The file was modifiedlibc/src/string/strcpy.cpp (diff)
Commit 94921e9f8ad04793638e02a6104f63e06ae62b9e by i
[ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors

Prefer `errorOrWarn` to `fatal` for recoverable errors and graceful degradation
when --noinhibit-exec is specified.

Mention the destination symbol, otherwise the diagnostic is not really actionable.
Two errors are not tested but the patch does not intend to add the coverage.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D87486
The file was modifiedlld/ELF/Thunks.cpp (diff)
The file was modifiedlld/test/ELF/ppc64-toc-call-to-pcrel-long-jump.s (diff)
The file was modifiedlld/ELF/Relocations.cpp (diff)
The file was modifiedlld/ELF/Target.h (diff)
Commit ce6dd973ac556a326c38bd7667b4fb448f215d09 by tkeith
[flang] Fix analyzed form of type-bound assignment

Change the analyzed form of type-bound assignment to match that of call
statements. Resolve the binding name to a specific subprogram when
possible by using `GetBindingResolution`. Otherwise leave it as a
type-bound procedure call.

Differential Revision: https://reviews.llvm.org/D87541
The file was addedflang/test/Semantics/defined-ops.f90
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
Commit 7841e21c98495ba5e33e0d2507d985bd5b938445 by rahmanl
Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols.

This patch introduces the new .bb_addr_map section feature which allows us to emit the bits needed for mapping binary profiles to basic blocks into a separate section.
The format of the emitted data is represented as follows. It includes a header for every function:

|  Address of the function                      |  -> 8 bytes (pointer size)
|  Number of basic blocks in this function (>0) |  -> ULEB128

The header is followed by a BB record for every basic block. These records are ordered in the same order as MachineBasicBlocks are placed in the function. Each BB Info is structured as follows:

|  Offset of the basic block relative to function begin |  -> ULEB128
|  Binary size of the basic block                       |  -> ULEB128
|  BB metadata                                          |  -> ULEB128  [ MBB.isReturn() OR MBB.hasTailCall() << 1  OR  MBB.isEHPad() << 2 ]

The new feature will replace the existing "BB labels" functionality with -basic-block-sections=labels.
The .bb_addr_map section scrubs the specially-encoded BB symbols from the binary and makes it friendly to profilers and debuggers.
Furthermore, the new feature reduces the binary size overhead from 70% bloat to only 12%.

For more information and results please refer to the RFC: https://lists.llvm.org/pipermail/llvm-dev/2020-July/143512.html

Reviewed By: MaskRay, snehasish

Differential Revision: https://reviews.llvm.org/D85408
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp (diff)
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was addedllvm/test/CodeGen/X86/basic-block-sections-labels-functions-sections.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h (diff)
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp (diff)
The file was modifiedllvm/include/llvm/MC/MCObjectFileInfo.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h (diff)
The file was modifiedclang/docs/UsersManual.rst (diff)
The file was modifiedclang/test/CodeGen/basic-block-sections.c (diff)
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-labels.ll (diff)
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp (diff)
Commit 4ff4708d39b790bf7231ad0fa4e7cfddb4e26f95 by llvm-dev
collectBitParts - use const references. NFCI.

Fixes clang-tidy warnings first noticed on D87452.
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp (diff)
Commit 132e57bc597bd3f50174b7d286c43f76b47f11c1 by walter erquinigo
Retry of D84974

- Fix a small issue caused by a conflicting name (GetObject) on Windows.
  The fix was to rename the internal GetObject function to
  GetNextFunction.
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/main.c
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/Makefile
The file was modifiedlldb/tools/lldb-vscode/VSCode.h (diff)
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.cpp (diff)
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
The file was modifiedlldb/tools/lldb-vscode/package.json (diff)
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py (diff)
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.h (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py (diff)
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp (diff)
Commit 7235326fb2342227d478d63378d2ba4d5e2418db by Louis Dionne
[libc++] Upgrade the Clang on build bots
The file was modifiedlibcxx/utils/docker/debian9/buildbot/Dockerfile (diff)
The file was modifiedlibcxx/utils/docker/debian9/buildbot/docker-compose.yml (diff)
Commit a3bc0401d436d8c7d2dd5b54e13b81333d53bdff by walter erquinigo
Fix 132e57bc597bd3f50174b7d286c43f76b47f11c1

Compile error found in
http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/17403/steps/build/logs/stdio

Simple fix
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
Commit 8e69c3cde8eed94be226bdef1ff6cedda3a33bc4 by nikita.ppv
[DAGCombiner] Fold fmin/fmax with INF / FLT_MAX

Similar to D87415, this folds the various float min/max opcodes
with a constant INF or -INF operand, or FLT_MAX / -FLT_MAX operand
if the ninf flag is set. Some of the folds are only possible under
nnan.

The fminnum(X, INF) with nnan and fmaxnum(X, -INF) with nnan cases
are needed to improve the VECREDUCE_FMIN/FMAX lowerings on X86,
the rest is here for the sake of completeness.

Differential Revision: https://reviews.llvm.org/D87571
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll (diff)
Commit cfff88c03cf9e9b72906a41fd11e06721d54f293 by nikita.ppv
[InstCombine] Simplify select operand based on equality condition

For selects of the type X == Y ? A : B, check if we can simplify A
by using the X == Y equality and replace the operand if that's
possible. We already try to do this in InstSimplify, but will only
fold if the result of the simplification is the same as B, in which
case the select can be dropped entirely. Here the select will be
retained, just one operand simplified.

As we are performing an actual replacement here, we don't have
problems with refinement / poison values.

Differential Revision: https://reviews.llvm.org/D87480
The file was modifiedllvm/test/Transforms/InstCombine/select.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll (diff)
Commit da17e0d5c1dfabcba887e323b1aabc8cc4342cd6 by epastor
[ms] [llvm-ml] Add missing built-in type aliases

Add signed aliases for integral types, as well as the "DF" abbreviation for the FWORD type.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D87246
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp (diff)
The file was addedllvm/test/tools/llvm-ml/builtin_types.test
Commit 7c44ee8e1937c7402a106f3fa6a356caa73a14e8 by epastor
[ms] [llvm-ml] Fix struct padding logic

MASM structs are end-padded to have size a multiple of the smaller of the requested alignment and the size of their largest field (taken recursively, if they have a field of STRUCT type).

This matches the behavior of ml.exe and ml64.exe. Our original implementation followed the MASM 6.0 documentation, which instead specified that MASM structs were padded to a multiple of their requested alignment.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D87248
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp (diff)
The file was addedllvm/test/tools/llvm-ml/struct_alignment.test
Commit 20201dc76aaf68eb940eb14bfc6dd4983292fb79 by epastor
[ms] [llvm-ml] Add support for size queries in MASM

Add support for size inference, sizeof, typeof, and lengthof.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86947
The file was modifiedllvm/include/llvm/MC/MCParser/MCTargetAsmParser.h (diff)
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (diff)
The file was addedllvm/test/tools/llvm-ml/size_inference.test
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp (diff)
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp (diff)
The file was addedllvm/test/tools/llvm-ml/type_operators.test
The file was modifiedllvm/test/tools/llvm-ml/struct.test (diff)
The file was modifiedllvm/include/llvm/MC/MCParser/MCAsmParser.h (diff)
Commit 23a2b03221c5664fefc658c3eb26e7b6ecd1a1e8 by epastor
[ms] [llvm-ml] Add basic support for SEH, including PROC FRAME

Add basic support for SEH, including PROC FRAME

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86948
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp (diff)
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp (diff)
The file was addedllvm/test/tools/llvm-ml/proc.test
The file was addedllvm/test/tools/llvm-ml/proc_frame.test
The file was modifiedllvm/lib/MC/MCParser/COFFMasmParser.cpp (diff)
Commit c0e3996bc7087a27e685c734480c0b92ff427d37 by nikita.ppv
[ARM] Add more tests for vecreduce soft float legalization (NFC)

This mirrors the existing fadd tests to fmul, fmin and fmax.
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
Commit 53f36f06afbc02d1ab96e3789b41ddeafe31f40e by nikita.ppv
[Legalize][ARM][X86] Add float legalization for VECREDUCE

This adds SoftenFloatRes, PromoteFloatRes and SoftPromoteHalfRes
legalizations for VECREDUCE, to fill the remaining hole in the SDAG
legalization. These legalizations simply expand the reduction and
let it be recursively legalized. For the PromoteFloatRes case at
least it is possible to do better than that, but it's pretty tricky
(because we need to consider the interaction of three different
vector legalizations and the type promotion) and probably not
really worthwhile.

I haven't added ExpandFloatRes support, as I am not familiar with
ppc_fp128.

Differential Revision: https://reviews.llvm.org/D87569
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (diff)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h (diff)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll (diff)
Commit abf1c82dcc5c54f2bbd65eb7b30cc40de2bd7147 by lntue
[libc] Extend MPFRMatcher to handle 2-input-1-output and support hypot function.

Differential Revision: https://reviews.llvm.org/D87514
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.cpp (diff)
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.h (diff)
Commit f06090243d870c2c0f6f1551eff0688a45fab298 by Louis Dionne
[libc++] Use LLVM 11 instead of trunk on build bots

Somehow the snapshot of LLVM trunk we use was seeing failures.
The file was modifiedlibcxx/utils/docker/debian9/buildbot/docker-compose.yml (diff)
Commit cc947207283f934c72af0eb0b1a08978c59d40a2 by nikita.ppv
[AArch64] Add additional vecreduce fmax/fmin legalization tests (NFC)

Add a vector widening test with ninf flag to the existing fmax
tests, and mirror them over into fmin tests.
The file was addedllvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll (diff)
Commit c0f199e5667a862819d333847059cfaa95354111 by albionapc
[PowerPC] Implement Thread Local Storage Support for Local Exec

This patch is the initial support for the Local Exec Thread Local
Storage model to produce code sequence and relocations correct
to the ABI for the model when using PC relative memory operations.

Patch by: Kamau Bridgeman

Differential Revision: https://reviews.llvm.org/D83404
The file was addedllvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll
The file was addedllvm/test/MC/PowerPC/pcrel-tls-local-exec-address-load-reloc.s
The file was addedllvm/test/MC/PowerPC/pcrel-tls-local-exec-value-load-reloc.s
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td (diff)
The file was modifiedllvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def (diff)
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCMCInstLower.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp (diff)
Commit f6f34024e9a4870eea6733dcbab6de89cc435262 by i
[ELF] Add documentation for --warn-backrefs: a GNU ld compatibility checking tool (and lesser of layering detection)

Differential Revision: https://reviews.llvm.org/D86762
The file was addedlld/docs/ELF/warn_backrefs.rst
The file was modifiedlld/docs/index.rst (diff)
Commit 4208ea3e19f8e3e8cd35e6f5a6c43f4aa066c6ec by craig.topper
[FastISel] Bail out of selectGetElementPtr for vector GEPs.

The code that decomposes the GEP into ADD/MUL doesn't work properly
for vector GEPs. It can create bad COPY instructions or possibly
assert.

For now just bail out to SelectionDAG.

Fixes PR45906
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll (diff)
Commit becf15527583380b510ce269ee51abd364551f13 by Louis Dionne
[libc++] Add comment in atomic test to explain why part of it is disabled on Apple
The file was modifiedlibcxx/test/std/atomics/types.pass.cpp (diff)
Commit 226d80ebe20e2d796af6c1bc43d9fbdfbb9d4a07 by tejohnson
[MemProf] Rename HeapProfiler to MemProfiler for consistency

This is consistent with the clang option added in
7ed8124d46f94601d5f1364becee9cee8538265e, and the comments on the
runtime patch in D87120.

Differential Revision: https://reviews.llvm.org/D87622
The file was modifiedclang/test/Driver/fmemprof.cpp (diff)
The file was removedllvm/lib/Transforms/Instrumentation/HeapProfiler.cpp
The file was modifiedllvm/test/Instrumentation/HeapProfiler/instrumentation-use-callbacks.ll (diff)
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp (diff)
The file was modifiedllvm/test/Instrumentation/HeapProfiler/basic.ll (diff)
The file was modifiedllvm/test/Instrumentation/HeapProfiler/masked-load-store.ll (diff)
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/Instrumentation.cpp (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was addedllvm/lib/Transforms/Instrumentation/MemProfiler.cpp
The file was modifiedllvm/test/Instrumentation/HeapProfiler/scale-granularity.ll (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was removedllvm/include/llvm/Transforms/Instrumentation/HeapProfiler.h
The file was modifiedllvm/include/llvm/InitializePasses.h (diff)
The file was addedllvm/include/llvm/Transforms/Instrumentation/MemProfiler.h
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was modifiedllvm/test/Instrumentation/HeapProfiler/version-mismatch-check.ll (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/CMakeLists.txt (diff)
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h (diff)
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
Commit 2ad38f7a46b59a5b6653239245d29590d7977b29 by llvmgnsyncbot
[gn build] Port 226d80ebe20
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn (diff)
Commit c2590de30df23ef0db39b496cdec62a83a61fbfa by aeubanks
[docs][NewPM] Add docs for writing NPM passes

As to not conflict with the legacy PM example passes under
llvm/lib/Transforms/Hello, this is under HelloNew. This makes the
CMakeLists.txt and general directory structure less confusing for people
following the example.

Much of the doc structure was taken from WritinAnLLVMPass.rst.

This adds a HelloWorld pass which simply prints out each function name.

More will follow after this, e.g. passes over different units of IR, analyses.
https://llvm.org/docs/WritingAnLLVMPass.html contains a lot more.

Reviewed By: ychen, asbirlea

Differential Revision: https://reviews.llvm.org/D86979
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was addedllvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn
The file was modifiedllvm/docs/UserGuides.rst (diff)
The file was modifiedllvm/docs/WritingAnLLVMPass.rst (diff)
The file was addedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was modifiedllvm/lib/Passes/LLVMBuild.txt (diff)
The file was addedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was modifiedllvm/lib/Transforms/CMakeLists.txt (diff)
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt (diff)
The file was addedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was addedllvm/lib/Transforms/HelloNew/CMakeLists.txt
The file was addedllvm/test/Transforms/HelloNew/helloworld.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was addedllvm/include/llvm/Transforms/HelloNew/HelloWorld.h
Commit 9d01612db48fa27d18c6320974b8d711572e5c67 by Vitaly Buka
[Asan] Fix false leak report

If user thread is in the allocator, the allocator
may have no pointer into future user's part of
the allocated block. AddrIsInside ignores such
pointers and lsan reports a false memory leak.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87552
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
The file was addedcompiler-rt/test/asan/TestCases/redzone_noleak.cpp
Commit 7d1ed69c8aad00f3ba1e917da54508489de6d610 by joker.eph
Make namespace handling uniform across dialect backends.

Now backends spell out which namespace they want to be in, instead of relying on
clients #including them inside already-opened namespaces. This also means that
cppNamespaces should be fully qualified, and there's no implicit "::mlir::"
prepended to them anymore.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D86811
The file was modifiedmlir/include/mlir/Dialect/SCF/SCF.h (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td (diff)
The file was modifiedmlir/examples/toy/Ch3/include/toy/Ops.td (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVBase.td (diff)
The file was modifiedmlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h (diff)
The file was modifiedmlir/examples/toy/Ch7/include/toy/Dialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVAttributes.cpp (diff)
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/AVX512/AVX512.td (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLBase.td (diff)
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMAVX512Dialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/PDLInterp.h (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h (diff)
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMAVX512Dialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td (diff)
The file was modifiedmlir/examples/toy/Ch5/include/toy/Ops.td (diff)
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantOps.h (diff)
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVOps.h (diff)
The file was modifiedmlir/examples/toy/Ch4/include/toy/Dialect.h (diff)
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/NVVMOps.td (diff)
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp (diff)
The file was modifiedmlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDL.h (diff)
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h (diff)
The file was modifiedmlir/lib/Dialect/PDL/IR/PDL.cpp (diff)
The file was modifiedmlir/examples/toy/Ch2/include/toy/Dialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeBase.td (diff)
The file was modifiedmlir/lib/Dialect/AVX512/IR/AVX512Dialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td (diff)
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACC.h (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp (diff)
The file was modifiedmlir/include/mlir/TableGen/Operator.h (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMAVX512.td (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td (diff)
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td (diff)
The file was modifiedmlir/examples/toy/Ch6/include/toy/Dialect.h (diff)
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.h (diff)
The file was modifiedmlir/include/mlir/Dialect/AVX512/AVX512Dialect.h (diff)
The file was modifiedmlir/examples/toy/Ch2/include/toy/Ops.td (diff)
The file was modifiedmlir/lib/TableGen/Operator.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td (diff)
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff)
The file was modifiedmlir/examples/toy/Ch3/include/toy/Dialect.h (diff)
The file was modifiedmlir/examples/toy/Ch6/include/toy/Ops.td (diff)
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td (diff)
The file was modifiedmlir/examples/toy/Ch5/include/toy/Dialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUDialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVDialect.h (diff)
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantOpsBase.td (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td (diff)
The file was modifiedmlir/test/mlir-tblgen/op-decl.td (diff)
The file was modifiedmlir/examples/toy/Ch7/include/toy/Ops.td (diff)
The file was modifiedmlir/test/mlir-tblgen/op-attribute.td (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/NVVMDialect.h (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUBase.td (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVAttributes.h (diff)
The file was modifiedmlir/include/mlir/IR/OpBase.td (diff)
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td (diff)
The file was modifiedmlir/examples/toy/Ch4/include/toy/Ops.td (diff)
Commit db94df04fbfaa26cc3fda1ef77af32776bd10f21 by nemanja.i.ibm
Update PowerPC backend ownership in CODE_OWNERS.TXT
The file was modifiedllvm/CODE_OWNERS.TXT (diff)
Commit f859c30ecbbbeb33a90b00b76044a688b2e71879 by Austin.Kerbow
[AMDGPU] Add XDL resource to scheduling model

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D87621
The file was modifiedllvm/lib/Target/AMDGPU/SISchedule.td (diff)
The file was addedllvm/test/CodeGen/AMDGPU/schedule-xdl-resource.ll
Commit c193a689b475f91e63adb25dc5855f7a7f068c9a by craig.topper
[SelectionDAG] Use Align/MaybeAlign in calls to getLoad/getStore/getExtLoad/getTruncStore.

The versions that take 'unsigned' will be removed in the future.

I tried to use getOriginalAlign instead of getAlign in some
places. getAlign factors in the minimum alignment implied by
the offset in the pointer info. Since we're also passing the
pointer info we can use the original alignment.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D87592
The file was modifiedllvm/test/CodeGen/AMDGPU/private-element-size.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp (diff)
The file was modifiedllvm/lib/Target/XCore/XCoreISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/usub_sat_vec.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/aix-cc-abi.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/Mips/MipsSEISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/Mips/MipsISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sadd_sat_vec.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/ssub_sat_vec.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/uadd_sat_vec.ll (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
The file was modifiedllvm/lib/Target/Sparc/SparcISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.cpp (diff)
Commit 1ec02efee9b1d01cde89f31ca9ba6a46b7662ac5 by zoecarver
[libc++] Make rotate a constexpr.

This patch makes `std::rotate` a constexpr. In doing so, this patch also
updates the internal `__move` and `__move_backward` funtions to be
constexpr.

Reviewed By: ldionne

Differential Revision: https://reviews.llvm.org/D65721
The file was modifiedlibcxx/include/algorithm (diff)
The file was modifiedlibcxx/include/iterator (diff)
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp (diff)
Commit b552a30283cea1e9d3f90aef3cdd2ac24c366062 by Louis Dionne
[libc++] Finish implementing P0202R3

cppreference lists the support for this paper as partial.
I found 4 functions which the paper marks as `constexpr`,
but did not use the appropriate macro.

Differential Revision: https://reviews.llvm.org/D84275
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp (diff)
The file was modifiedlibcxx/include/algorithm (diff)
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
Commit 1dac073bdd95799ae2f3a40ba2073c34fd037f1b by joker.eph
Fix MLIR standalone example to properly handle namespace

ODS TableGen backend now requires to spell out which namespace they have
to be nested in, in an absolute way.
The file was modifiedmlir/examples/standalone/include/Standalone/StandaloneDialect.td (diff)
The file was modifiedmlir/examples/standalone/include/Standalone/StandaloneDialect.h (diff)
The file was modifiedmlir/examples/standalone/include/Standalone/StandaloneOps.h (diff)
The file was modifiedmlir/examples/standalone/lib/Standalone/StandaloneOps.cpp (diff)
Commit b3445c839fac0bbe174f85e39e9b08756c847465 by Louis Dionne
[libc++][test] Portability fix of std::strstreambuf constructor test

The standard does not require the constructor `strstreambuf(streamsize alsize_arg = 0)`
leave the stream array unallocated when called with parameter `alsize_arg > 0`.
Conformant implementations of this constructor may allocate minimal `alsize_arg`
number of bytes forcing `str()` method to return non-null pointer.

Thanks to Andrey Maksimov for the patch.

Differential Revision: https://reviews.llvm.org/D72465
The file was modifiedlibcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp (diff)
Commit 44da6c2369da239517cd073f96688895081bc395 by Lang Hames
[docs] Update OrcV1 removal timeline.
The file was modifiedllvm/docs/ORCv2.rst (diff)
Commit f3d834485448b42e72c2d908a8be3d02285bd660 by aeubanks
[PruneEH][NFC] Use CallGraphUpdater in PruneEH

In preparation for porting the pass to NPM.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87632
The file was modifiedllvm/lib/Transforms/IPO/PruneEH.cpp (diff)
Commit 5881bf0050398f4bb2d9761167d06a9ecfc8a371 by pklausler
[flang] More clean-up of CookedSource API

The std::string holding the content of a CookedSource no longer
needs to be exposed in its API after the recent work that allows
the parsing context to hold multiple instances of a CookedSource.
So clean the API.  These changes were extracted from some work in
progress that was made easier by the API changes.

Differential Revision: https://reviews.llvm.org/D87635
The file was modifiedflang/lib/Lower/OpenACC.cpp (diff)
The file was modifiedflang/lib/Parser/provenance.cpp (diff)
The file was modifiedflang/tools/f18/f18.cpp (diff)
The file was modifiedflang/lib/Parser/prescan.cpp (diff)
The file was modifiedflang/include/flang/Parser/parse-state.h (diff)
The file was modifiedflang/include/flang/Semantics/semantics.h (diff)
The file was modifiedflang/include/flang/Parser/provenance.h (diff)
The file was modifiedflang/unittests/Evaluate/intrinsics.cpp (diff)
Commit ed653184ac6385945e32535feb7af2876ec52d40 by zoecarver
Revert "[libc++] Make rotate a constexpr."

This reverts commit 1ec02efee9b1d01cde89f31ca9ba6a46b7662ac5.
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp (diff)
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
The file was modifiedlibcxx/include/iterator (diff)
The file was modifiedlibcxx/include/algorithm (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp (diff)
Commit 3ed89b51da38f081fedb57727076262abb81d149 by Louis Dionne
[Take 2] [libc++] Make rotate a constexpr.

This patch makes `std::rotate` a constexpr. In doing so, this patch also
updates the internal `__move` and `__move_backward` funtions to be
constexpr.

This patch was previously reverted in ed653184ac63 because it was missing
some UNSUPPORTED markup for older compilers. This commit adds it.

Differential Revision: https://reviews.llvm.org/D65721
The file was modifiedlibcxx/include/algorithm (diff)
The file was modifiedlibcxx/include/iterator (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp (diff)
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp (diff)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp (diff)
Commit cdbfb47998cd37ab0384ad944fa8e4ba1e1b47d0 by psteinfeld
[flang] Fix bug for forward referenced type

A type name in an IMPLICIT declaration that was later used in a PARAMETER
statement caused problems because the default symbol scope had not yet been
initialized.  I avoided dereferencing in the situation where the default scope
was uninitialized and added a test that triggers the problem.

Also, once I corrected the bad dereference, the compiler was putting out
misleading error messages.  The underlying error us due to violating section
7.5.10, paragraph 4, which states:
  A structure constructor shall not appear before the referenced type is
  defined.

I fixed this by testing to see if a type that is used in a structure
constructor is forward referenced.

Differential Revision: https://reviews.llvm.org/D87535
The file was modifiedflang/test/Semantics/bad-forward-type.f90 (diff)
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
Commit 670c276232ec2233323fab5ad4c1aeef923e9e48 by qcolombet
[GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine

Add the matching and applying function to the combiner helper for
G_UNMERGE_VALUES(G_MERGE_VALUES).

This combine also supports any merge-like input nodes, like G_BUILD_VECTORS
and is robust against bitcasts in between int unmerge and merge nodes.

When the input type of the merge node and the output type of the unmerge
node are not the same, but the sizes are, the combine still applies but
creates bitcasts between the sources and the destinations instead of
reusing the destinations directly.

Long term, the artifact combiner should probably reuse that helper, but
as of today, it doesn't use any outside helper, so I kept it this way.

Differential Revision: https://reviews.llvm.org/D87117
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
Commit 39ec36415df5162fcffae09fde9b931e336a6f3d by aeubanks
Revert "[docs][NewPM] Add docs for writing NPM passes"

This reverts commit c2590de30df23ef0db39b496cdec62a83a61fbfa.

Breaks shared libs build
The file was removedllvm/test/Transforms/HelloNew/helloworld.ll
The file was modifiedllvm/docs/WritingAnLLVMPass.rst (diff)
The file was modifiedllvm/lib/Transforms/CMakeLists.txt (diff)
The file was removedllvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt (diff)
The file was removedllvm/include/llvm/Transforms/HelloNew/HelloWorld.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedllvm/lib/Passes/LLVMBuild.txt (diff)
The file was removedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was removedllvm/lib/Transforms/HelloNew/CMakeLists.txt
The file was removedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was removedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was modifiedllvm/docs/UserGuides.rst (diff)
Commit 46f9137e43f3eb2de9990765a4c482b45b0f8dd5 by aditya_nandakumar
[GISel]: Add combine for G_FABS to G_FABS

https://reviews.llvm.org/D87554

Patch adds one new GICombinerRule for G_FABS. The combine rule folds G_FABS(G_FABS(X)) to G_FABS(X).
Patch additionally adds new combiner tests for the AArch64 target to test this new combiner rule.

Patch by mkitzan.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-fabs.mir
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
Commit 10b12d4035de40e5eaedddda82d9c533854eefcb by aeubanks
Reland [docs][NewPM] Add docs for writing NPM passes

As to not conflict with the legacy PM example passes under
llvm/lib/Transforms/Hello, this is under HelloNew. This makes the
CMakeLists.txt and general directory structure less confusing for people
following the example.

Much of the doc structure was taken from WritinAnLLVMPass.rst.

This adds a HelloWorld pass which simply prints out each function name.

More will follow after this, e.g. passes over different units of IR, analyses.
https://llvm.org/docs/WritingAnLLVMPass.html contains a lot more.

Relanded with missing "Support" dependency in LLVMBuild.txt.

Reviewed By: ychen, asbirlea

Differential Revision: https://reviews.llvm.org/D86979
The file was modifiedllvm/docs/WritingAnLLVMPass.rst (diff)
The file was addedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was modifiedllvm/lib/Passes/LLVMBuild.txt (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was addedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/docs/UserGuides.rst (diff)
The file was addedllvm/test/Transforms/HelloNew/helloworld.ll
The file was addedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was addedllvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn
The file was addedllvm/include/llvm/Transforms/HelloNew/HelloWorld.h
The file was modifiedllvm/lib/Transforms/CMakeLists.txt (diff)
The file was addedllvm/lib/Transforms/HelloNew/CMakeLists.txt
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt (diff)
Commit 6352381039c43c66f01a23be19472f7e611ffcdf by kparzysz
[Hexagon] Some HVX DAG combines

1. VINSERTW0 x, undef -> x
2. VROR (VROR x, a), b) -> VROR x, a+b
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (diff)
Commit bb877d1af2ec2f624caa380350c8da00c984e754 by kparzysz
[Hexagon] Widen loads and handle any-/sign-/zero-extensions
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/Hexagon/autohvx/widen-ext.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonPatternsHVX.td (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (diff)
Commit f35617ad809b978635d10c0c39553840a03ac41f by kparzysz
[Hexagon] Add more detailed testcase for widening truncates
The file was addedllvm/test/CodeGen/Hexagon/autohvx/widen-trunc.ll
Commit da55e9ba1273284f1af61bceeaeb25e487838034 by Chris.Hamilton
[Sema] Address-space sensitive index check for unbounded arrays

Check applied to unbounded (incomplete) arrays and pointers
to spot cases where the computed address is beyond the
largest possible addressable extent of the array, based
on the address space in which the array is delcared, or
which the pointer refers to.

Check helps to avoid cases of nonsense pointer math and
array indexing which could lead to linker failures or
runtime exceptions.  Of particular interest when building
for embedded systems with small address spaces.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D86796
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/test/Sema/const-eval.c (diff)
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
The file was addedclang/test/Sema/unbounded-array-bounds.c
The file was modifiedclang/test/SemaCXX/constant-expression-cxx1y.cpp (diff)
Commit 32515938901685bcbc438d5f5bb03cb8a9f4c637 by craig.topper
[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract.

Fixes PR47525
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp (diff)
The file was addedllvm/test/CodeGen/X86/pr47525.ll
Commit a36278c2f8b5ba7e964ef2cdc14ef8c3f8b8a045 by qcolombet
[GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine

Add a combiner helper that replaces G_UNMERGE of big constants into direct
use of smaller constants.

Differential Revision: https://reviews.llvm.org/D87166
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll (diff)
Commit 1d70984fa220f966ddcecd7906c5f10368fe1b93 by Vitaly Buka
[Asan] Accept __lsan_ignore_object for redzone pointer

The check that the pointer inside of the user part of the chunk does not
adds any value, but it's the last user of AddrIsInside.

I'd like to simplify AsanChunk in followup patches.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87642
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/lsan_annotations.cpp (diff)
Commit e6bc7037d386184d94bf68b184d0ac62b96a4098 by listmail
[AArch64] Statepoint support for AArch64.

Differential Revision: https://reviews.llvm.org/D66012
Patch By: loicottet (with major rebase by me)
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/AArch64/statepoint-call-lowering.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp (diff)
Commit 4706880f06fbaf5f95dab2b6fd4cd2a5cf1693e6 by pklausler
[flang] Allow Fortran comments after #include path

C-style /*comments*/ are removed during preprocessing directive
tokenization, but Fortran !comments need to be specifically
allowed.

Fixes LLVM bugzilla 47466.

Differential Revision: https://reviews.llvm.org/D87638
The file was addedflang/test/Preprocessing/include-comment.F90
The file was modifiedflang/lib/Parser/preprocessor.cpp (diff)
The file was addedflang/test/Preprocessing/empty.h
Commit da1aaa0b7080049e0d6ef82a4a6784e89c20f059 by craig.topper
Revert "[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract."

I got the bug number wrong.

This reverts commit 32515938901685bcbc438d5f5bb03cb8a9f4c637.
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp (diff)
The file was removedllvm/test/CodeGen/X86/pr47525.ll
Commit 46673763fe598aa9d3f0edaf1ba7a1645c4eacfe by craig.topper
[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract

Fixes PR47482
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp (diff)
The file was addedllvm/test/CodeGen/X86/pr47482.ll
Commit b2cf572b562048f54b774d9cef88cf792a33ab31 by pklausler
[flang] Respect BZ mode in exponent parts, too

The Fortran standard discusses BZ mode (treat blanks as zero digits)
explicitly in its effect on the editing of the digits prior to the
exponent part, but doesn't mention it in description of the
exponent part.  Other compilers honor BZ mode in the exponent,
so we should do so too.  So "1 e 1 " is 1.E11 in BZ mode.

Differential Revision: https://reviews.llvm.org/D87653
The file was modifiedflang/runtime/edit-input.cpp (diff)
The file was modifiedflang/unittests/Runtime/hello.cpp (diff)
Commit 8bd0dc5bfe23fdfba110eefd33ff658289a307ab by Louis Dionne
[libc++abi] Do not declare __cxa_finalize and __cxa_atexit in <cxxabi.h>

These functions are not defined by libc++abi, so they don't belong in <cxxabi.h>.

Differential Revision: https://reviews.llvm.org/D75795
The file was modifiedlibcxxabi/include/cxxabi.h (diff)
Commit d2321129bda712a0e7ee222c7cb6a62e5ca5b6f4 by qcolombet
[GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z

Add a combiner helper that replaces G_UNMERGE where all the destination lanes
are dead except the first one with a G_TRUNC.

Differential Revision: https://reviews.llvm.org/D87174
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (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/regbankselect-amdgcn.s.buffer.load.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-shl-narrow.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.store.2d.d16.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-select.mir (diff)
Commit b3afad046301d8bb1f4471aceaad704b87de3a69 by qcolombet
[GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine

Add a combiner helper to transform unmerge of zext into one zext and
a constant 0

Differential Revision: https://reviews.llvm.org/D87427
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
Commit 1f837265eb082441337a42420bf415a99c3f4baa by xun
[Coroutines] Fix a typo in documentation

In the example, the variable that's crossing suspend point was referred wrongly, fix it.

Differential Revision: https://reviews.llvm.org/D83563
The file was modifiedllvm/docs/Coroutines.rst (diff)
Commit 042c23506869b4ae9a49d2c4bc5ea6e6baeabe78 by phosek
[DebugInfo] Remove dots from getFilenameByIndex return value

When concatenating directory with filename in getFilenameByIndex, we
might end up with a path that contains extra dots. For example, if the
input is /path and ./example, we would return /path/./example. Run
sys::path::remove_dots on the output to eliminate unnecessary dots.

Differential Revision: https://reviews.llvm.org/D87657
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (diff)
The file was modifiedllvm/test/tools/llvm-symbolizer/frame-fortran.s (diff)
Commit 2c12b056bececd3fce3d5a3b731b4ff8fa6dfbbb by sbc
[lld][WebAssembly] Allow globals imports via import_name/import_module

This feature already exists but was limited to function
symbols.

Differential Revision: https://reviews.llvm.org/D87666
The file was modifiedlld/wasm/Relocations.cpp (diff)
The file was modifiedlld/test/wasm/mutable-globals.s (diff)
Commit 380e746bcca87baa5c746854b44d6a5cea6f7bde by ikudrin
[DebugInfo] Fix methods of AsmPrinter to emit values corresponding to the DWARF format (1/19).

These methods are used to emit values which are 32-bit in DWARF32 and
64-bit in DWARF64. The patch fixes them so that they choose the length
automatically, depending on the DWARF format set in the Context.

Differential Revision: https://reviews.llvm.org/D87008
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h (diff)
The file was addedllvm/unittests/CodeGen/TestAsmPrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp (diff)
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was addedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
The file was addedllvm/unittests/CodeGen/TestAsmPrinter.cpp
Commit a8058c6f8d1d3a360986f05b74f548995b384fcd by ikudrin
[DebugInfo] Fix DIE value emitters to be compatible with DWARF64 (2/19).

DW_FORM_sec_offset and DW_FORM_strp imply values of different sizes with
DWARF32 and DWARF64. The patch fixes DIE value classes to use correct
sizes when emitting their values. For DIELocList it ensures that the
requested DWARF form matches the current DWARF format because that class
uses a method that selects the size automatically.

Differential Revision: https://reviews.llvm.org/D87009
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp (diff)
The file was addedllvm/unittests/CodeGen/DIETest.cpp
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt (diff)
Commit c3c501f5d79130fe9bbe4f6ca689f2d83f92373e by ikudrin
[DebugInfo] Add new emitting methods for values which depend on the DWARF format (3/19).

These methods are going to be used in subsequent patches.

Differential Revision: https://reviews.llvm.org/D87010
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp (diff)
The file was modifiedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h (diff)
Commit 982b31fad2983eef08dbbddb2d58c635bdf6cf08 by ikudrin
[DebugInfo] Add the -dwarf64 switch to llc and other internal tools (4/19).

The patch adds a switch to enable emitting debug info in the 64-bit
DWARF format. Most emitter for sections will be updated in the subsequent
patches, whereas for .debug_line and .debug_frame the emitters are in
the MC library, which is already updated.

For now, the switch is enabled only for 64-bit ELF targets.

Differential Revision: https://reviews.llvm.org/D87011
The file was addedllvm/test/DebugInfo/X86/debug-line-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
The file was addedllvm/test/DebugInfo/X86/dwarf64-support.ll
The file was addedllvm/test/DebugInfo/X86/debug-frame-dwarf64.ll
Commit 5dd1c59188988a030dfc80bd20729534f3a41b46 by ikudrin
[DebugInfo] Fix emitting DWARF64 compilation units (5/19).

The patch also adds a method to choose an appropriate DWARF form
to represent section offsets according to the version and the format
of producing debug info.

Differential Revision: https://reviews.llvm.org/D87014
The file was modifiedllvm/unittests/CodeGen/DIETest.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h (diff)
The file was addedllvm/test/DebugInfo/X86/debug-info-dwarf64.ll
Commit cae7c1eb781d591aa3d16ec6bc3a8fe1ace6e4ef by ikudrin
[DebugInfo] Use a common method to determine a suitable form for section offsts (6/19).

This is mostly an NFC patch because the involved methods are used when
emitting DWO files, which is incompatible with DWARFv3, or for platforms
where DWARF64 is not supported yet.

Differential Revision: https://reviews.llvm.org/D87015
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)
The file was modifiedllvm/unittests/CodeGen/DIETest.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp (diff)
Commit 26f1f18831342e9c5e137e68d067d7383d72f30d by ikudrin
[DebugInfo] Fix emitting the DW_AT_location attribute for 64-bit DWARFv3 (7/19).

The patch uses a common method to determine the appropriate form for
the value of the attribute.

Differential Revision: https://reviews.llvm.org/D87016
The file was modifiedllvm/test/DebugInfo/X86/DW_AT_location-reference.ll (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (diff)
Commit 383d34c077ae7f845bf751936f59f12598e60b3e by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_str_offsets sections (8/19).

The patch fixes calculating the size of the table and emitting the unit
length field.

Differential Revision: https://reviews.llvm.org/D87017
The file was addedllvm/test/DebugInfo/X86/debug-str-offsets-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp (diff)
Commit 924dc5807690f9ee0a84e407e8cb943511845bf5 by ikudrin
[DebugInfo] Fix emitting DWARF64 DWO compilation units and string offset tables (9/19).

These two fixes are better to go together because llvm-dwarfdump is
unable to dump a table when another one is malformed.

Differential Revision: https://reviews.llvm.org/D87018
The file was addedllvm/test/DebugInfo/X86/debug-str-offsets-dwo-dwarf64.ll
The file was addedllvm/test/DebugInfo/X86/debug-info-dwo-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp (diff)
Commit 18f23b3ecc6d0cec31c655b7ae9054cf0edf630e by ikudrin
[DebugInfo] Fix emitting DWARF64 type units (10/19).

The patch fixes emitting the offset to the type DIE. All other fields
are already fixed in previous patches.

Differential Revision: https://reviews.llvm.org/D87021
The file was addedllvm/test/DebugInfo/X86/debug-types-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)
Commit b118030f3fa68b308d149d7d4303e0623ead0463 by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_aranges sections (11/19).

The patch fixes calculating the size of the table and emitting
the fields which depend on the DWARF format by using methods that
choose appropriate sizes automatically.

Differential Revision: https://reviews.llvm.org/D87012
The file was addedllvm/test/DebugInfo/X86/debug-aranges-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
Commit 03b09c6b68bbce80bea47db40ad85809d363b260 by ikudrin
[DebugInfo] Fix emitting pre-v5 name lookup tables in the DWARF64 format (12/19).

The transition is done by using methods of AsmPrinter which
automatically emit values in compliance with the selected DWARF format.

Differential Revision: https://reviews.llvm.org/D87013
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
The file was addedllvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll
Commit f9b242fe24f764166f818b3260c0635fc0bef6e9 by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_rnglists sections (13/19).

The size of the offsets in the table depends on the DWARF format.

Differential Revision: https://reviews.llvm.org/D87019
The file was modifiedllvm/test/DebugInfo/X86/split-dwarf-v5-ranges.ll (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
Commit 3158d3dd4b7e5c6e2aff7c81355757d26579f1a3 by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_loclists sections (14/19).

The size of the offsets in the table depends on the DWARF format.

Differential Revision: https://reviews.llvm.org/D87020
The file was modifiedllvm/test/CodeGen/X86/debug-loclists-lto.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/debug-loclists.ll (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
Commit 00ce54689d30fd65c49ebc87a21841e834f2d086 by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_addr sections (15/19).

The patch fixes emitting the header of the table. The content is
independent of the DWARF format.

Differential Revision: https://reviews.llvm.org/D87022
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AddressPool.cpp (diff)
The file was addedllvm/test/DebugInfo/X86/debug-addr-dwarf64.ll
Commit a93dd26d8ced81d7d2e9a239a4cc33aaf0ba7c89 by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_names sections (16/19).

The patch fixes emitting the unit length field in the header of
the table and offsets to the entry pool. Note that while the patch
changes the common method to emit offsets, in fact, nothing is changed
for Apple accelerator tables, because we do not yet support DWARF64 for
those targets.

Differential Revision: https://reviews.llvm.org/D87023
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AccelTable.cpp (diff)
The file was addedllvm/test/DebugInfo/X86/debug-names-dwarf64.ll
Commit 7e1e4e81cbcac6156005a31d90b604714c92298c by ikudrin
[DebugInfo] Fix emitting DWARF64 .debug_macro[.dwo] sections (17/19).

The patch fixes emitting flags and the debug_line_offset field in
the header, as well as the reference to the macro string for
a pre-standard GNU .debug_macro extension.

Differential Revision: https://reviews.llvm.org/D87024
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
The file was addedllvm/test/DebugInfo/X86/debug-macro-dwarf64.ll
Commit 8c19ac23bdefceaaf119add8d693e89a6f7d3d81 by ikudrin
[DebugInfo] Make the offset of string pool entries 64-bit (18/19).

The string pool is shared among several units in the case of LTO,
and it potentially can exceed the limit of 4GiB for an extremely
large application. As it is now possible to emit 64-bit debugging
info, the limitation can be removed.

Differential Revision: https://reviews.llvm.org/D87025
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/DwarfStringPoolEntry.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/NonRelocatableStringpool.h (diff)
Commit a845ebd6333d95d58bd6ab18c6ff8bb79686c664 by ikudrin
[DebugInfo] Make offsets of dwarf units 64-bit (19/19).

In the case of LTO, several DWARF units can be emitted in one section.
For an extremely large application, they may exceed the limit of 4GiB
for 32-bit offsets. As it is now possible to emit 64-bit debugging info,
the patch enables storing the larger offsets.

Differential Revision: https://reviews.llvm.org/D87026
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AccelTable.cpp (diff)
The file was modifiedllvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/DIE.h (diff)
Commit 26c293c23d3b5cf4135fce0b1e61b70d6c4dd930 by ditaliano
[BinaryFormat/MachO] Add a missing constant.

Reference:
https://opensource.apple.com/source/cctools/cctools-949.0.1/include/mach-o/loader.h.auto.html
The file was modifiedllvm/include/llvm/BinaryFormat/MachO.h (diff)
Commit 7b416c5e3683d7120e4ce390e669f89b6a72d423 by martin
[llvm-readobj] [ARMWinEH] Print ARM64 packed unwind info

In addition to printing the individual fields, synthesize and
print the corresponding prolog for the unwind info (in reverse
order, to match how it's printed for non-packed unwind info).

Differential Revision: https://reviews.llvm.org/D87370
The file was modifiedllvm/include/llvm/Support/ARMWinEH.h (diff)
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.cpp (diff)
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.h (diff)
The file was addedllvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
Commit 61e0b2b4c5fbbea01bb40f28ea0222b87166ccdf by martin
[LLD] Allow configuring default ld.lld backend

The motivation for this is ld.lld --help targeting MinGW which
currently prints help for the ELF backend unless -m i386pe{,p} is
added. This confuses build systems that grep through linker help to
find supported flags.

This matches LD from Binutils which always prints help for MinGW
when configured to target it.

After this change, the backend can still be overridden to any
supported ELF/MinGW target by using correct -m <arch>.

Differential Revision: https://reviews.llvm.org/D87418
The file was modifiedlld/CMakeLists.txt (diff)
The file was modifiedlld/tools/lld/lld.cpp (diff)
Commit e71cda21d71c4c92731ec7fe8345d04395a630b7 by martin
[Windows][Polly] Disable LLVMPolly module for all compilers on Windows

Before this patch, the cmake disabled loadable modules when compiling
with Visual Studio. However, the reason for this is a limitation of the
Windows DLLs, thus this restriction should apply to any compiler for the
Windows platform, such as MinGW, Cygwin, icc, etc.

Differential Revision: https://reviews.llvm.org/D87524
The file was modifiedpolly/cmake/CMakeLists.txt (diff)
The file was modifiedpolly/lib/CMakeLists.txt (diff)
Commit 3023f057d83a5920e39c647b7eaf677676b3a191 by Vitaly Buka
[NFC][lsan][fuzzer] Relax fuzzer-leak.test

With lsan we can't guarantee to catch leak on the same iteration.
The file was modifiedcompiler-rt/test/fuzzer/fuzzer-leak.test (diff)
Commit c6aadd2b72cf38142f137278a483fea7eb9bd16f by craig.topper
[X86] Pre-commit test cases for D87593

The memory operand for these is incorrect.
The file was modifiedllvm/test/CodeGen/X86/vmaskmov-offset.ll (diff)
Commit d74e1f3a5119ba6b2b6f49a3e5cfab10ea903d93 by Vitaly Buka
[NFC][Asan] Don't use MetaData for size

Now we have enough space in the ChunkHeader.
45 bit is enough for kMaxAllowedMallocSize.

Depends on D87642.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87643
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit cad961bb24d3b1ec63571e8cac6aa8b16245f95b by Vitaly Buka
[NFC][Asan] Remove from_memalign and rz_log

Before D87643 they where used to optimize UsedSize(). Which was
called frequently from leak scanner.
It was also used for calls from QuarantineCallback
but we have heavy get_allocator().Deallocate call there anyway.

Depends on D87643.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87644
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit c8ddf27ddbbe140d8acbcf1b2d3fdfbba253d02c by Chris.Hamilton
Revert "[Sema] Address-space sensitive index check for unbounded arrays"

This reverts commit da55e9ba1273284f1af61bceeaeb25e487838034.

Build bots uncovered coverage gap in testing.  Change not ready.
The file was removedclang/test/Sema/unbounded-array-bounds.c
The file was modifiedclang/test/SemaCXX/constant-expression-cxx1y.cpp (diff)
The file was modifiedclang/test/Sema/const-eval.c (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
Commit a61bb7f0980805ef13ca188892ba17f386a2347d by Vitaly Buka
[NFC][Asan] Reorder bitfields

Depends on D87644.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87645
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit 08507d83be15387c85edb538517b66add9dc6295 by Vitaly Buka
[Asan] Cleanup kAllocBegMagic setup

Make it atomic.
Wrap it into class.
Set it late after chunk is initialized.
Reset it soon when the chunk is still valid.

Depends on D87645.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87646
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit 4540d3baad06e060ba1e42c8fb60ba8c32308db5 by Vitaly Buka
[NFC][Asan] Return uptr as before D87646
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit 943b0c8bffc55eba4cebaaffc4bd33856e271e94 by Vitaly Buka
[NFC][Asan] Remove chunk pointer from metadata

kAllocBegMagic should be enough.
kAllocBegMagic is already set for the Secondary allocations.
kAllocBegMagic is good enough for the Primary, but it's even safer for
the Secondary allocator as all allocated block are from mmap.

Depends on D87646.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87647
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit 69cccb3189d6e0535ab78411a37cfcccf06a58a7 by david.sherwood
[SVE] Fix isLoadInvariantInLoop for scalable vectors

I've amended the isLoadInvariantInLoop function to bail out for
scalable vectors for now since the invariant.start intrinsic is only
ever generated by the clang frontend for thread locals or struct
and class constructors, neither of which support sizeless types.
In addition, the intrinsic itself does not currently support the
concept of a scaled size, which makes it impossible to compare
the sizes of different scalable objects, e.g. <vscale x 32 x i8>
and <vscale x 16 x i8>.

Added new tests here:

  Transforms/LICM/AArch64/sve-load-hoist.ll
  Transforms/LICM/hoisting.ll

Differential Revision: https://reviews.llvm.org/D87227
The file was addedllvm/test/Transforms/LICM/AArch64/sve-load-hoist.ll
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was addedllvm/test/Transforms/LICM/AArch64/lit.local.cfg
The file was modifiedllvm/test/Transforms/LICM/hoisting.ll (diff)
The file was modifiedllvm/lib/IR/Verifier.cpp (diff)
Commit e15996b5c6e9609c5902cae12455f43d7ba97a0f by sguelton
[doc] Fix broken link
The file was modifiedllvm/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.rst (diff)
Commit c1f2fb5184ca79e9d53d51355b380c5441191878 by phosek
[DebugInfo] Support both forward and backward slashes in tests

This addresses test failure revealed by 042c23506869.
The file was modifiedlld/test/wasm/debuginfo.test (diff)
The file was modifiedlld/test/COFF/undefined-symbol-dwarf.s (diff)
The file was modifiedlld/test/COFF/duplicate-dwarf.s (diff)
The file was modifiedlld/test/ELF/conflict-debug-variable2.s (diff)
Commit 7b58eb50d96b80323504d87ca2f39ee3d7abc7d5 by hans
[Support] Make building with snmalloc work

Differential revision: https://reviews.llvm.org/D87471
The file was modifiedllvm/lib/Support/CMakeLists.txt (diff)
Commit 487412988cea99c94f2c58f8fa9eff34600fe684 by sjoerd.meijer
[MVE] Rename of tests making them consistent with tail-predication tests. NFC.
The file was removedllvm/test/CodeGen/Thumb2/LowOverheadLoops/basic-tail-pred.ll
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-reduce.ll
The file was removedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-reduce.ll
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-basic.ll
Commit 9b4fa854343166dd88e4f2e135239bbf1ce0a16c by petar.avramovic
GlobalISel/IRTranslator resetTargetOptions based on function attributes

Update TargetMachine.Options with function attributes before we start
to generate MIR instructions. This allows access to correct function
attributes via TargetMachine.Options (it used to access attributes of
the function that was translated first).
This affects some existing tests with "no-nans-fp-math" attribute.
Follow-up on D87456.

Differential Revision: https://reviews.llvm.org/D87511
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll (diff)
Commit 4845531fa88cb0f104b5afc5d99abded22623c53 by grimar
[lib/Object] - Refine interface of ELFFile<ELFT>. NFCI.

`ELFFile<ELFT>` has many methods that take pointers,
though they assume that arguments are never null and
hence could take references instead.

This patch performs such clean-up.

Differential revision: https://reviews.llvm.org/D87385
The file was modifiedlld/ELF/Driver.cpp (diff)
The file was modifiedllvm/include/llvm/Object/ELF.h (diff)
The file was modifiedlld/ELF/Arch/MipsArchTree.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp (diff)
The file was modifiedlld/ELF/Arch/RISCV.cpp (diff)
The file was modifiedlld/ELF/Arch/AMDGPU.cpp (diff)
The file was modifiedlld/ELF/InputSection.cpp (diff)
The file was modifiedlld/ELF/Arch/Mips.cpp (diff)
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp (diff)
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp (diff)
The file was modifiedllvm/include/llvm/Object/ELFObjectFile.h (diff)
The file was modifiedllvm/lib/InterfaceStub/ELFObjHandler.cpp (diff)
The file was modifiedllvm/tools/llvm-readobj/ARMEHABIPrinter.h (diff)
The file was modifiedlld/ELF/InputFiles.cpp (diff)
The file was modifiedlld/ELF/Relocations.cpp (diff)
The file was modifiedllvm/lib/Object/ELF.cpp (diff)
The file was modifiedllvm/tools/llvm-readobj/DwarfCFIEHPrinter.h (diff)
The file was modifiedlld/ELF/Arch/Hexagon.cpp (diff)
The file was modifiedlld/ELF/Arch/PPC64.cpp (diff)
The file was modifiedllvm/tools/llvm-objdump/ELFDump.cpp (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit 58938b544b728ccf90462a7e4854e8a533eb9296 by phosek
[NFC][DebugInfo] Use consistent regex group spelling

This is a follow up to c1f2fb5184ca.
The file was modifiedlld/test/ELF/conflict-debug-variable2.s (diff)
The file was modifiedlld/test/wasm/debuginfo.test (diff)
Commit bccd2ec3e216fed04c46df7077462165435703a1 by grimar
[llvm-readobj/elf] - Simplify and refine the implementation which dumps .stack_sizes

Our implementation of stack sizes section dumping heavily uses `ELFObjectFile<ELFT>`,
while the rest of the code uses `ELFFile<ELFT>`.

That APIs are very different. `ELFObjectFile<ELFT>` is very generic
and has `SectionRef`, `RelocationRef`, `SymbolRef` and other generic concepts.
The `ELFFile<ELFT>` class works directly with `Elf_Shdr`, `Elf_Rel[a]`, `Elf_Sym` etc,
what is probably much cleaner for ELF dumper.

Also, `ELFObjectFile<ELFT>` API does not always provide a way to check
for possible errors. E.g. the implementation of `symbol_end()` does not verify the `sh_size`:

```
template <class ELFT>
basic_symbol_iterator ELFObjectFile<ELFT>::symbol_end() const {
  const Elf_Shdr *SymTab = DotSymtabSec;
  if (!SymTab)
    return symbol_begin();
  DataRefImpl Sym = toDRI(SymTab, SymTab->sh_size / sizeof(Elf_Sym));
  return basic_symbol_iterator(SymbolRef(Sym, this));
}
```
There are many other examples which makes me thing we might win from
switching to `ELFFile<ELFT>` API, where we heavily validate an input data already.

This patch is the first step in this direction. I've converted the large portion of the code
to use `ELFFile<ELFT>`.

Differential revision: https://reviews.llvm.org/D87362
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit fc446935d724e87be515eb465293d82e040eb571 by llvm-dev
[X86] detectAVGPattern - accept non-pow2 vectors by padding.

Drop the pow2 vector limitation for AVG generation by padding the vector to the next pow2, creating the PAVG nodes and then extracting the final subvector.

Fixes some poor codegen that has been annoying me for years.....
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/avg.ll (diff)
Commit b4b1b84106a03d7b6374090bc0ff04b3a77a0862 by sjoerd.meijer
[MVE] fix typo in llvm debug message. NFC.
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp (diff)
Commit 5f13d6c1eef7fa4264d143af6e7bafbb74937ccd by llvm-dev
[Transforms][Coroutines] Add missing header path to CMakeLists.txt

Helps Visual Studio check include dependencies.
The file was modifiedllvm/lib/Transforms/Coroutines/CMakeLists.txt (diff)
Commit 2508ef014e8b01006de4e5ee6fd451d1f68d550f by qiucofan
[SelectionDAG] Remove unused FP constant in getNegatedExpression

960cbc53 immediately removes nodes that won't be used to avoid
compilation time explosion. This patch adds the removal to constants to
fix PR47517.

Reviewed By: RKSimon, steven.zhang

Differential Revision: https://reviews.llvm.org/D87614
The file was addedllvm/test/CodeGen/X86/pr47517.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
Commit 1119bf95be94950da602b268dc96dbb2110cbe15 by meera.nakrani
[ARM] Corrected condition in isSaturatingConditional

Fixed a small error in an if condition to prevent usat/ssat being generated if (upper constant + 1) is not a
power of 2.
The file was modifiedllvm/test/CodeGen/ARM/usat.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
Commit 9eab73fa17f5920178a87ee8a5021f4fd6f0f5ef by llvm-dev
[X86] Update SSE/AVX integer MINMAX intrinsics to emit llvm.smax.* etc. (PR46851)

We're now getting close to having the necessary analysis/combines etc. for the new generic llvm smax/smin/umax/umin intrinsics.

This patch updates the SSE/AVX integer MINMAX intrinsics to emit the generic equivalents instead of the icmp+select code pattern.

Differential Revision: https://reviews.llvm.org/D87603
The file was modifiedclang/test/CodeGen/X86/avx512vl-builtins.c (diff)
The file was modifiedclang/test/CodeGen/X86/sse41-builtins.c (diff)
The file was modifiedllvm/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll (diff)
The file was modifiedclang/test/CodeGen/X86/sse2-builtins.c (diff)
The file was modifiedclang/test/CodeGen/X86/avx512vlbw-builtins.c (diff)
The file was modifiedllvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll (diff)
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp (diff)
The file was modifiedclang/test/CodeGen/X86/avx512-reduceMinMaxIntrin.c (diff)
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp (diff)
The file was modifiedclang/test/CodeGen/X86/avx512f-builtins.c (diff)
The file was modifiedllvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll (diff)
The file was modifiedclang/test/CodeGen/X86/avx512bw-builtins.c (diff)
The file was modifiedclang/test/CodeGen/X86/avx2-builtins.c (diff)
Commit b768546fe0cc1d320857a6e080d4c796efb0c00c by benny.kra
Revert "[InstCombine] Simplify select operand based on equality condition"

This reverts commit cfff88c03cf9e9b72906a41fd11e06721d54f293. Sends
instcombine into an infinite loop.

```
define i1 @foo(i32 %arg, i32 %arg1) {
bb:
  %tmp = udiv i32 %arg, %arg1
  %tmp2 = mul nsw i32 %tmp, %arg1
  %tmp3 = icmp eq i32 %tmp2, %arg
  %tmp4 = select i1 %tmp3, i32 %tmp, i32 undef
  %tmp5 = icmp sgt i32 %tmp4, 255
  ret i1 %tmp5
}
```
The file was modifiedllvm/test/Transforms/InstCombine/select.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll (diff)
Commit c20852300a35a33cb6bf47028f3c95a2640dab9f by limo
[mlir][integration_test] Linalg Conv folder renamed to CPU

Changing directory name to reflect naming convention discussed here:
https://llvm.discourse.group/t/vectorops-rfc-add-suite-of-integration-tests-for-vector-dialect-operations/1213

Differential Revision: https://reviews.llvm.org/D87678
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-ncw-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-ncw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-nwc-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ncdhw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nhwc-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ndhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nchw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-nwc-call.mlir
Commit 967c7b6936a66878919568b94643c942cc7de69e by zinenko
[mlir] check for failures when packing function sigunatures in std->llvm conversion

When packing function results into a structure during the standard-to-llvm
dialect conversion, do not assume the conversion was successful and propagate
nullptr as error state.

Fixes PR45184.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D87605
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
The file was modifiedmlir/test/Conversion/StandardToLLVM/invalid.mlir (diff)
Commit cd4edf94cd43754954aff0ddabd704de0f8f7ac0 by flo
Recommit "[ConstraintSystem] Add helpers to deal with linear constraints."

This patch recommits "[ConstraintSystem] Add helpers to deal with linear constraints."
(it reverts the revert commit 8da6ae4ce1b686c5c13698e4c5ee937811fda6f7).

The reason for the revert was using __builtin_multiply_overflow, which
is not available for all compilers. The patch has been updated to use
MulOverflow from MathExtras.h
The file was addedllvm/utils/convert-constraint-log-to-z3.py
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt (diff)
The file was addedllvm/include/llvm/Analysis/ConstraintSystem.h
The file was modifiedllvm/lib/Analysis/CMakeLists.txt (diff)
The file was addedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was addedllvm/lib/Analysis/ConstraintSystem.cpp
Commit bee79cdcc6aa855f4abcaa1f7e7f9df54538496b by llvm-dev
SelectionDAGBuilder.h - remove unnecessary includes. NFCI.

Reduce to forward declarations and move implicit dependencies down to the cpp files.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)
Commit 1abb4461ea03f1166c13c4dd5fa349d41d02be6a by llvm-dev
StatepointLowering.cpp - remove unnecessary includes. NFCI.

These are all directly included in StatepointLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp (diff)
Commit 6c1f2a34fbcaa57c3dc0de3f9e4da58da7f328b6 by llvm-dev
SpillPlacement.cpp - remove unnecessary includes. NFCI.

These are all directly included in SpillPlacement.h
The file was modifiedllvm/lib/CodeGen/SpillPlacement.cpp (diff)
Commit a21387c65470417c58021f8d3194a4510bb64f46 by hans
Revert "RegAllocFast: Record internal state based on register units"

This seems to have caused incorrect register allocation in some cases,
breaking tests in the Zig standard library (PR47278).

As discussed on the bug, revert back to green for now.

> Record internal state based on register units. This is often more
> efficient as there are typically fewer register units to update
> compared to iterating over all the aliases of a register.
>
> Original patch by Matthias Braun, but I've been rebasing and fixing it
> for almost 2 years and fixed a few bugs causing intermediate failures
> to make this patch independent of the changes in
> https://reviews.llvm.org/D52010.

This reverts commit 66251f7e1de79a7c1620659b7f58352b8c8e892e, and
follow-ups 931a68f26b9a3de853807ffad7b2cd0a2dd30922
and 0671a4c5087d40450603d9d26cf239f1a8b1367e. It also adjust some
test expectations.
The file was modifiedllvm/test/CodeGen/AArch64/popcount.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/addegluecrash.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr44749.ll (diff)
The file was modifiedllvm/lib/CodeGen/RegAllocFast.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/pr30813.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/mixed-ptr-sizes.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/atomic-unordered.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/lvi-hardening-loads.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-m0.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/fast-isel-nontemporal.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/atomic-min-max.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/implicit-sret.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll (diff)
The file was modifiedllvm/test/CodeGen/SPARC/fp16-promote.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/swifterror.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/wwm-reserved.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr34592.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr39733.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/atomic32.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr32451.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr1489.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr32241.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr47000.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/popcount.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr32340.ll (diff)
The file was modifiedllvm/test/DebugInfo/X86/op_deref.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/regalloc-fast-missing-live-out-spill.mir (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/vsx.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/swift-return.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/avx-load-store.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr30430.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/legalize-bitcast.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/atomic.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/fast-isel-sp-adjust.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/2009-04-14-IllegalRegs.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/atomic64.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr32345.ll (diff)
The file was modifiedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fptosi_and_fptoui.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr27591.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr32284.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vcvt_f.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/crash-O0.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/extend-set-cc-uses-dbg.ll (diff)
Commit 0a2213c6eb24c9deec738e30509815e5bddd860c by pavel
[lldb/cmake] Fix testing support library dependencies

lldbUtilityHelpers does not depend on lldbSymbolHelpers. Remove that
dependency, and add direct lldbSymbolHelpers dependencies where needed.
The file was modifiedlldb/unittests/TestingSupport/CMakeLists.txt (diff)
The file was modifiedlldb/unittests/SymbolFile/DWARF/CMakeLists.txt (diff)
The file was modifiedlldb/unittests/Expression/CMakeLists.txt (diff)
Commit af3789a188116e400dd021bae54d91dc543aca7d by pavel
[lldb] Improve qemu interop for aarch64

qemu calls the "fp" and "lr" registers via their generic names
(x29/x30). This mismatch manifested itself as not being able to unwind
or display values of some local variables.
The file was addedlldb/test/API/functionalities/gdb_remote_client/TestQemuAArch64TargetXml.py
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.h (diff)
The file was addedlldb/test/API/functionalities/gdb_remote_client/basic_eh_frame-aarch64.yaml
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp (diff)
Commit aa8be5aeead7ad894270aa025e7165169c1a54d2 by bjorn.a.pettersson
[Scalarizer] Avoid changing name of non-instructions

The "takeName" logic in ScalarizerVisitor::gather did not consider
that the value vector could refer to non-instructions, such as
global variables. This patch make sure that we avoid changing the
name of a value if it isn't an instruction.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D87685
The file was addedllvm/test/Transforms/Scalarizer/global-bug-2.ll
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp (diff)
Commit 635b87511ec3d6d2fa8f65a3ed1876f01367584e by sjoerd.meijer
[ARM][MVE] Tail-predication: use unsigned SCEV ranges for tripcount

Loop tripcount expressions have a positive range, so use unsigned SCEV ranges
for them.

Differential Revision: https://reviews.llvm.org/D87608
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp (diff)
Commit 6d40f35c9fa66d34db88542a77b8f185906ae20b by llvm-dev
AliasSetTracker.cpp - remove unnecessary includes. NFCI.

These are all directly included in AliasSetTracker.h
The file was modifiedllvm/lib/Analysis/AliasSetTracker.cpp (diff)
Commit 796c80526929e672efbdb2dfae1add1cc66c46b8 by llvm-dev
ProvenanceAnalysis.h - remove unnecessary AliasAnalysis.h include. NFCI.

Forward declare AAResults instead of the (old) AliasAnalysis type.
The file was modifiedllvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h (diff)
Commit 50d2a5d4c747855dc86a8b66a4a228abb66ca08e by llvm-dev
LoopCacheAnalysis.h - remove unnecessary includes. NFCI.

More remaining dependencies down to LoopCacheAnalysis.cpp
The file was modifiedllvm/lib/Analysis/LoopCacheAnalysis.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/LoopCacheAnalysis.h (diff)
Commit da104444fafbc8f657f06c2188ab2e8284563e3d by Louis Dionne
[libc++] Allow building without threads in standalone builds

Setting _LIBCPP_HAS_NO_THREADS is needed when building libcxxabi without
threads in standalone mode. This is useful when target WASM. Otherwise,
you get an error like "No thread API" when building libcxxabi.

It would be better to link against a properly-configured libc++ headers
CMake target when building libc++abi instead, but we don't generate such
targets yet.

Thanks to Matthew Bauer for the patch.

Differential Revision: https://reviews.llvm.org/D60743
The file was modifiedlibcxxabi/CMakeLists.txt (diff)
Commit 98e07b5596c8692c43770bc4e21a2b19467e35f7 by aaron
Restrict UnnecessaryCopyInitialization check to variables initialized from free functions without arguments

This restriction avoids cases where an alias is returned to an argument and
which could lead to to a false positive change.
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)
Commit db22e70d010744573df19d69ed3de5b84ea60d1c by flo
[ConstraintSolver] Add isConditionImplied helper.

This patch adds a isConditionImplied function that
takes a constraint and returns true if the constraint
is implied by the current constraints in the system.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D84545
The file was modifiedllvm/lib/Analysis/ConstraintSystem.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/ConstraintSystem.h (diff)
The file was modifiedllvm/unittests/Analysis/ConstraintSystemTest.cpp (diff)
Commit fe395aecd9e70b815e6490639098d815385f9932 by joshisameeran17
[Flang] Add GettingInvolved documentation page and sidebar.

Adds a new GettingInvolved page to documentation which provides details about
mailing list, chats and calls.

Adds a sidebar page which provides common links on
all documentation pages.
The links include:
-  Getting Started
-  Getting Involved
-  Github Repository
-  Bug Reports
-  Code Review

Depends on https://reviews.llvm.org/D87242

Reviewed By: richard.barton.arm

Differential Revision: https://reviews.llvm.org/D87270
The file was modifiedflang/docs/index.md (diff)
The file was modifiedflang/docs/conf.py (diff)
The file was addedflang/docs/_templates/layout.html
The file was addedflang/docs/GettingInvolved.md
The file was addedflang/docs/_templates/indexsidebar.html
Commit 3f411e97739ffbdca0077d1c4fdc9c1fc1819019 by sbc
[lld][WebAssembly] Fix --export-all when __stack_pointer is present

With https://reviews.llvm.org/D87537 we made it an error
to import or export a mutable global with the +mutable-globals
feature present.  However the scan was of the entire symbol
table rather than just the imports or exports and the filter
didn't match exaclyt meaning the `__stack_pointer` (a mutable
global) was always triggering with error when the `--export-all`
flag was used.

This also revealed that we didn't have any test coverage for
the `--export-all` flag.

This change fixes the current breakage on the emscripten-releases
roller.

Differential Revision: https://reviews.llvm.org/D87663
The file was modifiedlld/wasm/SyntheticSections.h (diff)
The file was addedlld/test/wasm/export-all.s
The file was modifiedlld/wasm/Writer.cpp (diff)
Commit 57752b1449440a7d034d2d1781f586c3c664712e by thakis
[gn build] (semi-manually) port 380e746bcca
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (diff)
Commit 802d21cdf08ea43d5c32924ac29c44b00c4a841f by flo
[ConstraintElimination] Add initial tests.
The file was addedllvm/test/Transforms/ConstraintElimination/dom.ll
The file was addedllvm/test/Transforms/ConstraintElimination/ugt-ule.ll
The file was addedllvm/test/Transforms/ConstraintElimination/geps.2d.ll
The file was addedllvm/test/Transforms/ConstraintElimination/geps.ll
The file was addedllvm/test/Transforms/ConstraintElimination/ule.ll
The file was addedllvm/test/Transforms/ConstraintElimination/loops.ll
The file was addedllvm/test/Transforms/ConstraintElimination/uge.ll
The file was addedllvm/test/Transforms/ConstraintElimination/i128.ll
The file was addedllvm/test/Transforms/ConstraintElimination/mixed.ll
Commit 2744c2e2957221c8e9379e2232790c3e56efd90d by oliver.stannard
[libcxx] Disable failing test for no-exceptions build

This test tries to create a 2 GiB std::string, catching the bad_alloc
exception if the allocation fails. However, for no-exceptions builds
there is no way for the error to be reported, so this crashes with a
null pointer dereference.

Differential revision: https://reviews.llvm.org/D87682
The file was modifiedlibcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp (diff)
Commit eb66b04cbecfbc971bf8b8abbb4c58dbd4a7564a by spatel
[InstCombine] improve test names; NFC

This is not a valid transform unless we can prove
that the program does not read errno after the pow
call and before some other function changes it.
The file was modifiedllvm/test/Transforms/InstCombine/pow-1.ll (diff)
Commit 7ffc9aa538dfa3facbbb09d3b0d517a59e967d0e by spatel
[InstCombine] add RUN to show miscompile of pow expansion; NFC

The code drops the sqrt op instead of bailing out,
so this is very wrong.
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll (diff)
Commit aa57c1c967078a8c02e7fc2c837853dbd7cc66f4 by spatel
[InstCombine] fix bug in pow expansion

There at least one other bug related to pow -> sqrt transforms:
http://lists.llvm.org/pipermail/llvm-dev/2020-September/145051.html
...but we probably can't solve that without fixing this first.
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll (diff)
Commit 46dc41e1ef9c38cc4cef0a995528bbf58d616a09 by llvmgnsyncbot
[gn build] Port a8058c6f8d1
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (diff)
Commit c0809f8d79045941d45c7bd60a12ddd0f6e0811a by llvmgnsyncbot
[gn build] Port cd4edf94cd4
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn (diff)
Commit c897a7fb3e2a5c200a3e87a92886eab20d9f7fc7 by herhut
[mlir][Standard] Add canonicalizer for dynamic_tensor_from_elements

This add canonicalizer for

- extracting an element from a dynamic_tensor_from_elements
- propagating constant operands to the type of dynamic_tensor_from_elements

Differential Revision: https://reviews.llvm.org/D87525
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/test/Transforms/canonicalize.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
Commit 2d8f0c05dbe76a31060a729928b9b9d7ebbf0c40 by clementval
[mlir][openacc] Add missing print of vector_length in parallel op

This patch adds the missing print for the vector_length in the parallel operation.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D87630
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp (diff)
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir (diff)
Commit 65c6ae3b6aceb934a76c5b10b244edeed80e9cac by llvm-dev
[Utils] isLegalToPromote - Fix missing null check before writing to FailureReason.

The FailureReason input parameter maybe null, we check this in all other cases in the method but this one was missed somehow.

Fixes clang-tidy warning.
The file was modifiedllvm/lib/Transforms/Utils/CallPromotionUtils.cpp (diff)
Commit 97a23ab28ad91d589e6c0bb5dee6ae78c154da8a by llvm-dev
AMDGPUPrintfRuntimeBinding.cpp - drop unnecessary casts/dyn_casts. NFCI.

GetElementPtrInst::Create returns a GetElementPtrInst* so we don't need to cast. Similarly IntegerType inherits from the Type base class.

Also, I've used auto* in a few places to cleanup the code.

Helps fix some clang-tidy warnings which saw the dyn_casts and warned that these can return null.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp (diff)
Commit e1669843f2aaf1e4929afdd8f125c14536d27664 by qiucofan
Revert "[SelectionDAG] Remove unused FP constant in getNegatedExpression"

2508ef01 doesn't totally fix the issue since we did not handle the case
when unused temporary negated result is the same with the result, which
is found by address sanitizer.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
The file was removedllvm/test/CodeGen/X86/pr47517.ll
Commit 65f6810d3a4b0ef1fdaad49e808459fbd133bb20 by stefanp
[LLD][PowerPC] Add support for R_PPC64_TPREL34 used in TLS Local Exec

Add Thread Local Storage Local Exec support to LLD. This is to support PC Relative addressing of Local Exec.
The patch teaches LLD to handle:
```
paddi r9, r13, x1@tprel
```
The relocation is:
```
R_PPC_TPREL34
```

Reviewed By: NeHuang, MaskRay

Differential Revision: https://reviews.llvm.org/D86608
The file was modifiedlld/ELF/Arch/PPC64.cpp (diff)
The file was addedlld/test/ELF/ppc64-tls-pcrel-le.s
Commit 85763e0758fbd238c81f233c6f9510e81c7de177 by gchatelet
[libc] Fix typo in platform_defs.h.inc

Differential Revision: https://reviews.llvm.org/D87687
The file was modifiedlibc/src/__support/CMakeLists.txt (diff)
The file was removedlibc/config/linux/platfrom_defs.h.inc
The file was addedlibc/config/linux/platform_defs.h.inc
Commit 00d6e7116c208b06e4c85bb58a40e76412be65a6 by gchatelet
[libc] Add missing LibcFPTestHelpers library

Differential Revision: https://reviews.llvm.org/D87690
The file was modifiedlibc/utils/MPFRWrapper/CMakeLists.txt (diff)
Commit e328456a9e6fa8c1ef05e183c1506ed837005847 by gchatelet
[libc] Add missing TableGen dependency

Differential Revision: https://reviews.llvm.org/D87689
The file was modifiedlibc/utils/LibcTableGenUtil/CMakeLists.txt (diff)
Commit a012bc4c42e4408a18e4c4d67306b79c576df961 by gabor.marton
[analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite

Add the BufferSize argument constraint to fread and fwrite. This change
itself makes it possible to discover a security critical case, described
in SEI-CERT ARR38-C.

We also add the not-null constraint on the 3rd arguments.

In this patch, I also remove those lambdas that don't take any
parameters (Fwrite, Fread, Getc), thus making the code better
structured.

Differential Revision: https://reviews.llvm.org/D87081
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp (diff)
The file was modifiedclang/test/Analysis/std-c-library-functions-arg-constraints.c (diff)
The file was modifiedclang/test/Analysis/analyzer-enabled-checkers.c (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff)
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator.h (diff)
The file was addedclang/test/Analysis/std-c-library-functions-vs-stream-checker.c
Commit 7df873f9c67099a209f0122a1f5411e701a9d425 by grimar
[llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken.

Currently we might derive the dynamic symbol table size from the DT_HASH hash table (using its `nchain` field).
It is possible to crash dumpers with a broken relocation that refers to a symbol with an index
that is too large. To trigger it, the inferred size of the dynamic symbol table should go past the end of the object.

This patch adds a size validation + warning.

Differential revision: https://reviews.llvm.org/D86923
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-histogram.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit 7c6f5b7fbf5a9eee7f3ef9192c354d1536a8f1c6 by dkszelethus
[analyzer] Add documentation for alpha.fuchsia.Lock and alpha.core.C11Lock

Differential Revision: https://reviews.llvm.org/D86532
The file was modifiedclang/docs/analyzer/checkers.rst (diff)
The file was modifiedclang/docs/analyzer/user-docs/CrossTranslationUnit.rst (diff)
Commit 8985755762a429573af2ce657274772339d3b9db by spatel
[InstSimplify] add limit folds for fmin/fmax

If the constant operand is the opposite of the min/max value,
then the result must be the other value.

This is based on the similar codegen transform proposed in:
D87571
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll (diff)
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll (diff)
Commit 39c8795141703a7d8313b2448d9d34e856df0b85 by Louis Dionne
[libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any

https://llvm.org/PR45099 notes (correctly) that we're inconsistent in memory
allocation in `std::any`. We allocate memory with `std::allocator<T>::allocate`,
construct with placement new, destroy by calling the destructor directly, and
deallocate by calling `delete`. Most of those are customizable by the user,
but in different ways.

The standard is silent on how these things are to be accomplished.
This patch makes it so we use `allocator_traits<allocator<T>>` for all
of these operations (allocate, construct, destruct, deallocate).
This is, at least, consistent.

Fixes https://llvm.org/PR45099.

Differential Revision: https://reviews.llvm.org/D81133
The file was modifiedlibcxx/include/any (diff)
The file was addedlibcxx/test/libcxx/utilities/any/allocator.pass.cpp
Commit 2b42d53e5ea4ee648cde5b2f73523f01f2405631 by llvm-dev
SLPVectorizer.h - remove unnecessary AliasAnalysis.h include. NFCI.

Forward declare AAResults instead of the (old) AliasAnalysis type.

Remove includes from SLPVectorizer.cpp that are already included in SLPVectorizer.h.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h (diff)
Commit 01f5fcd8290349265e6039ad9089b086ea783f00 by clementval
[mlir][openacc] Add loop op verifier

Add a verifier for the loop op in the OpenACC dialect. Check basic restriction
from 2.9 Loop construct from the OpenACC 3.0 specs.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D87546
The file was addedmlir/test/Dialect/OpenACC/invalid.mlir
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp (diff)
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td (diff)
Commit dd1d5488e47d0a89217dfd22a726c3d3ad2b4984 by dkszelethus
[analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist

The summary and very short discussion in D82122 summarizes whats happening here.

In short, liveness talks about variables, or expressions, anything that
has a value. Well, statements just simply don't have a one.

Differential Revision: https://reviews.llvm.org/D82598
The file was modifiedclang/lib/Analysis/LiveVariables.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp (diff)
The file was modifiedclang/test/Analysis/live-stmts.cpp (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp (diff)
The file was modifiedclang/docs/analyzer/developer-docs/DebugChecks.rst (diff)
The file was modifiedclang/include/clang/Analysis/Analyses/LiveVariables.h (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h (diff)
The file was modifiedclang/test/Analysis/live-stmts.mm (diff)
Commit ec2b0a51977861ed7be92c365ec2636fbf690528 by jasonliu
[XCOFF] Run resource intense test only on platforms where it makes sense

This is a follow up commit for the issue raised in
https://reviews.llvm.org/D86879
The file was modifiedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py (diff)
Commit 74a9c6d7e1c49cd0e3a8e8072b8aa03f7a84caff by Louis Dionne
[libc++] Add a benchmark for std::map operations

Before tackling http://llvm.org/PR38722, make sure there is a baseline
benchmark.

Differential Revision: https://reviews.llvm.org/D62778
The file was addedlibcxx/benchmarks/map.bench.cpp
Commit 243ffd0cade71ddca9b0dffec1c8e9084b0f7745 by carrot
[MachineBasicBlock] Fix a typo in function copySuccessor

The condition used to decide if need to copy probability should be reversed.

Differential Revision: https://reviews.llvm.org/D87417
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp (diff)
Commit 4ddd985ca941e48a016e8d7270921b4aa76afbe1 by Louis Dionne
NFC: Add whitespace change to .git-blame-ignore-revs
The file was modified.git-blame-ignore-revs (diff)
Commit a43e68b58b085797e2f1435765255ebd431db297 by llvm-dev
[X86][AVX] lowerShuffleWithSHUFPS - handle missed canonicalization cases.

PR47534 exposes a case where calling lowerShuffleWithSHUFPS directly from a derived repeated mask (found by is128BitLaneRepeatedShuffleMask) results in us using an non-canonicalized mask.

The missed canonicalization in this case is trivial - just commute the mask so we have more (swapped) LHS than RHS references so lowerShuffleWithSHUFPS can handle it.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll (diff)
Commit 127faae7529aee7e8508abebbc19212ce30bbf27 by Jonas Devlieghere
[lldb] Add -l/--language option to script command

Make it possible to run the script command with a different language
than currently selected.

  $ ./bin/lldb -l python
  (lldb) script -l lua
  >>> io.stdout:write("Hello, World!\n")
  Hello, World!

When passing the language option and a raw command, you need to separate
the flag from the script code with --.

  $ ./bin/lldb -l python
  (lldb) script -l lua -- io.stdout:write("Hello, World!\n")
  Hello, World!

Differential revision: https://reviews.llvm.org/D86996
The file was modifiedlldb/source/Commands/Options.td (diff)
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/lua-python.test
The file was modifiedlldb/test/Shell/ScriptInterpreter/Lua/lua.test (diff)
The file was modifiedlldb/source/Commands/CommandObjectScript.h (diff)
The file was modifiedlldb/source/Commands/CommandObjectScript.cpp (diff)
The file was addedlldb/test/Shell/ScriptInterpreter/Python/python.test
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp (diff)
Commit 4452cc4086aca1a424b2cd40da9fa120add522e7 by i
[VectorCombine] Don't vectorize scalar load under asan/hwasan/memtag/tsan

Similar to the tsan suppression in
`Utils/VNCoercion.cpp:getLoadLoadClobberFullWidthSize` (rL175034; load widening used by GVN),
the D81766 optimization should be suppressed under tsan due to potential
spurious data race reports:

  struct A {
    int i;
    const short s; // the load cannot be vectorized because
    int modify;    // it overlaps with bytes being concurrently modified
    long pad1, pad2;
  };
  // __tsan_read16 does not know that some bytes are undef and accessing is safe

Similarly, under asan, users can mark memory regions with
`__asan_poison_memory_region`. A widened load can lead to a spurious
use-after-poison error. hwasan/memtag should be similarly suppressed.

`mustSuppressSpeculation` suppresses asan/hwasan/tsan but not memtag, so
we need to exclude memtag in `vectorizeLoadInsert`.

Note, memtag suppression can be relaxed if the load is aligned to the
its granule (usually 16), but that is out of scope of this patch.

Reviewed By: spatel, vitalybuka

Differential Revision: https://reviews.llvm.org/D87538
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp (diff)
Commit 9c73e555104336109bb8327b80f3e6a42a17ef1d by phosek
Revert "[DebugInfo] Remove dots from getFilenameByIndex return value"

This is failing on Windows bots due to path separator normalization.

This reverts commit 042c23506869b4ae9a49d2c4bc5ea6e6baeabe78.
The file was modifiedlld/test/ELF/conflict-debug-variable2.s (diff)
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (diff)
The file was modifiedlld/test/COFF/undefined-symbol-dwarf.s (diff)
The file was modifiedlld/test/COFF/duplicate-dwarf.s (diff)
The file was modifiedlld/test/wasm/debuginfo.test (diff)
The file was modifiedllvm/test/tools/llvm-symbolizer/frame-fortran.s (diff)
Commit 3a59628f3cc26eb085acfc9cbdc97243ef71a6c5 by flo
Revert "[DSE] Switch to MemorySSA-backed DSE by default."

This reverts commit fb109c42d91c30c8c7497ef1fd7aff6f2969c6e7.

Temporarily revert due to a mis-compile pointed out at D87163.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll (diff)
The file was modifiedclang/test/CodeGenObjC/exceptions.m (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll (diff)
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll (diff)
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll (diff)
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll (diff)
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll (diff)
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll (diff)
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll (diff)
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll (diff)
The file was modifiedllvm/test/Other/new-pm-defaults.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll (diff)
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll (diff)
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll (diff)
Commit 03f1516d6075f42dce95bcf9fde3f6fde97abd35 by i
[MemoryBuffer] Revert unintended MemoryBuffer change from D86996

Fixes SupportsTest MemoryBufferTest.mmapVolatileNoNull
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp (diff)
Commit 3bc3983f229f9277d5bea3692b691f72ab8740dd by nemanja.i.ibm
Fix bot failure after ccb4124a4172

The test case has a check line for the option on a line that includes
the string lld surrounded by any characters. This causes failures
when said string is in the build path. What the test case presumably
means to test is the actual invocation of the LLD linker (i.e. a
linker that has that string as a suffix). This patch simply removes
the erroneous wildcard after the string.
The file was modifiedclang/test/Driver/hip-gz-options.hip (diff)
Commit 738bab743b5c6cfcf1a1feb116de9e35a3f1e326 by alexey.bataev
[OPENMP]Add support for allocate vars in untied tasks.

Local vars, marked with pragma allocate, mustbe allocate by the call of
the runtime function and cannot be allocated as other local variables.
Instead, we allocate a space for the pointer in private record and store
the address, returned by kmpc_alloc call in this pointer.
So, for untied tasks

```
#pragma omp task untied
{
   S s;
    #pragma omp allocate(s) allocator(allocator)
   s = x;
}
```
compiler generates something like this:
```
struct task_with_privates {
  S *ptr;
};

void entry(task_with_privates *p) {
  S *s = p->s;
  switch(partid) {
  case 1:
    p->s = (S*)kmpc_alloc();
    kmpc_omp_task();
    br exit;
  case 2:
    *s = x;
    kmpc_omp_task();
    br exit;
  case 2:
    ~S(s);
    kmpc_free((void*)s);
    br exit;
  }
exit:
}
```

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D86558
The file was modifiedclang/test/OpenMP/for_reduction_codegen_UDR.cpp (diff)
The file was modifiedclang/test/OpenMP/parallel_private_codegen.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
The file was modifiedclang/test/OpenMP/for_lastprivate_codegen.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp (diff)
The file was modifiedclang/test/OpenMP/parallel_firstprivate_codegen.cpp (diff)
The file was modifiedclang/test/OpenMP/allocate_codegen.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h (diff)
The file was modifiedclang/test/OpenMP/for_linear_codegen.cpp (diff)
The file was modifiedclang/test/OpenMP/task_codegen.cpp (diff)
Commit 54e1bf115429fa28f9783da92f310a4ea991e7c4 by aeubanks
[LoopAccessAnalysis][NewPM] Fix tests to work under NPM

Pin RUN lines with -analyze to legacy PM, add corresponding NPM RUN lines.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D87662
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/underlying-objects-2.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/pr31098.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-wrapping-pointers.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/independent-interleaved.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/backward-dep-different-types.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check3.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-off-by-one-error.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/safe-no-checks.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks-convergent.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/non-wrapping-pointer.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/underlying-objects-1.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/number-of-memchecks.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check2.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/forward-loop-carried.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/nullptr.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/pointer-with-unknown-bounds.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/safe-with-dep-distance.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check1.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-for-loop-invariant.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/resort-to-memchecks-only.ll (diff)
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll (diff)
Commit 6f66ad13c50ceeaee5c63b1ab47cb1d2a5390500 by aeubanks
[DependenceAnalysis][NewPM] Fix tests to work under NPM

All tests had corresponding NPM lines, simply pin non-NPM lines to legacy PM.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D87665
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/ExactSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Constraints.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Separability.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/AA.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Preliminary.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/DADelin.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/PR21585.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Banerjee.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Propagating.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Coupled.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/StrongSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/GCD.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/Invariant.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll (diff)
The file was modifiedllvm/test/Analysis/DependenceAnalysis/ZIV.ll (diff)
Commit e0c7641de65fb4dc27fcc44b2e4f2cd570e58bed by aeubanks
[RegionInfo][NewPM] Fix RegionInfo tests to work under NPM

Pin RUN lines with -analyze to legacy PM, add corresponding NPM RUN line if missing.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87658
The file was modifiedllvm/test/Analysis/RegionInfo/exit_in_condition.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_4.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/next.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/cond_loop.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/condition_complicated_2.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/nested_loops.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/outgoing_edge.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_5_c.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/condition_simple.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/multiple_exiting_edge.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/condition_complicated.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/block_sort.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/mix_1.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/unreachable_bb.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/paper.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/loops_1.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_2.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/two_loops_same_header.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_5_b.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/loop_with_condition.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/outgoing_edge_1.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_3.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/loops_2.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/condition_same_exit.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/infinite_loop_5_a.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/condition_forward_edge.ll (diff)
The file was modifiedllvm/test/Analysis/RegionInfo/bad_node_traversal.ll (diff)
Commit 3f69b2140f55ace97c3b7819eb9c19fc682da998 by aeubanks
[NewPM][opt] Fix -globals-aa not being recognized as alias analysis in NPM

Was missing MODULE_ALIAS_ANALYSIS, previously only FUNCTION_ALIAS_ANALYSIS was taken into account.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87664
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/test/Analysis/GlobalsModRef/comdat-ipo.ll (diff)
Commit 9853e84b54d2453f88490381c2ea37deeab1789d by aeubanks
[PostDominators][NewPM] Fix tests to work under NPM

Each test has a legacy PM pinned to legacy PM and a NPM RUN line.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87660
The file was modifiedllvm/test/Analysis/PostDominators/infinite-loop2.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/infinite-loop3.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr6047_a.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr6047_d.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr6047_b.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr1098.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr24415.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/pr6047_c.ll (diff)
The file was modifiedllvm/test/Analysis/PostDominators/infinite-loop.ll (diff)
Commit d9c9a74d0dc5b64c7c8496294ed962d7ce332337 by Louis Dionne
[libc++] Add missing friend keyword

Otherwise, we're declaring a non-static member function, and that
gives errors in C++11 because of the change of semantics between
C++11 and C++14 for non-const constexpr member functions.

This was always intended to be a friend declaration.
The file was modifiedlibcxx/include/iterator (diff)
Commit 05134877e64ded64f6c3064173b98893b1ac5fb5 by craig.topper
[X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info.

If we offset the pointer, we also need to offset the pointer info

Differential Revision: https://reviews.llvm.org/D87593
The file was modifiedllvm/test/CodeGen/X86/vmaskmov-offset.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit ca76d6e94a30b8fe11a63d3a55d3903c7cd25b5d by aeubanks
[Bugpoint][NewPM] Pin bugpoint to legacy PM

Bugpoint has lots of assumptions and hacks around the legacy PM, put off migrating it to NPM until later.
Fixes tests under BugPoint under NPM.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D87655
The file was modifiedllvm/tools/bugpoint/OptimizerDriver.cpp (diff)
The file was modifiedllvm/test/BugPoint/unsymbolized.ll (diff)
Commit 3d42d549554889ca182e1f3d31b23fa1383c6678 by flo
[ConstraintElimination] Add constraint elimination pass.

This patch is a first draft of a new pass that adds a more flexible way
to eliminate compares based on more complex constraints collected from
dominating conditions.

In particular, it aims at simplifying conditions of the forms below
using a forward propagation approach, rather than instcomine-style
ad-hoc backwards walking of def-use chains.

    if (x < y)
      if (y < z)
        if (x < z) <- simplify

or

    if (x + 2 < y)
        if (x + 1 < y) <- simplify assuming no wraps

The general approach is to collect conditions and blocks, sort them by
dominance and then iterate over the sorted list. Conditions are turned
into a linear inequality and add it to a system containing the linear
inequalities that hold on entry to the block. For blocks, we check each
compare against the system and see if it is implied by the constraints
in the system.

We also keep a stack of processed conditions and remove conditions from
the stack and the constraint system once they go out-of-scope (= do not
dominate the current block any longer).

Currently there still are the least the following areas for improvements

* Currently large unsigned constants cannot be added to the system
  (coefficients must be represented as integers)
* The way constraints are managed currently is not very optimized.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D84547
The file was addedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
The file was modifiedllvm/lib/Transforms/Scalar/CMakeLists.txt (diff)
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/ule.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/dom.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.2d.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/ConstraintSystem.h (diff)
The file was modifiedllvm/include/llvm/Transforms/Scalar.h (diff)
The file was modifiedllvm/lib/Transforms/Scalar/Scalar.cpp (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/ugt-ule.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/i128.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/loops.ll (diff)
The file was modifiedllvm/include/llvm/InitializePasses.h (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/mixed.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/uge.ll (diff)
Commit 32a61531b8181b1fdfa058803444f73ae6ab29ff by llvmgnsyncbot
[gn build] Port 3d42d549554
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn (diff)
Commit 79f22b1f99fd72db9a45c387258d289791f2b9c0 by gclayton
Fix .debug_aranges parsing.

Code was added that used llvm error checking to parse .debug_aranges, but the error check after parsing the DWARFDebugArangesSet was reversed and was causing no error to be returned with no valid address ranges being actually used. This meant we always would fall back onto creating out own address ranges by parsing the compile unit's ranges. This was causing problems for cases where the DW_TAG_compile_unit had a single address range by using a DW_AT_low_pc and DW_AT_high_pc attribute pair (not using a DW_AT_ranges attribute), but the .debug_aranges had correct split ranges. In this case we would end up using the single range for the compile unit that encompassed all of the ranges from the .debug_aranges section and would cause address resolving issues in LLDB where address lookups would fail for certain addresses.

Differential Revision: https://reviews.llvm.org/D87626
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp (diff)
The file was modifiedlldb/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp (diff)
Commit d158e786ccd33f8c9fc3ab008dd9463e252fa36a by aeubanks
[DemandedBits][NewPM] Pin some tests to legacy PM

All tests have corresponding NPM RUN lines.
-analyze doesn't work under NPM.
The file was modifiedllvm/test/Analysis/DemandedBits/intrinsics.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/basic.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/add.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/vectors.ll (diff)
Commit 558e5c31b66e114f164ad798de1f26b49042ed5e by aeubanks
[Dominators][NewPM] Pin tests with -analyze to legacy PM

-analyze isn't supported in NPM. All affected tests have corresponding
NPM RUN line.
The file was modifiedllvm/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll (diff)
The file was modifiedllvm/test/Analysis/Dominators/basic.ll (diff)
Commit 583c8ce30c12511a814a1db2923b9809f2a15c54 by Louis Dionne
[libc++] Fix broken test for std::any and allocators

The test was not allocating the right number of bytes. This is my fault,
not Marshall's, as I was the one to write the tests for 39c879514170.
The file was modifiedlibcxx/test/libcxx/utilities/any/allocator.pass.cpp (diff)
Commit 69f98311ca42127df92527b6fc3be99841a15f12 by development
[ASTMatchers] extract public matchers from const-analysis into own patch

The analysis for const-ness of local variables required a view generally useful
matchers that are extracted into its own patch.

They are decompositionDecl and forEachArgumentWithParamType, that works
for calls through function pointers as well.

This is a reupload of https://reviews.llvm.org/D72505, that already landed,
but had to be reverted due to a GCC crash on powerpc
(https://reviews.llvm.org/rG4c48ea68e491cb42f1b5d43ffba89f6a7f0dadc4)

Because this took a long time to adress, i decided to redo this patch and
have a clean workflow.
I try to coordinate with someone that has a PPC to apply this patch and
test for the crash. If everything is fine, I intend to just commit.
If the crash is still happening, i hope to at least find the cause.

Differential Revision: https://reviews.llvm.org/D87588
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp (diff)
The file was modifiedclang/docs/LibASTMatchersReference.html (diff)
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h (diff)
Commit f975ae4867d1fdfaba11a3ec7e479da8fbfd82d8 by zequanwu
[CodeGen][typeid] Emit typeinfo directly if type is known at compile-time

Differential Revision: https://reviews.llvm.org/D87425
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-typeid.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp (diff)
Commit 05aa997d511eed530305e2f3aa401584d0691186 by conanap
[PowerPC] Implement __int128 vector divide operations

This patch implements __int128 vector divide operations for ISA3.1.

Differential Revision: https://reviews.llvm.org/D85453
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedclang/lib/Headers/altivec.h (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/p10-vector-divide.ll (diff)
Commit d417488ef5a6cd1089900defcd6d5ae5a1d47fd4 by dancgr
[AArch64][SVE] Add lowering for llvm fsqrt

Add the functionality to lower fsqrt for passthru variant

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D87707
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fp.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
Commit f1a3ab904439a63b21ba1c4521765c46630687c6 by snehasishk
[clang] Add a command line flag for the Machine Function Splitter.

This patch adds a command line flag for the machine function splitter
(added in rG94faadaca4e1).

-fsplit-machine-functions
Split machine functions using profile information (x86 ELF). On
other targets an error is emitted. If profile information is not
provided a warning is emitted notifying the user that profile
information is required.

Differential Revision: https://reviews.llvm.org/D87047
The file was addedclang/test/Driver/fsplit-machine-functions.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp (diff)
Commit 7d6ca2ec57073b9eabe6808ff1fe0560586c5ffb by Matthew.Arsenault
InferAddressSpaces: Fix assert with unreachable code

Invalid IR in unreachable code is technically valid IR. In this case,
the address space of the value was never inferred, and we tried to
rewrite it with an invalid address space value which would assert.
The file was addedllvm/test/Transforms/InferAddressSpaces/AMDGPU/unreachable-code-assert.ll
The file was addedllvm/test/Transforms/InferAddressSpaces/AMDGPU/self-phi.ll
The file was modifiedllvm/lib/Transforms/Scalar/InferAddressSpaces.cpp (diff)
Commit 38ecd6161993ea9632efe0c0bf304bf6c2dee98f by Matthew.Arsenault
[TableGen] Fix invalid comparison function `SizeOrder` in `getMatchingSubClassWithSubRegs`

Building LLVM with -DEXPENSIVE_CHECKS fails with the following error
message with libstdc++ in debug mode:

Error: comparison doesn't meet irreflexive requirements,
assert(!(a < a)).

The patch fixes the comparison function SizeOrder by returning false
when comparing two equal items.
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp (diff)
Commit 516a01b5f36d4188778a34202cd11856d70ac808 by srhines
Implement __isOSVersionAtLeast for Android

Add the implementation of __isOSVersionAtLeast for Android. Currently,
only the major version is checked against the API level of the platform
which is an integer. The API level is retrieved by reading the system
property ro.build.version.sdk (and optionally ro.build.version.codename
to see if the platform is released or not).

Patch by jiyong@google.com

Bug: 150860940
Bug: 134795810
Test: m

Reviewed By: srhines

Differential Revision: https://reviews.llvm.org/D86596
The file was modifiedcompiler-rt/lib/builtins/os_version_check.c (diff)
Commit 00ba1a3de7faad80f7bb75d07a1a5da09a009895 by gchatelet
[libc] remove useless headers
The file was modifiedlibc/src/string/memcpy.h (diff)
The file was modifiedlibc/src/string/memset.h (diff)
Commit 3b7f5166bd11fc6cbf96597d26753e8c3fc0e6ab by huihuiz
[SLPVectorizer][SVE] Skip scalable-vector instructions before vectorizeSimpleInstructions.

For scalable type, the aggregated size is unknown at compile-time.
Skip instructions with scalable type to ensure the list of instructions
for vectorizeSimpleInstructions does not contains any scalable-vector instructions.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D87550
The file was addedllvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
Commit c19fda9aa073254c0979301bd57d875608329fa2 by gchatelet
[libc] use stddef instead of string header
The file was modifiedlibc/src/string/bzero.h (diff)
Commit 7d26d6a1b062f7ce820b02b39d102d5f8f15fa5f by Saleem Abdulrasool
Sema: add support for `__attribute__((__swift_bridged_typedef__))`

Extend the semantic attributes that clang processes for Swift to include
`swift_bridged_typedef`.  This attribute enables typedefs to be bridged
into Swift with a bridged name.

This is based on the work of the original changes in
https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c

Differential Revision: https://reviews.llvm.org/D87396
Reviewed By: Aaron Ballman
The file was addedclang/test/AST/attr-swift_bridged_typedef.m
The file was addedclang/test/SemaObjC/attr-swift_bridged_typedef.m
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test (diff)
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp (diff)
The file was addedclang/test/AST/attr-swift_bridged_typedef.mm
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
The file was modifiedclang/include/clang/Basic/Attr.td (diff)
Commit c3fd2a50ba1395b6c2240f6a688c6a1aa975a1fe by gchatelet
[libc] Remove special case for 8 and 16 bytes

They don't seem to gain much in real apps and its better to favor less branches and smaller code.
The file was modifiedlibc/src/string/memcpy.cpp (diff)
The file was modifiedlibc/src/string/x86/memcpy.cpp (diff)
Commit 609f5e050cea760694a46e126e5aa3f62660cae9 by diego.caballero
[mlir] Rename 'setInsertionPointAfter' to avoid ambiguity

Rename 'setInsertionPointAfter(Value)' API to avoid ambiguity with
'setInsertionPointAfter(Operation *)' for SingleResult operations which
implicitly convert to Value (see D86756).

Differential Revision: https://reviews.llvm.org/D87155
The file was modifiedmlir/include/mlir/IR/Builders.h (diff)
The file was modifiedmlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp (diff)
Commit 9e3842d60351f986d77dfe0a94f76e4fd895f188 by a.bataev
[OPENMP]Fix codegen for is_device_ptr component, captured by reference.

Need to map the component as TO instead of the literal, because need to
pass a reference to a component if the pointer is overaligned.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D84887
The file was modifiedclang/test/OpenMP/target_is_device_ptr_codegen.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp (diff)
Commit c3e6054b07be1340fb255abe1e3c85b911710059 by huberjn
[OpenMP] Additional Information for Libomptarget Mappings

Summary:
This patch adds additonal support for priting infromation from Libomptarget for
already existing maps and printing the final data mapped on the device at
device destruction.

Reviewers: jdoerfort gkistanova

Subscribers: guansong openmp-commits sstefan1 yaxunl

Tags: #OpenMP

Differential Revision: https://reviews.llvm.org/D87722
The file was modifiedopenmp/libomptarget/src/private.h (diff)
The file was modifiedopenmp/libomptarget/src/interface.cpp (diff)
The file was modifiedopenmp/libomptarget/src/device.cpp (diff)
Commit 7b4cc0961b142877794645576d2393af43c48069 by xun
[TSAN] Handle musttail call properly in EscapeEnumerator (and TSAN)

Call instructions with musttail tag must be optimized as a tailcall, otherwise could lead to incorrect program behavior.
When TSAN is instrumenting functions, it broke the contract by adding a call to the tsan exit function inbetween the musttail call and return instruction, and also inserted exception handling code.
This happend throguh EscapeEnumerator, which adds exception handling code and returns ret instructions as the place to insert instrumentation calls.
This becomes especially problematic for coroutines, because coroutines rely on tail calls to do symmetric transfers properly.
To fix this, this patch moves the location to insert instrumentation calls prior to the musttail call for ret instructions that are following musttail calls, and also does not handle exception for musttail calls.

Differential Revision: https://reviews.llvm.org/D87620
The file was addedllvm/test/Instrumentation/ThreadSanitizer/tsan_musttail.ll
The file was modifiedllvm/lib/Transforms/Utils/EscapeEnumerator.cpp (diff)
Commit 277de43d88c9d0d57235e3df617d462487e17e20 by Stanislav.Mekhanoshin
[AMDGPU] Unify intrinsic ret/nortn interface

We have a single noret intrinsic an a lot of special handling
around it. Declare it just as any other but do not define rtn
instructions itself instead.

Differential Revision: https://reviews.llvm.org/D87719
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd-with-ret.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.fadd.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd.ll (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.fadd-with-ret.ll
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fail-select-buffer-atomic-fadd.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/global-saddr-atomics.gfx908.ll (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/shl_add_ptr_global.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.atomic.fadd.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructions.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx908.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn-s-buffer-load.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.fadd.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.atomic.fadd.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx1030.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/buffer-intrinsics-mmo-offsets.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
Commit a4e35cc2ec1036832e7626191f8b9f0e3169477c by vkeles
GlobalISel: Add combines for G_TRUNC

https://reviews.llvm.org/D87050
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-trunc.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/xnor.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll (diff)
Commit ae726fecae9a1cc9c50de5a9f6e860056f82c556 by Jan Korous
[SourceManager] Explicitly check for potential iterator underflow

Differential Revision: https://reviews.llvm.org/D86231
The file was modifiedclang/lib/Basic/SourceManager.cpp (diff)
Commit 61fc10d6a520f267e11009ce8fce88d73615796b by mtrofin
[ThinLTO] add post-thinlto-merge option to -lto-embed-bitcode

This will embed bitcode after (Thin)LTO merge, but before optimizations.
In the case the thinlto backend is called from clang, the .llvmcmd
section is also produced. Doing so in the case where the caller is the
linker doesn't yet have a motivation, and would require plumbing through
command line args.

Differential Revision: https://reviews.llvm.org/D87636
The file was modifiedllvm/lib/LTO/LTOBackend.cpp (diff)
The file was addedclang/test/CodeGen/Inputs/start-lib2.ll
The file was modifiedllvm/test/LTO/X86/embed-bitcode.ll (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was addedclang/test/CodeGen/thinlto_embed_bitcode.ll
The file was addedclang/test/CodeGen/Inputs/start-lib1.ll
The file was modifiedllvm/test/LTO/X86/Inputs/start-lib1.ll (diff)
The file was modifiedllvm/include/llvm/LTO/LTOBackend.h (diff)
Commit 97203cfd6bae0388f9dd22ddca592737324a2c72 by aditya_nandakumar
[GISel] Add new GISel combiners for G_MUL

https://reviews.llvm.org/D87668

Patch adds two new GICombinerRules, one for G_MUL(X, 1) and another for G_MUL(X, -1).
G_MUL(X, 1) is an identity combine, and G_MUL(X, -1) gets replaced with G_SUB(0, X).
Patch additionally adds new combiner tests for the AArch64 target to test these
new combiner rules, as well as updates AMDGPU GISel tests.

Patch by mkitzan
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-mul.mir
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
Commit 2ea4c2c598b7c6f95b5d4db747bdf72770e586df by aktoon
[BFI] Make BFI information available through loop passes inside LoopStandardAnalysisResults

~~D65060 uncovered that trying to use BFI in loop passes can lead to non-deterministic behavior when blocks are re-used while retaining old BFI data.~~

~~To make sure BFI is preserved through loop passes a Value Handle (VH) callback is registered on blocks themselves. When a block is freed it now also wipes out the accompanying BFI entry such that stale BFI data can no longer persist resolving the determinism issue. ~~

~~An optimistic approach would be to incrementally update BFI information throughout the loop passes rather than only invalidating them on removed blocks. The issues with that are:~~
~~1. It is not clear how BFI information should be incrementally updated: If a block is duplicated does its BFI information come with? How about if it's split/modified/moved around? ~~
~~2. Assuming we can address these problems the implementation here will be a massive undertaking. ~~

~~There's a known need of BFI in LICM analysis which requires correct but not incrementally updated BFI data. A follow-up change can register BFI in all loop passes so this preserved but potentially lossy data is available to any loop pass that wants it.~~

See: D75341 for an identical implementation of preserving BFI via VH callbacks. The previous statements do still apply but this change no longer has to be in this diff because it's already upstream 😄 .

This diff also moves BFI to be a part of LoopStandardAnalysisResults since the previous method using getCachedResults now (correctly!) statically asserts (D72893) that this data isn't static through the loop passes.

Testing
Ninja check

Reviewed By: asbirlea, nikic

Differential Revision: https://reviews.llvm.org/D86156
The file was modifiedllvm/lib/Transforms/Utils/LoopVersioning.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopLoadElimination.cpp (diff)
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnswitch.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopDistribute.cpp (diff)
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h (diff)
The file was modifiedllvm/include/llvm/Analysis/LoopAnalysisManager.h (diff)
Commit 50ee05ab65db2ab262436ee0f92f7888607a89f3 by alexandre.ganea
[llvm][cmake] Change LLVM_INTEGRATED_CRT_ALLOC to a path instead of a boolean

Differential Revision: https://reviews.llvm.org/D87609
The file was modifiedllvm/CMakeLists.txt (diff)
Commit 79378b1b757d5c981e60320f5a735f3e356557a0 by vkeles
GlobalISel: Fix a failing combiner test

test/CodeGen/AArch64/GlobalISel/combine-trunc.mir was failing
due to the different order for evaluating function arguments.
This patch updates the related code to fix the issue.
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
Commit 91332c4dbb033f7d1ffa1a9632012d88b08661c4 by aeubanks
[CGSCC][NewPM] Fix adding mutually recursive new functions

When adding a new function via addNewFunctionIntoRefSCC(), it creates a
new node and immediately populates the edges. Since populateSlow() calls
G->get() on all referenced functions, it will create a node (but not
populate it) for functions that haven't yet been added. If we add two
mutually recursive functions, the assert that the node should never have
been created will fire when the second function is added. So here we
remove that assert since the node may have already been created (but not
yet populated).

createNode() is only called from addNewFunctionInto{,Ref}SCC().

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

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D87623
The file was modifiedllvm/unittests/Analysis/CGSCCPassManagerTest.cpp (diff)
The file was modifiedllvm/lib/Analysis/LazyCallGraph.cpp (diff)
Commit ffe9986de4297fdeddcd0b0b9bac2a28c45f661b by Jessica Paquette
[AArch64][GlobalISel] Refactor + improve CMN, ADDS, and ADD emit functions

These functions were extremely similar:

- `emitADD`
- `emitADDS`
- `emitCMN`

Refactor them a little, introducing a more generic `emitInstr` function to
do most of the work.

Also add support for the immediate + shifted register addressing modes in each
of them.

Update select-uaddo.mir to show that selecing ADDS now supports folding
immediates + shifts. (I don't think this can impact CMN, because the CMN checks
require a G_SUB with a non-constant on the RHS.)

This is around a 0.02% code size improvement on CTMark at -O3.

Differential Revision: https://reviews.llvm.org/D87529
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-uaddo.mir (diff)
Commit 2c391a5a14aeb34e970aba85c5aa540656fe47ca by aktoon
[LICM] Make Loop ICM profile aware again

D65060 was reverted because it introduced non-determinism by using BFI counts from already freed blocks. The parent of this revision fixes that by using a VH callback on blocks to prevent this from happening and makes sure BFI data is passed correctly in LoopStandardAnalysisResults.

This re-introduces the previous optimization of using BFI data to prevent LICM from hoisting/sinking if the instruction will end up moving to a colder block.

Internally at Facebook this change results in a ~7% win in a CPU related metric in one of our big services by preventing hoisting cold code into a hot pre-header like the added test case demonstrates.

Testing:
ninja check

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87551
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/test/Transforms/LICM/sink.ll (diff)
The file was addedllvm/test/Transforms/LICM/Inputs/no-hoist-prof.prof
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was addedllvm/test/Transforms/LICM/no-hoist-prof.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/LoopUtils.h (diff)
Commit 056534dc2b15ed1d276bead76f054cc7ac9d2bf1 by aktoon
SVML support for log10, sqrt

Although LLVM supports vectorization of loops containing log10/sqrt, it did not support using SVML implementation of it. Added support so that when clang is invoked with -fveclib=SVML now an appropriate SVML library log2 implementation will be invoked.

Follow up on: https://reviews.llvm.org/D77114

Tests:
Added unit tests to svml-calls.ll, svml-calls-finite.ll. Can be run with llvm-lint.
Created a simple c++ file that tests log10/sqrt, and used clang+ to build it, and output final assembly.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D87169
The file was modifiedllvm/test/Transforms/Util/add-TLI-mappings.ll (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/svml-calls-finite.ll (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/svml-calls.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/VecFuncs.def (diff)
Commit f7aa1563eb5ff00416fba373073ba19832b6fc34 by aeubanks
[LowerSwitch][NewPM] Port lowerswitch to NPM

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D87726
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedllvm/lib/Transforms/Utils/FixIrreducible.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/UnifyLoopExits.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp (diff)
The file was modifiedllvm/include/llvm/InitializePasses.h (diff)
The file was addedllvm/include/llvm/Transforms/Utils/LowerSwitch.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/LowerSwitch.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/StructurizeCFG.cpp (diff)
The file was modifiedllvm/test/Transforms/LowerSwitch/feature.ll (diff)
Commit ba12e77ec16b38a4498610c6b8cdeb1a7e8a6aae by aeubanks
[NewPM] Port strip* passes to NPM

strip-nondebug and strip-debug-declare have no existing associated tests

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D87639
The file was addedllvm/include/llvm/Transforms/IPO/StripSymbols.h
The file was modifiedllvm/lib/Transforms/IPO/StripSymbols.cpp (diff)
The file was modifiedllvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll (diff)
The file was modifiedllvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
Commit 5f4abb7fab1c6a87f059ed8732fd12b237f4805d by kparzysz
[Hexagon] Replace incorrect pattern for vpackl HWI32 -> HVi8

V6_vdealb4w is not correct for pairs, use V6_vpackeh/V6_vpackeb instead.
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/widen-trunc.ll (diff)
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/isel-widen-truncate-pair.ll (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonPatternsHVX.td (diff)
Commit 1b88845ce1b7731a062c3d1fcc80d201c70e4a44 by rnk
[PDB] Drop LF_PRECOMP from debugTypes earlier

This is a minor simplification to avoid firing up a BinaryStreamReader
and CVType parser.
The file was modifiedlld/COFF/DebugTypes.cpp (diff)
The file was modifiedlld/COFF/InputFiles.cpp (diff)
Commit 3b3ca5c989f9f8e29e4b8b10e77eb08c2b822533 by asbirlea
Fix test after D86156.
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll (diff)
Commit 2ce1a697f037469e737db1ad41dfa14ec653ec53 by craig.topper
[X86] Always use 16-bit displacement in 16-bit mode when there is no base or index register.

Previously we only did this if the immediate fit in 16 bits, but
the GNU assembler seems to just truncate.

Fixes PR46952
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp (diff)
The file was modifiedllvm/test/MC/X86/x86-16.s (diff)
Commit 3b38062d1c8b6965ded5b6bc686db63f1a59e818 by aeubanks
[NewPM] Fix 2003-02-19-LoopInfoNestingBug.ll under NPM

Also move it to a more appropriate directory.
The file was addedllvm/test/Analysis/LoopInfo/2003-02-19-LoopInfoNestingBug.ll
The file was removedllvm/test/Other/2003-02-19-LoopInfoNestingBug.ll
Commit b1b187a1386e5d7bfecb2a63dc8c654583684e22 by aeubanks
[NewPM][SCEV] Fix constant-fold-gep.ll under NPM
The file was modifiedllvm/test/Other/constant-fold-gep.ll (diff)
Commit bb371f8ce8c2fc77e0ab6c87d253a1d1db00d0eb by aeubanks
[NewPM] Fix opt-hot-cold-split.ll under NPM

Pin to legacy PM, there are already NPM RUN lines.
The file was modifiedllvm/test/Other/opt-hot-cold-split.ll (diff)
Commit 37c5dbb31a2fa9aa6618efe56ab0d6cd8f358957 by joker.eph
Fully qualify some more namespace in MLIR ODS to be more friendly to dialects not defined under the mlir namespace (NFC)
The file was modifiedmlir/include/mlir/Interfaces/SideEffectInterfaces.td (diff)
Commit 00f09dd4c13d7e86d07728ba03700a18e9013adf by serguei.katkov
[InstCombine] Add tests for statepoint simplification

This tests increase coverage for change introduced in D85959

Reviewers: reames, reames
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D87224
The file was addedllvm/test/Transforms/InstCombine/statepoint-cleanup.ll
Commit 8a04cdb510c89b8c6419d6ce1e98967d7ac9abb2 by mkazantsev
[Test] Add signed version of a test
The file was modifiedllvm/test/Transforms/IndVarSimplify/predicated_ranges.ll (diff)
Commit 96c6d012dfe2492891d0f0450dd7cd5f3c1ca88c by Zinovy Nis
[clang-tidy] Fix crash in modernize-use-noexcept on uninstantiated throw class

Bug: https://bugs.llvm.org/show_bug.cgi?id=47446

Differential Revision: https://reviews.llvm.org/D87627
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-noexcept-opt.cpp (diff)
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp (diff)
Commit 757ac4ccfb8b024454b4f445a2b5c8985da5dc8a by davelee.com
[lldb] Reword CompilerType docstring to not say "generic type"

Since "generic type" has a precise meaning in some languages, reword the docstring of `CompilerType` to avoid ambiguity.

Differential Revision: https://reviews.llvm.org/D87633
The file was modifiedlldb/include/lldb/Symbol/CompilerType.h (diff)
Commit 9c40495a35a2cac89dd72db54892d6bd7a2abf0d by uday
[MLIR][NFC] Value print update for block arguments

Emit some more information when printing/dumping `Value`s of
`BlockArgument` kind. This is purely to help for debugging purposes.

Differential Revision: https://reviews.llvm.org/D87670
The file was modifiedmlir/lib/IR/AsmPrinter.cpp (diff)
Commit 291bfff5dbb70360730e91b4019f8080e4e3d7f5 by jano.vesely
libclc: Add a __builtin to let SPIRV targets select between SW and HW FMA

Reviewer: jenatali jvesely
Differential Revision: https://reviews.llvm.org/D85910
The file was modifiedlibclc/spirv/lib/math/fma.cl (diff)
The file was modifiedlibclc/spirv64/lib/math/fma.cl (diff)
The file was modifiedlibclc/generic/lib/math/math.h (diff)
Commit 8ea7ef8eda93aa144c339275fc6d9db2615a0118 by mtrofin
[ThinLTO] Relax thinlto_embed_bitcode.ll check

Fixes fuscia test [1] - the thinlto annotations may not always be there.

[1] http://lab.llvm.org:8011/builders/fuchsia-x86_64-linux/builds/11312
The file was modifiedclang/test/CodeGen/thinlto_embed_bitcode.ll (diff)
Commit 3045b3c3b5dbc4192b9a4057ae165f238b84ddf6 by craig.topper
[X86] Add test case for non-power of 2 scatter. NFC
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll (diff)
Commit 41f4cd60d54d94e8dac4bbd8d9961dc8ad4a64fc by craig.topper
[X86] Don't scalarize gather/scatters with non-power of 2 element counts. Widen instead.

We can pad the mask with zeros in order to widen. We already do
this for power 2 types that are smaller than a legal type.
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll (diff)
Commit fc82006331228b6b16ea47cd8093ac145739044b by asbirlea
[MemorySSA] Set MustDominate to true for PhiTranslation.
The file was modifiedllvm/include/llvm/Analysis/MemorySSA.h (diff)
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll (diff)
Commit 794467b916e87e8fb09380c67d0d433a29d93a2f by martin
[llvm-rc] Allow omitting components from VERSIONINFO versions

MS rc.exe doesn't require specifying all 4 components.

Differential Revision: https://reviews.llvm.org/D87570
The file was modifiedllvm/test/tools/llvm-rc/tag-versioninfo.test (diff)
The file was modifiedllvm/test/tools/llvm-rc/Inputs/tag-versioninfo.rc (diff)
The file was modifiedllvm/tools/llvm-rc/ResourceScriptParser.cpp (diff)
Commit 74d7356fc63bd1f42bbb20b793f21decf3c98a6e by martin
[llvm-rc] Update a comment. NFC.

Fix a typo and mention one missing step.
The file was modifiedllvm/tools/llvm-rc/ResourceFileWriter.cpp (diff)
Commit c913f6dce69513b430f705d5a1f4e745f5d0a27e by martin
[llvm-rc] Lowercase the option definitions. NFC.

This matches how such options are most commonly defined in other tools.

This was pointed out in an earlier review a few months ago, that
the llvm-rc td entries felt shouty.

The INCLUDE option is renamed to includepath, to avoid clashing with
the tablegen include directive.
The file was modifiedllvm/tools/llvm-rc/Opts.td (diff)
The file was modifiedllvm/tools/llvm-rc/llvm-rc.cpp (diff)
Commit 4171d5c30ad32282e6ca9027aeff01ef5ff2461b by Xing
[obj2yaml] Add support for dumping the .debug_addr(v5) section.

This patch adds support for dumping the .debug_addr(v5) section to
obj2yaml.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87601
The file was modifiedllvm/tools/obj2yaml/obj2yaml.h (diff)
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp (diff)
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-addr.yaml
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp (diff)
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h (diff)
Commit d3d76039002cd879f7aba37f88fc7312cfc95531 by asbirlea
[MemorySSA] Report unoptimized as None, not MayAlias.
The file was modifiedllvm/test/Analysis/MemorySSA/optimize-use.ll (diff)
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/MemorySSA.h (diff)
The file was modifiedllvm/test/Analysis/MemorySSA/pr43427.ll (diff)
The file was modifiedllvm/unittests/Analysis/MemorySSATest.cpp (diff)
Commit 94f7d3dba3c0a6ffd3e8a3f87ae849890578cd88 by mkazantsev
[Test] Some more potential range check elimination opportunities
The file was modifiedllvm/test/Transforms/IndVarSimplify/predicated_ranges.ll (diff)
Commit af56be339f8c9660747794cc6755384154602535 by richard.barton
[flang] Fix docs build

Apply a local fix to an issue with recommonmark's AutoStructify extension
when used with certain versions of sphinx.

See https://github.com/readthedocs/recommonmark/issues/93

Reviewed By: hans

Differential Revision: https://reviews.llvm.org/D87714
The file was modifiedflang/docs/conf.py (diff)
Commit 6985135a43b62db2defc95367432069c9fddd094 by mkazantsev
[Test] Add positive range checks tests in addition to negative
The file was modifiedllvm/test/Transforms/IndVarSimplify/predicated_ranges.ll (diff)
Commit b42fa0c040961b3704e826ddc969c0e98238c3ba by Vitaly Buka
Revert "[Asan] Fix false leak report"

Additional investigated confirmed that issue is not about
AddrIsInside, but missing registers.

This reverts commit 9d01612db48fa27d18c6320974b8d711572e5c67.
The file was removedcompiler-rt/test/asan/TestCases/redzone_noleak.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit a8a85166d81f573af7ff325fdf93dd8bdfdeddbf by Vitaly Buka
Revert "[Asan] Accept __lsan_ignore_object for redzone pointer"

We still keep AddrIsInside.

This reverts commit 1d70984fa220f966ddcecd7906c5f10368fe1b93.
The file was modifiedcompiler-rt/test/asan/TestCases/lsan_annotations.cpp (diff)
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
Commit 070b96962f517772fff4bf3c27cc825b46a136b5 by yvan.roux
[ARM][MachineOutliner] Add calls handling.

Handles calls inside outlined regions, by saving and restoring the link
register.

Differential Revision: https://reviews.llvm.org/D87136
The file was modifiedllvm/test/CodeGen/ARM/machine-outliner-default.mir (diff)
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp (diff)
Commit d427df6369f1d229a9f498b4dc621433ada380d2 by platonov.aleksandr
[clangd] Don't use zlib when it's unavailable.

Without this patch `clangd` crashes at try to load compressed string table when `zlib` is not available.
Example:
- Build `clangd` with MinGW (`zlib` found)
- Build index
- Build `clangd` with Visual Studio compiler (`zlib` not found)
- Try to load index

Reviewed By: sammccall, adamcz

Differential Revision: https://reviews.llvm.org/D87673
The file was modifiedclang-tools-extra/clangd/index/Serialization.cpp (diff)
Commit ef0b9f3307a1fa1c82b34098213ec854c1b5e608 by samuel.tebbs
[ARM][LowOverheadLoops] Combine a VCMP and VPST into a VPT

This patch combines a VCMP followed by a VPST into a VPT, which has the
same semantics as the combination of the former two.
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vcmp-vpst-combination.ll
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
Commit cb1ef0eaff8726a8c1fe4b8440f6734cbbe91630 by sjoerd.meijer
Follow up rG635b87511ec3: forgot to add/commit the new test file. NFC.
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-forced.ll
Commit 159abe09d25b19c24bf23ce50757987c0f25abe4 by AlokKumar.Sharma
[DebugInfo][flang] DISubrange support for fortran assumed size array

This is needed to support assumed size array of fortran which can have missing upperBound/count
, contrary to current DISubrange support.
Example:
subroutine sub (array1, array2)
  integer :: array1 (*)
  integer :: array2 (4:9, 10:*)

  array1(7:8) = 9
  array2(5, 10) = 10
end subroutine
Now the validation check is relaxed for fortran.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D87500
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.h (diff)
The file was addedllvm/test/DebugInfo/X86/assumed_size_array.ll
The file was modifiedllvm/lib/IR/Verifier.cpp (diff)
Commit ef4851742de5e64a1ba9de51e375ac503d2d7ecb by grimar
[llvm-readobj][test] - Address a forgotten review comment for D86923.

Seems I've forgot to address this bit and this looks like a reason
of a failture on mac (http://45.33.8.238/mac/20491/step_11.txt).
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test (diff)
Commit 3a0a2a6347f5a79ebfba2cc2b763dd02001d9baa by kbobyrev
[clangd] Implement hot index reloading for clangd-index-server

This patch adds a mechanism to load new versions of index into
clangd-index-server using SwapIndex and FileStatus information about last
modification time without downtime.

Reviewed By: kadircet

Differential Revision: https://reviews.llvm.org/D87450
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp (diff)
Commit 6040e2a6d97d9f9445715dfc468c3112f40e2588 by andrew.ng
[Support] Add GlobPattern::isTrivialMatchAll()

GlobPattern::isTrivialMatchAll() returns true for the GlobPattern "*"
which will match all inputs.

This can be used to avoid performing expensive preparation of the input
for match() when the result of the match will always be true.

Differential Revision: https://reviews.llvm.org/D87468
The file was modifiedllvm/include/llvm/Support/GlobPattern.h (diff)
The file was modifiedllvm/unittests/Support/GlobPatternTest.cpp (diff)
Commit 77152a6b7ac07ce65568d7c69305653e7cad4bb0 by andrew.ng
[LLD][ELF] Optimize linker script filename glob pattern matching NFC

Optimize the filename glob pattern matching in
LinkerScript::computeInputSections() and LinkerScript::shouldKeep().

Add InputFile::getNameForScript() which gets and if required caches the
Inputfile's name used for linker script matching. This avoids the
overhead of name creation that was in getFilename() in LinkerScript.cpp.

Add InputSectionDescription::matchesFile() and
SectionPattern::excludesFile() which perform the glob pattern matching
for an InputFile and make use of a cache of the previous result. As both
computeInputSections() and shouldKeep() process sections in order and
the sections of the same InputFile are contiguous, these single entry
caches can significantly speed up performance for more complex glob
patterns.

These changes have been seen to reduce link time with --gc-sections by
up to ~40% with linker scripts that contain KEEP filename glob patterns
such as "*crtbegin*.o".

Differential Revision: https://reviews.llvm.org/D87469
The file was modifiedlld/ELF/InputFiles.cpp (diff)
The file was modifiedlld/ELF/ARMErrataFix.h (diff)
The file was modifiedlld/include/lld/Common/Strings.h (diff)
The file was modifiedlld/ELF/InputFiles.h (diff)
The file was modifiedlld/ELF/Relocations.h (diff)
The file was modifiedlld/ELF/AArch64ErrataFix.h (diff)
The file was modifiedlld/ELF/LinkerScript.cpp (diff)
The file was modifiedlld/ELF/LinkerScript.h (diff)
Commit a8d02015fcb783d5fdf1e09edd1b9e152c5d19b7 by grimar
[llvm-readobj][test] - Improve section-symbols.test

`section-symbols.test` tests how we print section symbols in
different situations.

We might have 2 different cases:
1) A named STT_SECTION symbol.
2) An unnamed STT_SECTION symbol.

Usually section symbols have no name and then `--symbols` uses their
section names when prints them. If symbol has a name, then it is used.

For `--relocations` we also want to have this logic probably,
but currently we always ignore symbol names and always use section names.
It is not consistent with GNU readelf and with our logic for `--symbols`.

This patch refines testing to document the existent behavior and improve
coverage.

Differential revision: https://reviews.llvm.org/D87612
The file was modifiedllvm/test/tools/llvm-readobj/ELF/section-symbols.test (diff)
Commit ac2717bfdd0d36ce4b5c33661045a36db3c0cc45 by samuel.tebbs
[ARM][LowOverheadLoops] Fix tests after ef0b9f3

ef0b9f3 didn't update the tests that it affected.
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-vcmp.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/iv-two-vcmp.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll (diff)
Commit a909a84ef2d9220242512b8be1206ee3d9b3d8b9 by kbobyrev
[clang-tidy] Improve documentation on Clangd integration

The integration is already complete; this patch updates information as well as
suggests using Clang-Tidy via Clangd integration that is vastly available
in most editors through LSP client plugins.

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D87686
The file was modifiedclang-tools-extra/docs/clang-tidy/Integrations.rst (diff)
Commit 3f682611ab26442fb2a5fd49f44c6f032150a2e6 by llvm-dev
[DAG] Remover getOperand() call. NFCI.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
Commit 3e5a4ef51a1d0def10525b2059f5cdab0cb0ae8d by kbobyrev
Fix table formatting after D87686
The file was modifiedclang-tools-extra/docs/clang-tidy/Integrations.rst (diff)
Commit 86172ce378169743bf82d9e69e6f428ec8ee81d1 by sam.parker
[ARM] Add more validForTailPredication

Modify the unit test to inspect all MVE instructions and mark the
load/store/move of vpr/p0 as valid, as well as the remaining scalar
shifts.

Differential Revision: https://reviews.llvm.org/D87753
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td (diff)
The file was modifiedllvm/lib/Target/ARM/ARMInstrVFP.td (diff)
The file was modifiedllvm/unittests/Target/ARM/MachineInstrTest.cpp (diff)
Commit a63b2a4614b6b776cffcc0ab033e288024aa73b9 by sam.parker
[ARM] Fix tail predication predicate tracking

Clear the CurrentPredicate when we find an instruction which would
completely overwrite the VPR. This fix essentially means we're back
to not really being able to handle VPT instructions when tail
predicating.

Differential Revision: https://reviews.llvm.org/D87610
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/remat-vctp.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir (diff)
Commit 7029e5d4ca20d20982da8efe89de27acd8d7d75b by adamcz
[clangd] Actually parse Index section of the YAML file.

This fixes a bug in dbf486c0de92c76df77c1a1f815cf16533ecbb3a, which
introduced the Index section of the config, but did not register the
parse method, so it didn't work in a YAML file (but did in a test).

Differential Revision: https://reviews.llvm.org/D87710
The file was modifiedclang-tools-extra/clangd/ConfigYAML.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp (diff)
Commit 779a2a2edcea89ad5f5bf99eeac90516542159d9 by adam.balogh
[clang-tidy] Crash fix for bugprone-misplaced-pointer-arithmetic-in-alloc

Placement new operators on non-object types cause crash in
`bugprone-misplaced-pointer-arithmetic-in-alloc`. This patch fixes this
issue.

Differential Revision: https://reviews.llvm.org/D87683
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-misplaced-pointer-arithmetic-in-alloc.cpp (diff)
The file was modifiedclang-tools-extra/clang-tidy/bugprone/MisplacedPointerArithmeticInAllocCheck.cpp (diff)
Commit dbd45b2db8e0c396fa20d4c72734c4f31f54af96 by adam.balogh
[ASTMatchers] Fix `hasBody` for the descendants of `FunctionDecl`

//AST Matcher// `hasBody` is a polymorphic matcher that behaves
differently for loop statements and function declarations. The main
difference is the for functions declarations it does not only call
`FunctionDecl::getBody()` but first checks whether the declaration in
question is that specific declaration which has the body by calling
`FunctionDecl::doesThisDeclarationHaveABody()`. This is achieved by
specialization of the template `GetBodyMatcher`. Unfortunately template
specializations do not catch the descendants of the class for which the
template is specialized. Therefore it does not work correcly for the
descendants of `FunctionDecl`, such as `CXXMethodDecl`,
`CXXConstructorDecl`, `CXXDestructorDecl` etc. This patch fixes this
issue by using a template metaprogram.

The patch also introduces a new matcher `hasAnyBody` which matches
declarations which have a body present in the AST but not necessarily
belonging to that particular declaration.

Differential Revision: https://reviews.llvm.org/D87527
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h (diff)
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h (diff)
Commit 4abb5cd83902f1351db473c720ee0b95ebdcb338 by llvm-dev
CGBlocks.cpp - assert non-null CGF pointer. NFCI.

Fixes static analyzer warning.
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp (diff)
Commit aa1e15dda9e5941611f2183ba34087c2d02beb1a by llvm-dev
TokenAnnotator.cpp - remove useless pointer null test. NFCI.

We dereference the Left pointer throughout the parseParens() function apart from this single case - just add an non-null assertion and drop the check.

Fixes clang static analayzer null dereference warning.
The file was modifiedclang/lib/Format/TokenAnnotator.cpp (diff)
Commit 439f5749d978acfa69f1a2d20c797c3fc0d97989 by llvm-dev
[AST] ASTReader::ReadModuleMapFileBlock - assert non-null Module. NFCI.

At this stage the Module* shouldn't be null - add an assert to fix a clang static analyzer warning.
The file was modifiedclang/lib/Serialization/ASTReader.cpp (diff)
Commit f5c7102dbc7223e98ce5c0f02b343ed92062987c by sam.mccall
Update dead links to Itanium and ARM ABIs. NFC
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp (diff)
Commit 0a0abc0ede0ff8015e30aae89a3f89c7dc5b3f0f by llvm-dev
[Sema] isOpenMPCapturedDecl - assert we locate CapturedRegionScopeInfo. NFCI.

Fixes clang static analayzer null dereference warning.
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
Commit 1c421046d742102e7016567d41a9db6a1fb61906 by sam.parker
[RDA] Fix getUniqueReachingDef for self loops

We've fixed the case where this could return an instruction after the
given instruction, but also means that we can falsely return a
'unique' def when they could be one coming from the backedge of a
loop.

Differential Revision: https://reviews.llvm.org/D87751
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir (diff)
Commit 158989184e9c6bfec25cefe55022dd41894a54dd by spatel
[SLP] change poorly named variable; NFC

'V' shadows a function argument.