SuccessChanges

Summary

  1. SwitchLoweringUtils.h - reduce TargetLowering.h include. NFCI. (details)
  2. [SyntaxTree] Specialize `TreeTestBase` for `BuildTreeTest`, `MutationsTest` and `SynthesisTest` (details)
  3. Fix typo in dsymutil.rst (details)
  4. Introduce linalg.vecmat (details)
  5. Revert "[gcov] Delete flush_fn_list (unused since D83149)" (details)
  6. [gn build] Port c01d28dc51b (details)
  7. [PPC][GlobalISel] Add initial GlobalIsel infrastructure (details)
  8. [ArgumentPromotion]: Copy function metadata after promoting arguments (details)
  9. [lldb, tests] Correctly configure the yaml2obj paths (details)
  10. [gcov] Delete flush_fn_list (unused since D83149) (details)
  11. [NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization. (details)
  12. Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder." (details)
  13. [compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no (details)
  14. [compiler-rt] [netbsd] Improve code formatting (details)
  15. [ImplicitNullCheck] Handle instructions that preserve zero value (details)
  16. [Support] Use unique_function rather than std::function for ThreadPool TaskTy. (details)
  17. [NFC] Fix whitespace in lldb-vscode --help (details)
  18. [PGO] Skip if an IndirectBrInst critical edge cannot be split (details)
  19. [compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk (details)
  20. [compiler-rt] [netbsd] Regenerate syscall hooks (details)
  21. [SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support. (details)
  22. Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy." (details)
  23. [WebAssembly] Set unreachable as canonical to permit disassembly (details)
  24. Make struct dialects have the same field name as everything else, 'dialect'. (details)
  25. Allow Dialects to be initialized via nullptr. (details)
  26. [gn build] (semi-manually) port 009cd4e4910 (details)
  27. Fix operator!= for Dialects. (details)
  28. [Hexagon] Split pair-based masked memops (details)
  29. [SVE] Bail from VectorUtils heuristics for scalable vectors (details)
  30. [ImplicitNullChecks] NFC: Remove unused PointerReg arg in dep analysis (details)
  31. [libc][NFC][obvious] Remove a redudant dep of strcmp implementation. (details)
  32. Diable sanitizer options for amdgpu (details)
  33. GlobalISel: Combine fneg(fneg x) to x (details)
  34. [InstCombine] Regenerate test checks (NFC) (details)
  35. [InstCombine] Add more tests for select op replacement (NFC) (details)
  36. [DemandedBits] Add braces to large if (NFC) (details)
  37. [DemandedBits][BDCE] Add support for min/max intrinsics (details)
  38. [ORC] Make MaterializationResponsibility immovable, pass by unique_ptr. (details)
  39. [libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h. (details)
  40. [EarlyCSE] Equivalent SELECTs should hash equally (details)
  41. [DSE] Switch to MemorySSA-backed DSE by default. (details)
  42. [ELF] Make two PPC64.cpp variables constexpr. NFC (details)
  43. [flang] Fix assert on constant folding of extended types (details)
  44. Use pragmas to work around MSVC x86_32 debug miscompile bug (details)
  45. [AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0. (details)
  46. Fix wrong comment about enabling optimizations to work around a bug (details)
  47. Remove unused variable introduce in 0448d11a06b451a causing build (details)
  48. [obj2yaml] Add support for dumping the .debug_ranges section. (details)
  49. [lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform (details)
  50. [mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp (details)
  51. scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot (details)
  52. scudo: Remove the THREADLOCAL macro. (details)
  53. Remove dependency on clangASTMatchers. (details)
  54. Revert "[EarlyCSE] Equivalent SELECTs should hash equally" (details)
  55. [Asan] Fix __asan_update_allocation_context (details)
  56. [EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6 (details)
  57. libclc/spirv: Add missing files from D85911 (details)
  58. [NFC][MLInliner] Presort instruction successions. (details)
  59. [DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange. (details)
  60. [EarlyCSE] Remove unnecessary operand swap. (details)
  61. [NFC][PowerPC] Add tests of constants-i64. (details)
  62. [Clang] Clarify __builtin_memcpy_inline documentation (details)
  63. [CodeGen] [WinException] Remove a redundant explicit section switch for aarch64 (details)
  64. [MC] [Win64EH] Canonicalize ARM64 unwind opcodes (details)
  65. [MC] [Win64EH] Write packed ARM64 epilogues if possible (details)
  66. [NewPM] Introduce PreserveCFG check (details)
  67. [SVE][CodeGen] Fix InlineFunction for scalable vectors (details)
  68. [mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation. (details)
  69. [clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris (details)
  70. Uncapitalize word in LanguageExtensions.rst (details)
  71. [mlir] Fix generation of AVX512 dialect documentation (details)
  72. [MC] [Win64EH] Fix builds with expensive checks enabled (details)
  73. Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr." (details)
  74. [mlir][Linalg] Print both types for linalg.transpose (details)
  75. [CodeGenPrepare] Simplify code. NFCI. (details)
  76. [AMDGPU] Make movreld-bug test case more robust (details)
  77. [clangd][NFC] Get rid of an `else after return` (details)
  78. BasicTTIImpl.h - remove unused MCSchedule.h include. NFCI. (details)
  79. [X86] Keep variables from getDataLayout/getDebugLoc calls as const reference. NFCI. (details)
  80. [clang][aarch64] Fix ILP32 ABI for arm_sve_vector_bits (details)
  81. [flang][driver] Add the new flang compiler and frontend drivers (details)
  82. [clang][aarch64] Fix mangling of bfloat16 neon vectors (details)
  83. [DFSan] XFail a test that's suffering too much optimization (details)
  84. PluginLoader.h - only include CommandLine.h if required. NFCI. (details)
  85. Attributor.h - remove unused includes. NFCI. (details)
  86. [IPO] Remove unnecessary Module.h includes. NFCI. (details)
  87. [LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests (details)
  88. [analyzer][MacroExpansion] Add a few dumps functions (details)
  89. [analyzer][MacroExpansion][NFC] Fix incorrectly calling parameters arguments (details)
  90. [NFC] Fix the signature and definition of findByPrefix (details)
  91. [analyzer][MacroExpansion][NFC] Fix a missing test output check (details)
  92. [mlir][Linalg] Refactor StructuredOpInterface - NFC (details)
  93. [analyzer][MacroExpansion] Fix a crash where multiple parameters resolved to __VA_ARGS__ (details)
  94. [MLIR][Linalg] Undo spurious parameter name change (details)
  95. [libTooling] Fix use of `char` in comparison. (details)
  96. [ARM] Update arm-storebytesmerge.ll test. NFC (details)
  97. [flang] Add new documentation main page (details)
  98. [libcxx] Handle target triples with dashes in platform name (details)
  99. [ConstraintSystem] Add helpers to deal with linear constraints. (details)
  100. [gn build] Port 3eb141e5078 (details)
  101. Revert "[ConstraintSystem] Add helpers to deal with linear constraints." (details)
  102. [gn build] Port 8da6ae4ce1b (details)
  103. [analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait (details)
  104. [libc++] NFC: Add missing license to test (details)
  105. [NFC] Fix compiler warnings due to integer comparison of different signedness (details)
  106. [LiveDebugValues][NFC] Add additional tests (details)
  107. [InstCombine] add/move tests for ptr diff; NFC (details)
  108. [InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430) (details)
  109. [SyntaxTree] Rename functions to start with verb (details)
  110. Revert "[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)" (details)
  111. [DSE] Make sure that DSE+MSSA can handle masked stores (details)
  112. [NFC] Follow up on D87111 - Add an option for unrolling loops up to a factor - CR issues addressed. (details)
  113. [flang] Fix build issue with BUILD_SHARED_LIBS=ON (details)
  114. [gn build] slightly improve libcxx_needs_site_config (details)
  115. [examples] Adjust ThinLtoInstrumentationLayer for emit signature change (details)
  116. [libcxx] Remove the 'availability' Lit feature (details)
  117. [SLP] add test for missed store vectorization; NFC (details)
  118. [SLP] further limit bailout for load combine candidate (PR47450) (details)
  119. [docs] Fix typos (details)
  120. [DFSan] Re-enable event_callbacks test. (details)
  121. [ELF][PowerPC] Define NOP as 0x60000000 to tidy up code. NFC (details)
  122. Revert "[examples] Adjust ThinLtoInstrumentationLayer for emit signature change" (details)
  123. [FPEnv] [Clang] Enable constrained FP support for PowerPC (details)
  124. [ARM] Extra MLA reductions tests. NFC (details)
  125. [SVE] Regenerate sve vector bits tests. NFC (details)
  126. [mlir][spirv] OpConvertSToF support operands with different bitwidth. (details)
  127. [mlir] Fix some edge cases around 0-element TensorFromElementsOp (details)
  128. [lldb/API] Add Breakpoint::SerializeToStructuredData to SBAPI (details)
  129. [WebAssembly] Add assembly syntax for mutable globals (details)
  130. [CMake][OpenMP] Simplify getting CUDA library directory (details)
  131. [SyntaxTree][Synthesis] Add support for simple Leafs and test based on tree dump (details)
  132. [SyntaxTree] Reduce visibility of `Arena::lexBuffer`. (details)
  133. [SyntaxTree] Add const qualifiers, from [llvm-qualified-auto] (details)
  134. [flang] Fix bug for forward referenced type (details)
  135. Re-split integral & pointer overloads. Add tests. (details)
  136. [ThinLTO] Make -lto-embed-bitcode an enum (details)
  137. [Coroutine][Sema] Tighten the lifetime of symmetric transfer returned handle (details)
  138. [SyntaxTree][Synthesis] Add support for Tree. (details)
  139. Re-apply "[ORC] Make MaterializationResponsibility immovable..." with fixes. (details)
  140. Fix -gz=zlib options for linker (details)
  141. Sema: add support for `__attribute__((__swift_error__))` (details)
  142. [lld][WebAssembly] Convert a objyaml-using test to assembly (details)
  143. Fix test hip-gz-options.hip (details)
  144. CodeGen: Require SSA to run PeepholeOptimizer (details)
  145. RegAllocFast: Fix typo in comment (details)
  146. docs: add a newline to appease Sphinx (details)
  147. [MC] Allow .org directives in SHT_NOBITS sections (details)
  148. [NFC][Asan] Early return from GetBlockBegin (details)
  149. Fix clang Wrange-loop-analysis in BuildTree.cpp (details)
  150. [lldb] Add test for CFMutableDictionaryRef (details)
  151. [MS ABI] Add mangled type for auto template parameter whose argument kind is Integeral (details)
  152. [NFC][Asan] Add another lsan test (details)
  153. [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline (details)
  154. [ConstantFold] Fold binary arithmetic on scalable vector splats. (details)
  155. [NFC] Remove unused static function (details)
  156. Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e (details)
  157. [gn build] Port 31ecf8d29d8 (details)
  158. [ConstantFold] Make areGlobalsPotentiallyEqual less aggressive. (details)
  159. [lldb] Use GetNonKVOClassDescriptor to get the NSDictionary class descriptor (details)
  160. Fix a couple of tests that relied on the clang binary having 'clang' somewhere in the name (details)
  161. [gn] Remove unneeded MC dep from llvm-tblgen (details)
  162. Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline" (details)
  163. [gn build] Port ad99e34c59b (details)
  164. [PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD (details)
  165. [Power10] Enable the heuristic for Power10 and switch the sched model (details)
  166. [AST][FPEnv] Keep FP options in trailing storage of CastExpr (details)
  167. Add raw_fd_stream that supports reading/seeking/writing (details)
  168. Add raw_fd_stream_test.cpp into CMakeLists.txt (details)
  169. Missing change from previous commit (details)
  170. Add a header file to support ssize_t for windows (details)
  171. Revert "[AST][FPEnv] Keep FP options in trailing storage of CastExpr" (details)
  172. [gn build] Port 19531a81f1d (details)
  173. [X86][SSE] lowerShuffleAsDecomposedShuffleBlend - support decomposed unpacks for some vXi8/vXi16 cases (details)
  174. [InstCombine] Fix incorrect SimplifyWithOpReplaced transform (PR47322) (details)
  175. [ARM] Recognize "double extend" reduction patterns (details)
  176. [InstCombine][X86] getNegativeIsTrueBoolVec - use ConstantExpr evaluators. NFCI. (details)
  177. [Intrinsics] define semantics for experimental fmax/fmin vector reductions (details)
  178. [ARM] Fixup single source mla reductions. (details)
  179. [InstCombine][X86] Add tests for masked load/stores with comparisons. (details)
  180. Reland [AssumeBundles] Use operand bundles to encode alignment assumptions (details)
  181. [MachineScheduler] Fix operand scheduling for pre/post-increment loads (details)
  182. [Clang] Add option to allow marking pass-by-value args as noalias. (details)
  183. [InstCombine][X86] Covert masked load/stores with (sign extended) bool vector masks to generic intrinsics. (details)
  184. TableGen: change a couple of member names to clarify their use. (details)
  185. [LV][ARM] Add preferInloopReduction target hook. (details)
  186. [DSE] Precommit test case with loop carried dependence. (details)
  187. [DSE] Bail out on MemoryPhis when deleting stores at end of function. (details)
  188. [DSE] Adjust coroutines test after e082dee2b588. (details)
  189. [SelectionDAG][X86][ARM][AArch64] Add ISD opcode for __builtin_parity. Expand it to shifts and xors. (details)
  190. [MinGW] Use lib prefix for libraries (details)
  191. [MinGW][clang-shlib] Build by default on MinGW (details)
  192. [MinGW][libclang] Allow simultaneous shared and static lib (details)
  193. [InstCombine] Add extra use tests for abs canonicalization (NFC) (details)
  194. [gcov] Clean up by getting llvm.dbg.cu earlier (details)
  195. [gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering (details)
  196. Revert "[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering" (details)
  197. Change range operator from deprecated '-' to '...' (details)
  198. Update TableGen test files to use the new '...' range punctuation. (details)
  199. [ARM] Add additional vecreduce float legalization test (NFC) (details)
  200. [gcov] Process .gcda immediately after the accompanying .gcno instead of doing all .gcda after all .gcno (details)
  201. [lld][WebAssembly] Error on import/export of mutable global without `mutable-globals` feature (details)
  202. [ARM] Add tests for fmin/max + inf folds (NFC) (details)
  203. [lld][WebAssembly] Add initial support for -Map/--print-map (details)
  204. [gn build] Port cc2da5554b5 (details)
  205. [Hexagon] Avoid widening vectors with non-HVX element types (details)
  206. [X86] Use ISD::PARITY directly instead of emitting CTPOP and AND from combineHorizontalPredicateResult. (details)
  207. [LegalizeTypes] Remove a few cases from SplitVectorOperand that should never happen. NFC (details)
  208. [Docs] Fix --print-supported-cpus option rendering (details)
  209. [llvm-cov gcov] Improve accuracy when some edges are not measured (details)
  210. [gcov] Assign names to some types and loaded values used in @__llvm_internal* (details)
  211. [gcov] Add spanning tree optimization (details)
  212. [gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass (details)
  213. Reland "[PowerPC] Implement instruction clustering for stores" (details)
  214. [X86] Add test cases for PR11210 (details)
  215. [ARM] Add tests for fmin/max with largest/smallest float (NFC) (details)
  216. [CGP] Prevent optimizePhiType from iterating forever (details)
  217. [DAGCombiner] Propagate FMF flags in FMA folding (details)
  218. [ASTImporter] Add basic support for comparing Stmts and compare function bodies (details)
  219. [SelectionDAG] Remove default for 'unsigned' Alignment for getLoad/getStore/getExtLoad/getTruncStore. Add default for MaybeAlign version. NFCI (details)
  220. GCOVProfiling: Avoid use-after-move (details)
  221. Correct end-of-namespace comment to be clang-tidy/LLVM style appropriate (details)
  222. PPCInstrInfo: Fix readability-inconsistent-declaration-parameter-name clang-tidy warning (details)
  223. [ARM] Add some fmin/fmax tests with commuted operands (NFC) (details)
  224. [llvm-cov gcov] Add -r (--relative-only) && -s (--source-prefix) (details)
  225. [llvm-cov gcov][test] Unsupport Windows (details)
  226. [JITLink] Improve formatting for Edge, Block and Symbol debugging output. (details)
  227. [SelectionDAG] Move ISD:PARITY formation from DAGCombine to SimplifyDemandedBits. (details)
  228. [docs] Document LLVM_EXTERNALIZE_DEBUGINFO CMake option (details)
  229. [CodeGenPrepare] Fix zapping dead operands of assume (details)
  230. [AST][FPEnv] Keep FP options in trailing storage of CastExpr (details)
  231. [llvm-cov gcov] Refactor counting and reporting (details)
  232. [analyzer] Evaluate PredefinedExpressions (details)
  233. [analyzer][docs][NFC] Document the ento namespace in the llvm/Lexicon (details)
  234. [analyzer][z3] Use more elaborate Z3 variable names (details)
  235. [CodeGen] Fix bug in IncrementPointer (details)
  236. [ARM] Fix so immediates and pc relative checks (details)
  237. [UnifyLoopExits] Fix non-deterministic iteration order (details)
  238. [compiler-rt] [netbsd] Use internal_ptrace() instead of ptrace() (details)
  239. [JumpThreading] Fix an incorrect Modified status (details)
  240. AMDGPU/GlobalISel/Emitter Support for predicate code that uses operands (details)
  241. [clangd] Add error() function for creating formatv-style llvm::Errors. NFC (details)
  242. [gn build] Port 30667c967d3 (details)
  243. [DebugInstrRef][1/9] Add fields for instr-ref variable locations (details)
  244. [clangd] Track tweaks that fail the apply stage (details)
  245. [CodeGen][X86] Regenerate minmax reduction sequence tests to match arithmetic tests. (details)
  246. [clangd] makeStringError,make_error<StringError> -> error() (details)
  247. [LegalizeDAG] Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFCI. (details)
  248. AMDGPU/GlobalISel Add test for non-leaf complex patterns (details)
  249. AMDGPU/GlobalISel/Emitter Recognize additional 'same operand checks' (details)
  250. AMDGPU/GlobalISel Check for NoNaNsFPMath in isKnownNeverSNaN (details)
  251. [SVE] In LoopIdiomRecognize::isLegalStore bail out for scalable vectors (details)
  252. [ARM][MVE] Tail-predication: check get.active.lane.mask's TC value (details)
  253. [SyntaxTree][List] Fix: `ParameterDeclarationList` is the `List` inside `ParametersAndQualifiers` (details)
  254. [SyntaxTree] Provide `List::classof` (details)
  255. [SyntaxTree][List] `assertInvariants` for `List`s (details)
  256. [ARM] Selects SSAT/USAT from correct LLVM IR (details)
  257. [DSE] Precommit test case for invalid elimination of store in loop. (details)
  258. [DSE] Only eliminate candidates that always store the same loc. (details)
  259. [CGP] Limit converting phi types to simple loads and stores (details)
  260. [mlir] Check for type conversion success in std->llvm function conversion (details)
  261. [pstl] Support Threading Building Blocks 2020 (oneTBB) for "tbb" parallel backend. (details)
  262. [llvm-readobj/elf][test] - Test all core note types properly. (details)
  263. [llvm-readelf/obj] - Refine and generalize the code that is used to dump notes. (details)
  264. [NFC] Add missing `const` statements in SCEV (details)
  265. [llvm-readobj] - Cleanup implementation LLVMStyle<ELFT>::printAddrsig(). (details)
  266. [llvm-readobj/elf] - Don't use unwrapOrError when reporting errors about SHT_DYNAMIC sections. (details)
  267. Don't dereference from a dyn_cast<>. NFCI. (details)
  268. Assert we've found both vector types. NFCI. (details)
  269. [AMDGPU] Don't cluster stores (details)
  270. [InstSimplify] fix miscompiles with maximum/minimum intrinsics (details)
  271. [ARM] Enable tail predication for reduction tests. NFC (details)
  272. [XCOFF][AIX] Handle TOC entries that could not be reached by positive range in small code model (details)
  273. [InstSimplify] fix test comments; NFC (details)
  274. [InstSimplify] add/move tests for fmin/fmax; NFC (details)
  275. [InstSimplify] reduce code duplication for fmin/fmax folds; NFC (details)
  276. Add support for casting elements in vectors for certain Std dialect type conversion operations. (details)
  277. [libcxx] ostream{,buf}_iterator::difference_type changes in C++20 (details)
  278. Assert we've found the size of each (non-overlapping) structure. NFCI. (details)
  279. [MemorySSA] Precommit test case for PR47498. (details)
  280. [MemorySSA] Make sure PerformedPhiTrans is updated for each visited def. (details)
  281. [InstSimplify] allow folds for fmin/fmax with 'ninf' (details)
  282. Sema: add support for `__attribute__((__swift_objc_members__))` (details)
  283. [InstSimplify] add folds for fmin/fmax with 'nnan' (details)
  284. [flang] Correctly detect overlapping integer cases (details)
  285. [libc] Decouple string functions. (details)
  286. [ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors (details)
  287. [flang] Fix analyzed form of type-bound assignment (details)
  288. Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols. (details)
  289. collectBitParts - use const references. NFCI. (details)
  290. Retry of D84974 (details)
  291. [libc++] Upgrade the Clang on build bots (details)
  292. Fix 132e57bc597bd3f50174b7d286c43f76b47f11c1 (details)
  293. [DAGCombiner] Fold fmin/fmax with INF / FLT_MAX (details)
  294. [InstCombine] Simplify select operand based on equality condition (details)
  295. [ms] [llvm-ml] Add missing built-in type aliases (details)
  296. [ms] [llvm-ml] Fix struct padding logic (details)
  297. [ms] [llvm-ml] Add support for size queries in MASM (details)
  298. [ms] [llvm-ml] Add basic support for SEH, including PROC FRAME (details)
  299. [ARM] Add more tests for vecreduce soft float legalization (NFC) (details)
  300. [Legalize][ARM][X86] Add float legalization for VECREDUCE (details)
  301. [libc] Extend MPFRMatcher to handle 2-input-1-output and support hypot function. (details)
  302. [libc++] Use LLVM 11 instead of trunk on build bots (details)
  303. [AArch64] Add additional vecreduce fmax/fmin legalization tests (NFC) (details)
  304. [PowerPC] Implement Thread Local Storage Support for Local Exec (details)
  305. [ELF] Add documentation for --warn-backrefs: a GNU ld compatibility checking tool (and lesser of layering detection) (details)
  306. [FastISel] Bail out of selectGetElementPtr for vector GEPs. (details)
  307. [libc++] Add comment in atomic test to explain why part of it is disabled on Apple (details)
  308. [MemProf] Rename HeapProfiler to MemProfiler for consistency (details)
  309. [gn build] Port 226d80ebe20 (details)
  310. [docs][NewPM] Add docs for writing NPM passes (details)
  311. [Asan] Fix false leak report (details)
  312. Make namespace handling uniform across dialect backends. (details)
  313. Update PowerPC backend ownership in CODE_OWNERS.TXT (details)
  314. [AMDGPU] Add XDL resource to scheduling model (details)
  315. [SelectionDAG] Use Align/MaybeAlign in calls to getLoad/getStore/getExtLoad/getTruncStore. (details)
  316. [libc++] Make rotate a constexpr. (details)
  317. [libc++] Finish implementing P0202R3 (details)
  318. Fix MLIR standalone example to properly handle namespace (details)
  319. [libc++][test] Portability fix of std::strstreambuf constructor test (details)
  320. [docs] Update OrcV1 removal timeline. (details)
  321. [PruneEH][NFC] Use CallGraphUpdater in PruneEH (details)
  322. [flang] More clean-up of CookedSource API (details)
  323. Revert "[libc++] Make rotate a constexpr." (details)
  324. [Take 2] [libc++] Make rotate a constexpr. (details)
  325. [flang] Fix bug for forward referenced type (details)
  326. [GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine (details)
  327. Revert "[docs][NewPM] Add docs for writing NPM passes" (details)
  328. [GISel]: Add combine for G_FABS to G_FABS (details)
  329. Reland [docs][NewPM] Add docs for writing NPM passes (details)
  330. [Hexagon] Some HVX DAG combines (details)
  331. [Hexagon] Widen loads and handle any-/sign-/zero-extensions (details)
  332. [Hexagon] Add more detailed testcase for widening truncates (details)
  333. [Sema] Address-space sensitive index check for unbounded arrays (details)
  334. [X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract. (details)
  335. [GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine (details)
  336. [Asan] Accept __lsan_ignore_object for redzone pointer (details)
  337. [AArch64] Statepoint support for AArch64. (details)
  338. [flang] Allow Fortran comments after #include path (details)
  339. Revert "[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract." (details)
  340. [X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract (details)
  341. [flang] Respect BZ mode in exponent parts, too (details)
  342. [libc++abi] Do not declare __cxa_finalize and __cxa_atexit in <cxxabi.h> (details)
  343. [GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z (details)
  344. [GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine (details)
  345. [Coroutines] Fix a typo in documentation (details)
  346. [DebugInfo] Remove dots from getFilenameByIndex return value (details)
  347. [lld][WebAssembly] Allow globals imports via import_name/import_module (details)
  348. [DebugInfo] Fix methods of AsmPrinter to emit values corresponding to the DWARF format (1/19). (details)
  349. [DebugInfo] Fix DIE value emitters to be compatible with DWARF64 (2/19). (details)
  350. [DebugInfo] Add new emitting methods for values which depend on the DWARF format (3/19). (details)
  351. [DebugInfo] Add the -dwarf64 switch to llc and other internal tools (4/19). (details)
  352. [DebugInfo] Fix emitting DWARF64 compilation units (5/19). (details)
  353. [DebugInfo] Use a common method to determine a suitable form for section offsts (6/19). (details)
  354. [DebugInfo] Fix emitting the DW_AT_location attribute for 64-bit DWARFv3 (7/19). (details)
  355. [DebugInfo] Fix emitting DWARF64 .debug_str_offsets sections (8/19). (details)
  356. [DebugInfo] Fix emitting DWARF64 DWO compilation units and string offset tables (9/19). (details)
  357. [DebugInfo] Fix emitting DWARF64 type units (10/19). (details)
  358. [DebugInfo] Fix emitting DWARF64 .debug_aranges sections (11/19). (details)
  359. [DebugInfo] Fix emitting pre-v5 name lookup tables in the DWARF64 format (12/19). (details)
  360. [DebugInfo] Fix emitting DWARF64 .debug_rnglists sections (13/19). (details)
  361. [DebugInfo] Fix emitting DWARF64 .debug_loclists sections (14/19). (details)
  362. [DebugInfo] Fix emitting DWARF64 .debug_addr sections (15/19). (details)
  363. [DebugInfo] Fix emitting DWARF64 .debug_names sections (16/19). (details)
  364. [DebugInfo] Fix emitting DWARF64 .debug_macro[.dwo] sections (17/19). (details)
  365. [DebugInfo] Make the offset of string pool entries 64-bit (18/19). (details)
  366. [DebugInfo] Make offsets of dwarf units 64-bit (19/19). (details)
  367. [BinaryFormat/MachO] Add a missing constant. (details)
  368. [llvm-readobj] [ARMWinEH] Print ARM64 packed unwind info (details)
  369. [LLD] Allow configuring default ld.lld backend (details)
  370. [Windows][Polly] Disable LLVMPolly module for all compilers on Windows (details)
  371. [NFC][lsan][fuzzer] Relax fuzzer-leak.test (details)
  372. [X86] Pre-commit test cases for D87593 (details)
  373. [NFC][Asan] Don't use MetaData for size (details)
  374. [NFC][Asan] Remove from_memalign and rz_log (details)
  375. Revert "[Sema] Address-space sensitive index check for unbounded arrays" (details)
  376. [NFC][Asan] Reorder bitfields (details)
  377. [Asan] Cleanup kAllocBegMagic setup (details)
  378. [NFC][Asan] Return uptr as before D87646 (details)
  379. [NFC][Asan] Remove chunk pointer from metadata (details)
  380. [SVE] Fix isLoadInvariantInLoop for scalable vectors (details)
  381. [doc] Fix broken link (details)
  382. [DebugInfo] Support both forward and backward slashes in tests (details)
  383. [Support] Make building with snmalloc work (details)
  384. [MVE] Rename of tests making them consistent with tail-predication tests. NFC. (details)
  385. GlobalISel/IRTranslator resetTargetOptions based on function attributes (details)
  386. [lib/Object] - Refine interface of ELFFile<ELFT>. NFCI. (details)
  387. [NFC][DebugInfo] Use consistent regex group spelling (details)
  388. [llvm-readobj/elf] - Simplify and refine the implementation which dumps .stack_sizes (details)
  389. [X86] detectAVGPattern - accept non-pow2 vectors by padding. (details)
  390. [MVE] fix typo in llvm debug message. NFC. (details)
  391. [Transforms][Coroutines] Add missing header path to CMakeLists.txt (details)
  392. [SelectionDAG] Remove unused FP constant in getNegatedExpression (details)
  393. [ARM] Corrected condition in isSaturatingConditional (details)
  394. [X86] Update SSE/AVX integer MINMAX intrinsics to emit llvm.smax.* etc. (PR46851) (details)
  395. Revert "[InstCombine] Simplify select operand based on equality condition" (details)
  396. [mlir][integration_test] Linalg Conv folder renamed to CPU (details)
  397. [mlir] check for failures when packing function sigunatures in std->llvm conversion (details)
  398. Recommit "[ConstraintSystem] Add helpers to deal with linear constraints." (details)
  399. SelectionDAGBuilder.h - remove unnecessary includes. NFCI. (details)
  400. StatepointLowering.cpp - remove unnecessary includes. NFCI. (details)
  401. SpillPlacement.cpp - remove unnecessary includes. NFCI. (details)
  402. Revert "RegAllocFast: Record internal state based on register units" (details)
  403. [lldb/cmake] Fix testing support library dependencies (details)
  404. [lldb] Improve qemu interop for aarch64 (details)
  405. [Scalarizer] Avoid changing name of non-instructions (details)
  406. [ARM][MVE] Tail-predication: use unsigned SCEV ranges for tripcount (details)
  407. AliasSetTracker.cpp - remove unnecessary includes. NFCI. (details)
  408. ProvenanceAnalysis.h - remove unnecessary AliasAnalysis.h include. NFCI. (details)
  409. LoopCacheAnalysis.h - remove unnecessary includes. NFCI. (details)
  410. [libc++] Allow building without threads in standalone builds (details)
  411. Restrict UnnecessaryCopyInitialization check to variables initialized from free functions without arguments (details)
  412. [ConstraintSolver] Add isConditionImplied helper. (details)
  413. [Flang] Add GettingInvolved documentation page and sidebar. (details)
  414. [lld][WebAssembly] Fix --export-all when __stack_pointer is present (details)
  415. [gn build] (semi-manually) port 380e746bcca (details)
  416. [ConstraintElimination] Add initial tests. (details)
  417. [libcxx] Disable failing test for no-exceptions build (details)
  418. [InstCombine] improve test names; NFC (details)
  419. [InstCombine] add RUN to show miscompile of pow expansion; NFC (details)
  420. [InstCombine] fix bug in pow expansion (details)
  421. [gn build] Port a8058c6f8d1 (details)
  422. [gn build] Port cd4edf94cd4 (details)
  423. [mlir][Standard] Add canonicalizer for dynamic_tensor_from_elements (details)
  424. [mlir][openacc] Add missing print of vector_length in parallel op (details)
  425. [Utils] isLegalToPromote - Fix missing null check before writing to FailureReason. (details)
  426. AMDGPUPrintfRuntimeBinding.cpp - drop unnecessary casts/dyn_casts. NFCI. (details)
  427. Revert "[SelectionDAG] Remove unused FP constant in getNegatedExpression" (details)
  428. [LLD][PowerPC] Add support for R_PPC64_TPREL34 used in TLS Local Exec (details)
  429. [libc] Fix typo in platform_defs.h.inc (details)
  430. [libc] Add missing LibcFPTestHelpers library (details)
  431. [libc] Add missing TableGen dependency (details)
  432. [analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite (details)
  433. [llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken. (details)
  434. [analyzer] Add documentation for alpha.fuchsia.Lock and alpha.core.C11Lock (details)
  435. [InstSimplify] add limit folds for fmin/fmax (details)
  436. [libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any (details)
  437. SLPVectorizer.h - remove unnecessary AliasAnalysis.h include. NFCI. (details)
  438. [mlir][openacc] Add loop op verifier (details)
  439. [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist (details)
  440. [XCOFF] Run resource intense test only on platforms where it makes sense (details)
  441. [libc++] Add a benchmark for std::map operations (details)
  442. [MachineBasicBlock] Fix a typo in function copySuccessor (details)
  443. NFC: Add whitespace change to .git-blame-ignore-revs (details)
  444. [X86][AVX] lowerShuffleWithSHUFPS - handle missed canonicalization cases. (details)
  445. [lldb] Add -l/--language option to script command (details)
  446. [VectorCombine] Don't vectorize scalar load under asan/hwasan/memtag/tsan (details)
  447. Revert "[DebugInfo] Remove dots from getFilenameByIndex return value" (details)
  448. Revert "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  449. [MemoryBuffer] Revert unintended MemoryBuffer change from D86996 (details)
  450. Fix bot failure after ccb4124a4172 (details)
  451. [OPENMP]Add support for allocate vars in untied tasks. (details)
  452. [LoopAccessAnalysis][NewPM] Fix tests to work under NPM (details)
  453. [DependenceAnalysis][NewPM] Fix tests to work under NPM (details)
  454. [RegionInfo][NewPM] Fix RegionInfo tests to work under NPM (details)
  455. [NewPM][opt] Fix -globals-aa not being recognized as alias analysis in NPM (details)
  456. [PostDominators][NewPM] Fix tests to work under NPM (details)
  457. [libc++] Add missing friend keyword (details)
  458. [X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info. (details)
  459. [Bugpoint][NewPM] Pin bugpoint to legacy PM (details)
  460. [ConstraintElimination] Add constraint elimination pass. (details)
  461. [gn build] Port 3d42d549554 (details)
  462. Fix .debug_aranges parsing. (details)
  463. [DemandedBits][NewPM] Pin some tests to legacy PM (details)
  464. [Dominators][NewPM] Pin tests with -analyze to legacy PM (details)
  465. [libc++] Fix broken test for std::any and allocators (details)
  466. [ASTMatchers] extract public matchers from const-analysis into own patch (details)
  467. [CodeGen][typeid] Emit typeinfo directly if type is known at compile-time (details)
  468. [PowerPC] Implement __int128 vector divide operations (details)
  469. [AArch64][SVE] Add lowering for llvm fsqrt (details)
  470. [clang] Add a command line flag for the Machine Function Splitter. (details)
  471. InferAddressSpaces: Fix assert with unreachable code (details)
  472. [TableGen] Fix invalid comparison function `SizeOrder` in `getMatchingSubClassWithSubRegs` (details)
  473. Implement __isOSVersionAtLeast for Android (details)
  474. [libc] remove useless headers (details)
  475. [SLPVectorizer][SVE] Skip scalable-vector instructions before vectorizeSimpleInstructions. (details)
  476. [libc] use stddef instead of string header (details)
  477. Sema: add support for `__attribute__((__swift_bridged_typedef__))` (details)
  478. [libc] Remove special case for 8 and 16 bytes (details)
  479. [mlir] Rename 'setInsertionPointAfter' to avoid ambiguity (details)
  480. [OPENMP]Fix codegen for is_device_ptr component, captured by reference. (details)
  481. [OpenMP] Additional Information for Libomptarget Mappings (details)
  482. [TSAN] Handle musttail call properly in EscapeEnumerator (and TSAN) (details)
  483. [AMDGPU] Unify intrinsic ret/nortn interface (details)
  484. GlobalISel: Add combines for G_TRUNC (details)
  485. [SourceManager] Explicitly check for potential iterator underflow (details)
  486. [ThinLTO] add post-thinlto-merge option to -lto-embed-bitcode (details)
  487. [GISel] Add new GISel combiners for G_MUL (details)
  488. [BFI] Make BFI information available through loop passes inside LoopStandardAnalysisResults (details)
  489. [llvm][cmake] Change LLVM_INTEGRATED_CRT_ALLOC to a path instead of a boolean (details)
  490. GlobalISel: Fix a failing combiner test (details)
  491. [CGSCC][NewPM] Fix adding mutually recursive new functions (details)
  492. [AArch64][GlobalISel] Refactor + improve CMN, ADDS, and ADD emit functions (details)
  493. [LICM] Make Loop ICM profile aware again (details)
  494. SVML support for log10, sqrt (details)
  495. [LowerSwitch][NewPM] Port lowerswitch to NPM (details)
  496. [NewPM] Port strip* passes to NPM (details)
  497. [Hexagon] Replace incorrect pattern for vpackl HWI32 -> HVi8 (details)
  498. [PDB] Drop LF_PRECOMP from debugTypes earlier (details)
  499. Fix test after D86156. (details)
  500. [X86] Always use 16-bit displacement in 16-bit mode when there is no base or index register. (details)
  501. [NewPM] Fix 2003-02-19-LoopInfoNestingBug.ll under NPM (details)
  502. [NewPM][SCEV] Fix constant-fold-gep.ll under NPM (details)
  503. [NewPM] Fix opt-hot-cold-split.ll under NPM (details)
  504. Fully qualify some more namespace in MLIR ODS to be more friendly to dialects not defined under the mlir namespace (NFC) (details)
  505. [InstCombine] Add tests for statepoint simplification (details)
  506. [Test] Add signed version of a test (details)
  507. [clang-tidy] Fix crash in modernize-use-noexcept on uninstantiated throw class (details)
  508. [lldb] Reword CompilerType docstring to not say "generic type" (details)
  509. [MLIR][NFC] Value print update for block arguments (details)
  510. libclc: Add a __builtin to let SPIRV targets select between SW and HW FMA (details)
  511. [ThinLTO] Relax thinlto_embed_bitcode.ll check (details)
  512. [X86] Add test case for non-power of 2 scatter. NFC (details)
  513. [X86] Don't scalarize gather/scatters with non-power of 2 element counts. Widen instead. (details)
  514. [MemorySSA] Set MustDominate to true for PhiTranslation. (details)
  515. [llvm-rc] Allow omitting components from VERSIONINFO versions (details)
  516. [llvm-rc] Update a comment. NFC. (details)
  517. [llvm-rc] Lowercase the option definitions. NFC. (details)
  518. [obj2yaml] Add support for dumping the .debug_addr(v5) section. (details)
  519. [MemorySSA] Report unoptimized as None, not MayAlias. (details)
  520. [Test] Some more potential range check elimination opportunities (details)
  521. [flang] Fix docs build (details)
  522. [Test] Add positive range checks tests in addition to negative (details)
  523. Revert "[Asan] Fix false leak report" (details)
  524. Revert "[Asan] Accept __lsan_ignore_object for redzone pointer" (details)
  525. [ARM][MachineOutliner] Add calls handling. (details)
  526. [clangd] Don't use zlib when it's unavailable. (details)
  527. [ARM][LowOverheadLoops] Combine a VCMP and VPST into a VPT (details)
  528. Follow up rG635b87511ec3: forgot to add/commit the new test file. NFC. (details)
  529. [DebugInfo][flang] DISubrange support for fortran assumed size array (details)
  530. [llvm-readobj][test] - Address a forgotten review comment for D86923. (details)
  531. [clangd] Implement hot index reloading for clangd-index-server (details)
  532. [Support] Add GlobPattern::isTrivialMatchAll() (details)
  533. [LLD][ELF] Optimize linker script filename glob pattern matching NFC (details)
  534. [llvm-readobj][test] - Improve section-symbols.test (details)
  535. [ARM][LowOverheadLoops] Fix tests after ef0b9f3 (details)
  536. [clang-tidy] Improve documentation on Clangd integration (details)
  537. [DAG] Remover getOperand() call. NFCI. (details)
  538. Fix table formatting after D87686 (details)
  539. [ARM] Add more validForTailPredication (details)
  540. [ARM] Fix tail predication predicate tracking (details)
  541. [clangd] Actually parse Index section of the YAML file. (details)
  542. [clang-tidy] Crash fix for bugprone-misplaced-pointer-arithmetic-in-alloc (details)
  543. [ASTMatchers] Fix `hasBody` for the descendants of `FunctionDecl` (details)
  544. CGBlocks.cpp - assert non-null CGF pointer. NFCI. (details)
  545. TokenAnnotator.cpp - remove useless pointer null test. NFCI. (details)
  546. [AST] ASTReader::ReadModuleMapFileBlock - assert non-null Module. NFCI. (details)
  547. Update dead links to Itanium and ARM ABIs. NFC (details)
  548. [Sema] isOpenMPCapturedDecl - assert we locate CapturedRegionScopeInfo. NFCI. (details)
  549. [RDA] Fix getUniqueReachingDef for self loops (details)
  550. [SLP] change poorly named variable; NFC (details)
  551. [SLP] move loop index variable declaration to its use; NFC (details)
  552. [SLP] remove redundant size check; NFC (details)
  553. [SLP] remove uses of 'auto' that obscure functionality; NFC (details)
  554. [ARM] Reorder some logic (details)
  555. [clang-format] [NFC] Fix spelling mistake in the documentation (details)
  556. [SLP] fix formatting; NFC (details)
  557. Add section with details about DAGs. (details)
  558. [OPENMP]Do not allow threadprivates as base for array-like reduction. (details)
  559. [DSE] Add another test cases with loop carried dependence. (details)
  560. [mlir] Model StringRef in C API (details)
  561. [Partial Inliner] Compute intrinsic cost through TTI (details)
  562. Enable inlining for Linalg dialect (details)
  563. [mlir][openacc] Add missing operands for acc.parallel operation (details)
  564. [X86][SSE] Move VZEXT_MOVL(INSERT_SUBVECTOR(UNDEF,X,0)) handling into combineTargetShuffle. (details)
  565. [AMDGPU] Add -show-mc-encoding to setreg tests (details)
  566. [AMDGPU] Enable scheduling around FP MODE-setting instructions (details)
  567. [X86] Assert that we've found a terminator instruction. NFCI. (details)
  568. [AMDGPU] Add v3f16/v3i16 support to SDag (details)
  569. AMDGPU: Improve <2 x i24> arguments and return value handling (details)
  570. [NFC][Regalloc] accessors for 'reg' and 'weight' (details)
  571. [X86] EmitInstrWithCustomInserter - remove redundant getDebugLoc() calls. NFCI. (details)
  572. [ASTMatchers] Add missing definition for decompositionDecl (details)
  573. [AMDGPU] Corrected directive to use for ELF weak refs (details)
  574. [NPM] Translate alias analysis into require<> as well (details)
  575. [llvm][CodeGen] Do not scalarize `llvm.masked.[gather|scatter]` operating on scalable vectors. (details)
  576. [AMDGPU] Remove obsolete comment (details)
  577. [ARM][MVE] Tail-predication: predicate new elementcount checks on force-enabled (details)
  578. [Coro][NewPM] Handle llvm.coro.prepare.retcon in NPM coro-split pass (details)
  579. [libfuzzer] Reduce default verbosity when printing large mutation sequences (details)
  580. Do not apply calling conventions to MSVC entry points (details)
  581. LocalStackSlotAllocation: Swap order of check (details)
  582. AMDGPU: Add baseline test for incorrect SP access (details)
  583. AMDGPU: Clear offset register when using local stack area (details)
  584. Include (Type|Symbol)Record.h less (details)
  585. RegAllocFast: Make self loop live-out heuristic more aggressive (details)
  586. [libc++] Ensure streams are initialized early (details)
  587. Re-land: Add new hidden option -print-changed which only reports changes to IR (details)
  588. [llvm-nm] Use aggregate initialization instead of memset zero (details)
  589. [SLP] add tests for reduction ordering; NFC (details)
  590. ValueEnumerator.cpp - remove duplicate includes. NFCI. (details)
  591. InterferenceCache.cpp - remove duplicate includes. NFCI. (details)
  592. raw_ostream.cpp - remove duplicate includes. NFCI. (details)
  593. DwarfUnit.h - remove unnecessary includes. NFCI. (details)
  594. [GISel] Add new combines for unary FP instrs with constant operand (details)
  595. [Sema][MSVC] warn at dynamic_cast/typeid when /GR- is given (details)
  596. [libFuzzer] Enable entropic by default. (details)
  597. Sema: add support for `__attribute__((__swift_bridge__))` (details)
  598. fix test no-rtti.cpp (details)
  599. [clang][codegen] Skip adding default function attributes on intrinsics. (details)
  600. [AArch64][GlobalISel] Make G_BUILD_VECTOR os <16 x s8> legal. (details)
  601. [gn build] make "all" target build (details)
  602. GlobalISel: Lift store value widening restriction (details)
  603. [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name. (details)
  604. Add '<' meta command to read in code from external file (details)
  605. [UpdateTestChecks][NFC] Fix spelling (details)
  606. [OpenMP][FIX] Do not crash trying to print a missing (demangled) user condition (details)
  607. [OpenMP][FIX] Do not drop a '$' while demangling declare variant names (details)
  608. [OpenMP] Support nested OpenMP context selectors (declare variant) (details)
  609. [OpenMP] Context selector extensions for return value overloading (details)
  610. [OpenMP] Overload `std::isnan` and friends multiple times for the GPU (details)
  611. [OpenMP] Context selector extensions for template functions (details)
  612. [OpenMP] Support `std::complex` math functions in target regions (details)
  613. [AMDGPU] gfx1030 RT support (details)
  614. Revert "[obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name." (details)
  615. [SystemZ][z/OS] Set aligned allocation unavailable by default for z/OS (details)
  616. [gn build] unconfuse sync script about "sources = []" in clang/lib/Headers/BUILD.gn (details)
  617. Fix build. (details)
  618. [InstCombine] Add test for infinite combine loop (NFC) (details)
  619. [InstSimplify] Clarify SimplifyWithOpReplaced() return value (details)
  620. Reapply [InstCombine] Simplify select operand based on equality condition (details)
  621. [gn build] Port 56069b5c71c (details)
  622. [UpdateTestChecks] Allow $ in function names (details)
  623. [aarch64][tests] Add tests which show current lack of implicit null support (details)
  624. [flang][msvc] Work around if constexpr (false) evaluation. NFC. (details)
  625. [X86] Add test case for a masked load mask becoming all ones after type legalization. (details)
  626. [DAGCombiner] Teach visitMLOAD to replace an all ones mask with an unmasked load (details)
  627. [lsan] Share platform allocator settings between ASan and LSan (details)
  628. Revert "[lsan] Share platform allocator settings between ASan and LSan" (details)
  629. [ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings. (details)
  630. Revert "Do not apply calling conventions to MSVC entry points" (details)
  631. [AMDGPU] gfx1030 test update. NFC. (details)
  632. [NFC][LSAN] Change SuspendedThreadsList interface (details)
  633. [ELF] Bump the limit of thunk creation passes from 10 to 15 (details)
  634. [NFC][regalloc] type LiveInterval::reg() as Register (details)
  635. [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name. (details)
  636. [lldb/test] Enable faulthandler in dotest (details)
  637. [NFC] Refactor DiagnosticBuilder and PartialDiagnostic (details)
  638. [libunwind] Support for leaf function unwinding. (details)
  639. [flang] Substrings with lower bound greater than upper bound (details)
  640. Disable a large test for EXPENSIVE_CHECKS and debug build (details)
  641. [AArch64] Add -mmark-bti-property flag. (details)
  642. [gn build] (manually) port 1321160a2 (details)
  643. [EarlyCSE] Simplify max/min pattern matching. NFC. (details)
  644. [Flang] Fixed installation permission of the "binary" flang (details)
  645. Commenting out atomics with padding to unbreak MSAN tests (details)
  646. Revert "[AArch64] Add -mmark-bti-property flag." (details)
  647. [AArch64] Add -mmark-bti-property flag. (details)
  648. [DAGCombiner] Teach visitMSTORE to replace an all ones mask with an unmasked store. (details)
  649. [MemorySSA] Rename uses in blocks with Phis. (details)
  650. Canonicalize declaration pointers when forming APValues. (details)
  651. PR47555: Inheriting constructors are implicitly definable. (details)
  652. [NewPM] Port -print-alias-sets to NPM (details)
  653. [IRSim] Adding IR Instruction Mapper (details)
  654. [mlir] expose affine map to C API (details)
  655. [gn build] Port b04c1a9d312 (details)
  656. [libunwind][DWARF] Fix end of .eh_frame calculation (details)
  657. [MachineSink] add one more mir case - nfc (details)
  658. [PowerPC] Fix store-fptoi combine of f128 on Power8 (details)
  659. Use zu rather than llu format specifier for size_t (-Wformat warning fix). (details)
  660. debug_rnglists/symbolizing: reduce memory usage by not caching rnglists (details)
  661. Revert "[IRSim] Adding IR Instruction Mapper" (details)
  662. [gn build] Port a895040eb02 (details)
  663. Flush bitcode incrementally for LTO output (details)
  664. Add the header of std::min (details)
  665. Fix the arguments of std::min (details)
  666. [lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC) (details)
  667. Add __divmodti4 to match libgcc. (details)
  668. [llvm-cov gcov][test] Move tests to gcov/ (details)
  669. [DebugInfo] Simplify DIEInteger::SizeOf(). (details)
  670. [mlir][spirv] Add GroupNonUniformBroadcastOp (details)
  671. [llvm-cov gcov] Add --demangled-names (-m) (details)
  672. [mlir] Remove redundant shape.cstr_broadcastable canonicalization. (details)
  673. [SelectionDAG] Check any use of negation result before removal (details)
  674. [Lint] Add check for intrinsic get.active.lane.mask (details)
  675. [AMDGPU] Generate test checks for splitkit-copy-bundle.mir (details)
  676. [SplitKit] Only copy live lanes (details)
  677. [NFC] EliminateDuplicatePHINodes(): small-size optimization: if there are <= 32 PHI's, O(n^2) algo is faster (geomean -0.08%) (details)
  678. Revert "Re-land: Add new hidden option -print-changed which only reports changes to IR" (details)
  679. [X86] Fix stack alignment on 32-bit Solaris/x86 (details)
  680. [lldb] Don't send invalid region addresses to lldb server (details)
  681. [clang][aarch64] ACLE: Support implicit casts between GNU and SVE vectors (details)
  682. [mlir][Linalg] Convolution tiling added to ConvOp vectorization pass (details)
  683. [AsmPrinter] Remove orphan DwarfUnit::shareAcrossDWOCUs declaration. NFCI. (details)
  684. [AMDGPU] Remove orphan SITargetLowering::LowerINT_TO_FP declaration. NFCI. (details)
  685. [AsmPrinter] DwarfDebug - use DebugLoc const references where possible. NFC. (details)
  686. [MLIR] Turns swapId into a FlatAffineConstraints member func (details)
  687. [gn build] (manually) port c9af34027bc (details)
  688. [mlir] turn clang-format back on in C API test (details)
  689. [ARM] Extra fp16 bitcast tests. NFC (details)
  690. DwarfFile.h - remove unnecessary includes. NFCI. (details)
  691. DwarfStringPool.cpp - remove unnecessary StringRef include. NFCI. (details)
  692. [ARM] Additional tests for qr intrinsics in loops. NFC (details)
  693. Revert "[lldb] Don't send invalid region addresses to lldb server" (details)
  694. [NFC][ARM] Tail fold test changes (details)
  695. SymbolizableObjectFile.h - remove unnecessary includes. NFCI. (details)
  696. MetadataLoader.cpp - remove unnecessary StringRef include. NFCI. (details)
  697. [clang-format][regression][PR47461] ifdef causes catch to be seen as a function (details)
  698. [ConstraintSystem] Remove local variable that is set but not read [NFC] (details)
  699. Remove unnecessary forward declarations. NFCI. (details)
  700. [clang][docs] Fix documentation of -O (details)
  701. [SLP] sort candidates to increase chance of optimal compare reduction (details)
  702. [llvm-readelf/obj][test] - Document what we print in various places for unnamed section symbols. (details)
  703. [obj2yaml] - Don't emit EM_NONE. (details)
  704. [SVE][CodeGen] Lower floating point -> integer conversions (details)
  705. [MemorySSA] Add another loop clobber test case. (details)
  706. [ARM][MachineOutliner] Add missing testcase for calls. (details)
  707. InstCombiner.h - remove unnecessary KnownBits.h include. NFCI. (details)
  708. [AMDGPU] Bump to ROCm 3.7 dependency hip_hcc->amdhip64 (details)
  709. SafeStackLayout.cpp - remove unnecessary StackLifetime.h include. NFCI. (details)
  710. [compiler-rt] Avoid pulling libatomic to sanitizer tests (details)
  711. ValueList.cpp - remove unnecessary includes. NFCI. (details)
  712. DwarfExpression.cpp - remove unnecessary includes. NFCI. (details)
  713. LiveDebugVariables.cpp - remove unnecessary Compiler.h include. NFCI. (details)
  714. [compiler-rt] Replace INLINE with inline (details)
  715. [compiler-rt] [tsan] [netbsd] Catch unsupported LONG_JMP_SP_ENV_SLOT (details)
  716. [AMDGPU] should expand ROTL i16 to shifts. (details)
  717. [compiler-rt] [netbsd] Include <sys/dkbad.h> (details)
  718. [compiler-rt] [hwasan] Replace INLINE with inline (details)
  719. [mlir][Standard] Canonicalize chains of tensor_cast operations (details)
  720. [compiler-rt] [scudo] Fix typo in function attribute (details)
  721. [ARM] Sink splats to MVE intrinsics (details)
  722. [amdgpu] Lower SGPR-to-VGPR copy in the final phase of ISel. (details)
  723. [libc++] Remove some workarounds for missing variadic templates (details)
  724. [Coroutine] Fix a bug where Coroutine incorrectly spills phi and invoke defs before CoroBegin (details)
  725. [OpenMP 5.0] Fix user-defined mapper privatization in tasks (details)
  726. [DFSan] Add bcmp wrapper. (details)
  727. Precommit test updates (details)
  728. [AArch64] Match pairwise add/fadd pattern (details)
  729. [CUDA][HIP] Defer overloading resolution diagnostics for host device functions (details)
  730. [ARM] Add more MVE postinc distribution tests. NFC (details)
  731. [mlir][openacc] Change operand type from index to AnyInteger in parallel op (details)
  732. [flang][openacc] Lower clauses on loop construct to OpenACC dialect (details)
  733. [Test] Add tests showing that IndVars cannot prove (X + 1 > X) (details)
  734. Revert "[DFSan] Add bcmp wrapper." (details)
  735. ModuloSchedule.cpp - remove unnecessary includes. NFCI. (details)
  736. Fix build failure in clangd (details)
  737. [mlir][Vector] Add a folder for vector.broadcast (details)
  738. [AArch64][GlobalISel] Fix bug in fewVectorElts action while legalizing oversize G_FPTRUNC vectors. (details)
  739. [ARM] Expand distributing increments to also handle existing pre/post inc instructions. (details)
  740. [InstSimplify] add tests for FP constant miscompile; NFC (PR43907) (details)
  741. [amdgpu] Compilation fix for Release (details)
  742. [SyntaxTree][Synthesis] Fix allocation in `createTree` for more general use (details)
  743. [DFSan] Add bcmp wrapper. (details)
  744. [Sema] Introduce BuiltinAttr, per-declaration builtin-ness (details)
  745. [AMDGPU] Fix ROCm unit test memref initialization (details)
  746. Add missing include (details)
  747. [PowerPC][AIX] Don't hardcode python invoke command line (details)
  748. [VectorCombine] add test for multi-use load (PR47558); NFC (details)
  749. [VectorCombine] rearrange bailouts for load insert for efficiency; NFC (details)
  750. Revert "[CUDA][HIP] Defer overloading resolution diagnostics for host device functions" (details)
  751. Revert "[NFC] Refactor DiagnosticBuilder and PartialDiagnostic" (details)
  752. [MLIR] Support for return values in Affine.For yield (details)
  753. [MLIR][Affine] Add parametric tile size support for affine.for tiling (details)
  754. [X86] Don't match x87 register inline asm constraints unless the VT is floating point or its a clobber (details)
  755. [VectorCombine] limit load+insert transform to one-use (details)
  756. [AArch64][GlobalISel] Make <8 x s16> and <16 x s8> legal for shifts. (details)
  757. [AArch64][GlobalISel] Widen G_EXTRACT_VECTOR_ELT element types if < 8b. (details)
  758. [PDB] Split TypeServerSource and extend type index map lifetime (details)
  759. [SVE][WIP] Implement lowering for fixed length VSELECT to Scalable (details)
  760. [IRSim] Adding IR Instruction Mapper (details)
  761. [gn build] Port 7e4c6fb8546 (details)
  762. AArch64::ArchKind's underlying type is uint64_t (details)
  763. [Lsan] Use fp registers to search for pointers (details)
  764. Disable hoisting MI to hotter basic blocks when using pgo (details)
  765. [SCEV] Add test cases for max BTC with loop guard info. (details)
  766. [GVN] Add additional assume tests (NFC) (details)
  767. [GVN] Use that assume(!X) implies X==false (PR47496) (details)
  768. [LoopUnrollAndJam] Allow unroll and jam loops forced by user. (details)
  769. [InstCombine] Canonicalize SPF_ABS to abs intrinc (details)
  770. [llvm-install-name-tool] Update the command-line guide (details)
  771. [NewPM] Fix pr45927.ll under NPM (details)
  772. [MemorySSA] Be more conservative when traversing MemoryPhis. (details)
  773. Support dwarf fission for wasm object files (details)
  774. [TargetRegisterInfo] Add a couple of target hooks for the greedy register allocator (details)
  775. [test] Fix FullUnroll.ll (details)
  776. [AArch64] Enable implicit null check transformation (details)
  777. [RISCV] Support Shadow Call Stack (details)
  778. [MLIR][TableGen] Automatic detection and elimination of redundant methods (details)
  779. [MemorySSA] Fix an unused variable warning [NFC] (details)
  780. [PowerPC] Implement Vector Count Mask Bits builtins in LLVM/Clang (details)
  781. [PowerPC] Add Set Boolean Condition Instruction Definitions and MC Tests (details)
  782. [AArch64][GlobalISel] clang-format AArch64LegalizerInfo.cpp. NFC. (details)
  783. [AArch64][GlobalISel] Make G_STORE <8 x s8> legal. (details)
  784. [lldb] Clarify docstring for SBBlock::IsInlined, NFC (details)
  785. [mlir][shape] Add `shape.cstr_require %bool` (details)
  786. [MLIR] Fix build failure due to https://reviews.llvm.org/D87059. (details)
  787. [scudo/standalone] Don't define test main function for Fuchsia (details)
  788. [NFC][Lsan] Fix zero-sized array compilation error (details)
  789. [NFC] clang-format one line (details)
  790. [sanitizer] Add facility to print the full StackDepot (details)
  791. [libc] Add implementation for hypotf (details)
  792. Revert "[sanitizer] Add facility to print the full StackDepot" (details)
  793. [AArch64] Emit zext move when the source of the zext is AssertZext or AssertSext (details)
  794. [X86] Add some demanded bits test cases for PDEP with constant mask (details)
  795. This is a test commit (details)
  796. Revert "This is a test commit" (details)
  797. [FPEnv] Use typed accessors in FPOptions (details)
  798. [AArch64] Add tests for zext pattern match with AssertZext/AssertSext operand, NFC (details)
  799. [NFC][fuzzer] Simplify StrcmpTest.cpp (details)
  800. Revert "[InstCombine] Canonicalize SPF_ABS to abs intrinc" (details)
  801. [sanitizer] Add facility to print the full StackDepot (details)
  802. [NFC][sanitizer] Disable a test on Windows (details)
  803. [NFC][gotsan] Fix 'format' error (details)
  804. AArch64: make sure jump table entries can reach entire image (details)
  805. [TableGen][GlobalISel] Fix handling of zero_reg (details)
  806. [SCEV] Generalize SCEVParameterRewriter to accept SCEV expression as target. (details)
  807. Revert "[libunwind] Support for leaf function unwinding." (details)
  808. Recommit "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  809. [mlir][Linalg] Evolve named ops to use assembly form and support linalg on tensors. (details)
  810. [Polly] Update map passed to SCEVParameterReweriter. (details)
  811. [Test] Missing range check removal opportunity (details)
  812. [UpdateCCTestChecks] Include generated functions if asked (details)
  813. [DWARFYAML][test] Use 'CHECK-NEXT:' to make checkers stricter. NFC. (details)
  814. [DWARFYAML] Make the include_directories, file_names and opcodes fields of the line table optional. (details)
  815. [libunwind] Support for leaf function unwinding. (details)
  816. [InstSimplify] add another test for NaN propagation; NFC (details)
  817. [AMDGPU] Set DS alignment requirements to be more strict (details)
  818. [SLP] Allow reordering of vectorization trees with reused instructions. (details)
  819. Revert "[amdgpu] Lower SGPR-to-VGPR copy in the final phase of ISel." (details)
  820. emacs: Add nofree and willreturn to list of attributes (details)
  821. IR: Move denormal mode parsing from MachineFunction to Function (details)
  822. [InstSimplify] fix fmin/fmax miscompile for partial undef vectors (PR47567) (details)
  823. [mlir][StandardToSPIRV] Handle vector of i1 case for lowering zexti to SPIR-V. (details)
  824. [clangd] Add option for disabling AddUsing tweak on some namespaces. (details)
  825. [AIX] Enable large code model when building with clang (details)
  826. [DAG] BuildVectorSDNode::getSplatValue - pull out repeated getNumOperands() calls. NFCI. (details)
  827. [X86][AVX] Add missing i686 broadcastm test coverage (details)
  828. [mlir][openacc] Support Index and AnyInteger in loop op (details)
  829. [mlir][openacc] Add missing operands for acc.data operation (details)
  830. [MLIR][SPIRV] Create new ctx for deserialization in roundtrips. (details)
  831. [DFSan] Add strpbrk wrapper. (details)
  832. [X86][AVX] lowerBuildVectorAsBroadcast - improve i64 BROADCASTM lowering on 32-bit targets (details)
  833. [MLIR][ODS] Add constBuilderCall for TypeArrayAttr (details)
  834. Extending Baremetal toolchain's support for the rtlib option. (details)
  835. Use one more byte to silence a warning from Vistual C++ (details)
  836. [NFC][ScheduleDAG] Remove unused EntrySU SUnit (details)
  837. [libomptarget] Disable build of amdgpu plugin as it doesn't build with rocm. (details)
  838. [clang-format] Add a option for the position of Java static import (details)
  839. [clang-format] NFC ensure the clang-format tests remain clang-formatted (details)
  840. [mlir][shape] Extend shape.cstr_require with a message. (details)
  841. [clangd] Add Random Forest runtime for code completion. (details)
  842. [AArch64][GlobalISel] Make <8 x s8> of G_BUILD_VECTOR legal. (details)
  843. AMDGPU: Don't sometimes allow instructions before lowered si_end_cf (details)
  844. [flang] Rework preprocessing of stringification (details)
  845. [ASan][NewPM] Fix byref-args.ll under NPM (details)
  846. [Sema] Handle objc_super special lookup when checking builtin compatibility (details)
  847. DebugInfo: Tidy up initializing multi-section contributions in DWARFContext (details)
  848. [test][HWAsan] Fix kernel-inline.ll under NPM (details)
  849. [CodeGen] emit CG profile for COFF object file (details)
  850. Reapply "RegAllocFast: Record internal state based on register units" (details)
  851. RegAllocFast: Rewrite and improve (details)
  852. CodeGen: Move split block utility to MachineBasicBlock (details)
  853. [X86][AVX] Add missing non AVX512VL broadcastm test coverage (details)
  854. PR47468: Fix findPHICopyInsertPoint, so that copies aren't incorrectly inserted after an INLINEASM_BR. (details)
  855. DebugInfo: Simplify line table parsing to take all the units together, rather than CUs and TUs separately (details)
  856. Linewrap & remove some dead typedefs from previous commit (details)
  857. [InstCombine][SVE] Skip scalable type for InstCombiner::getFlippedStrictnessPredicateAndConstant. (details)
  858. [test][TSan] Fix tests under NPM (details)
  859. [X86][AVX] lowerBuildVectorAsBroadcast - improve BROADCASTM lowering on non-VLX targets (details)
  860. scudo: Add an API for disabling memory initialization per-thread. (details)
  861. First pass on MLIR python context lifetime management. (details)
  862. clangd:  Make ompletionModelCodegen.py tpy2.7 compatible (details)
  863. [gn build] (manually) port 9b6765e784b3 (details)
  864. Pre-commit test for CSEing masked loads/stores (details)
  865. [gn build] Do not sync filenames containing variable references (details)
  866. [clang-format] Recognize "hxx" as a C++ header in clang-format-diff.py (details)
  867. Temporarily Revert "[SLP] Allow reordering of vectorization trees with reused instructions." (details)
  868. [gn build] (manually) port 9b6765e784b3 more (details)
  869. [gn build] add file i forgot to add in 929d91a55616 (details)
  870. [InstSimplify] add tests for constant folding fmin/fmax with undef op; NFC (details)
  871. clang: Make changes in 7c8bb409f31e py2.7-compatible (details)
  872. CompletionModelCodegen: Remove unused import (details)
  873. [OpenMP] Initial Support for OpenMP Webpage Documentation (details)
  874. [msan][asan] Add runtime flag intercept_strcmp (details)
  875. [llvm-cov] Allow commas in filenames passed to `-object` flag (details)
  876. [COFF] Move per-global .drective emission from AsmPrinter to TLOFCOFF (details)
  877. [spirv] Move device info from resource limit into target env (details)
  878. Temporarily Revert "[clangd] Add Random Forest runtime for code completion." (details)
  879. [test][InstrProf] Fix always_inline.ll under NPM (details)
  880. [instcombine][x86] Converted pdep/pext with shifted mask to simple arithmetic (details)
  881. [clang][module] Improve incomplete-umbrella warning (details)
  882. [clang] Remove profile available check for fsplit-machine-functions. (details)
  883. [NFC][sanitizer] Don't use ::testing::internal (details)
  884. [lld][WebAssembly] Fix -Wunused-variable after D87663 (details)
  885. [PowerPC] Implement Move to VSR Mask builtins in LLVM/Clang (details)
  886. [GlobalISel] Add lowering support for G_ABS and use for AArch64. (details)
  887. [SCEV] Fix an unused variable in -DLLVM_ENABLE_ASSERTIONS=off build (details)
  888. [NFC][Asan] Fix test broken by RegAllocFast (details)
  889. [NFC][StackSafety] Replace auto with type (details)
  890. [AArch64][GlobalISel] Legalize arithmetic ops for <4 x s16> (details)
  891. [AArch64][GlobalISel] Add tests for pre-existing selection support for <4 x s16> arithmetic/bitwise ops. (details)
  892. [NFC][LSan] Add REQUIRES: linux (details)
  893. [LiveDebugValues] Add `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` to suppress -Wunused-function (details)
  894. [llvm-install-name-tool] Validate -id value early (details)
  895. Temporarily Revert "RegAllocFast: Rewrite and improve" (details)
  896. [llvm-objcopy][MachO] Add llvm-bitcode-strip driver (details)
  897. Revert "[gn build] (manually) port 9b6765e784b3" anf follow-ups (details)
  898. [llvm-objcopy][MachO] Clean up the interface of Object (details)
  899. [gn build] (manually) port 5495b691646 (details)
  900. DebugInfo: Cleanup RLE dumping, using a length-constrained DataExtractor rather than carrying the end offset separately (details)
  901. [X86] Invert the compares in inline-asm-flag-output.ll so that the setcc instruction condition matches the test name. NFC (details)
  902. [X86] Fix copy paste mistake in @ccnp flag. (details)
  903. [lld-macho] create __TEXT,__unwind_info from __LD,__compact_unwind (details)
  904. [IRSim] Adding ilist for IRInstructionData. (details)
  905. [ASAN] Properly deal with musttail calls in ASAN (details)
  906. [AArch64][GlobalISel] Add legalization and selection support for <4 x s16> G_SHL. (details)
  907. [X86] Return from SimplifyDemandedBitsForTargetNode after calculating known bits for VSHLI/VSRAI/VSRLI. (details)
  908. Add -Wno-error=unknown flag to clang-format. (details)
  909. Revert "Temporarily Revert "[clangd] Add Random Forest runtime for code completion."" (details)
  910. InstCombiner.h - remove unnecessary KnownBits forward declaration. NFCI. (details)
  911. Revert "Revert "[gn build] (manually) port 9b6765e784b3" anf follow-ups" (details)
  912. [gn build] (manually) merge 2124ca1d5 (details)
  913. [gn build] Port 2124ca1d5cb (details)
  914. lld/mach-o: Make tool scripts from 2124ca1d5cb py2.7-compatible (details)
  915. Change name of Record::TheInit to CorrespondingDefInit to make code clearer. (details)
  916. [HIP] Fix -gsplit-dwarf option (details)
  917. Revert "[HIP] Fix -gsplit-dwarf option" (details)
  918. Fixes complexity of map insert_or_assign with a hint. (details)
  919. [ConstantFolding] add undef handling for fmin/fmax intrinsics (details)
  920. [InstCombine] regenerate test checks; NFC (details)
  921. [InstCombine] auto-generate test checks; NFC (details)
  922. [MemLoc] Support bcmp in MemoryLocation::getForArgument (details)
  923. [SCEVExpander] Support expanding nonintegral pointers with constant base. (details)
  924. [BasicAA] Regenerate test checks (details)
  925. [NFC][PhaseOrdering] Add test showing SROA not being performed after loop unrolling (details)
  926. [InstCombine] Regenerate test checks (NFC) (details)
  927. [scudo/standalone] Fix undefined behavior in checksum test (details)
  928. align __TEXT,__unwind_info to 8 byte boundary (details)
  929. [Local] Clean up enforceKnownAlignment() (NFC) (details)
  930. [Driver] Add disabled-by-default -Wuse-ld-path for the deprecation warning for -fuse-ld=/abs/path (details)
  931. [ORC][examples] Add an OrcV2 example for IR optimization via IRTransformLayer. (details)
  932. Fix some clang-tidy bugprone-argument-comment issues (details)
  933. [FunctionAttrs] Remove redundant check. NFC (details)
  934. [FunctionAttrs] Inline setDoesNotRecurse() and delete it. NFC (details)
  935. [tools][remarks-shlib] Don't build libRemarks.so without PIC (details)
  936. [X86] Rename combineExtInVec to combineEXTEND_VECTOR_INREG. NFCI. (details)
  937. [MemLoc] Support lllvm.memcpy.inline in MemoryLocation::getForArgument (details)
  938. JSONCompilationDatabase.cpp - cleanup key parsing error checks. NFCI. (details)
  939. [X86] combineX86ShufflesRecursively - fix use after move warning. NFCI. (details)
  940. DWARFYAML::emitDebugSections - fix use after std::move warnings. NFCI. (details)
  941. [X86] Rename getExtendInVec to getEXTEND_VECTOR_INREG. NFCI. (details)
  942. [X86][SSE] Enable ZERO_EXTEND_VECTOR_INREG shuffle combining on SSE41 targets. (details)
  943. [X86][SSE] Fold EXTEND_VECTOR_INREG(EXTEND_VECTOR_INREG(X)) -> EXTEND_VECTOR_INREG(X) (details)
  944. [Diagnostics] Fixed -Wsizeof-array-div false positive when divisor is sizeof reference type (PR47495) (details)
  945. [InstCombine] replace zombie unreachable values with 'undef' before erasing (details)
  946. [InstCombine] factorize left shifts of add/sub (details)
  947. [X86][SSE] Fold SIGN_EXTEND(SIGN_EXTEND_VECTOR_INREG(X)) -> SIGN_EXTEND_VECTOR_INREG(X) (details)
  948. [X86][SSE] Fold EXTEND_VECTOR_INREG(EXTRACT_SUBVECTOR(EXTEND(X),0)) -> EXTEND_VECTOR_INREG(X) (details)
  949. [LVI] Refactor getValueFromICmpCondition (NFC) (details)
  950. [CVP] Add tests for mask comparisons (NFC) (details)
  951. [LVI] Get value range from mask comparison (details)
  952. [CVP] Additional tests for comparison with offset (NFC) (details)
  953. [ARM] Constant fold VMOVrh (details)
  954. [X86] Add 32-bit command lines to masked_store.ll and masked_load.ll (details)
  955. [X86] Stop reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore from creating scalar i64 load/stores in 32-bit mode (details)
  956. [X86] Pre-commit test cases for D87863. NFC (details)
  957. [X86] Make reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore work for avx512 after type legalization. (details)
  958. [clangd] Fix typo in field name (details)
  959. [llvm-profdata]Fix llvm-profdata crash on compact binary profile (details)
  960. [XRay] Change mips to use version 2 sled (PC-relative address) (details)
  961. [Polly][NewPM] Port Simplify to the new pass manager (details)
  962. [PowerPC] Pass nofpexcept flag to custom lowered constrained ops (details)
  963. [c++20] For P1907R1: Add checking for structural types for non-type (details)
  964. [lld-macho] Mark weak symbols in symbol table (details)
  965. [lld-macho] Export trie addresses should be relative to the image base (details)
  966. [EHStreamer] Fix a "Continue to action" -fverbose-asm comment when multi-byte LEB128 encoding is needed (details)
  967. [docs][flang] Fix typos (details)
  968. Add missing new line after debug logging in MLIRContext (NFC) (details)
  969. [c++20] Consistent with the intent to allow all plausible types in (details)
  970. [SyntaxTree][Synthesis] Improve testing `createLeaf` (details)
  971. [AST] Fix dependence-bits for CXXDefaultInitExpr. (details)
  972. [SyntaxTree] Test for '\' inside token. (details)
  973. [clang][AArch64] Correct return type of Neon vqmovun intrinsics (details)
  974. [clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage (details)
  975. [LSR] Preserve MSSA when using SplitCriticalEdge. (details)
  976. Fix crash in the pass pipeline when local reproducer is enabled (details)
  977. [CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder (details)
  978. [Test] Test auto-update (details)
  979. [lld][ELF][test] Add additional LTO testing (details)
  980. [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl() (details)
  981. [compiler-rt] Fix atomic support functions on 32-bit architectures (details)
  982. [SyntaxTree][Synthesis] Implement `deepCopy` (details)
  983. [mlir] Shape.AssumingOp implements RegionBranchOpInterface. (details)
  984. [AArch64] Cortex-A55 scheduler model (details)
  985. [NFC][ARM] More tail predication tests. (details)
  986. [llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols. (details)
  987. Do not dereference an array out of bound just to take its address (details)
  988. [ARM] Select f32 constants with vmov.f16 (details)
  989. [mlir][VectorOps] Loosen restrictions on vector.reduction types (details)
  990. Recommit "[SCEV] Look through single value PHIs." (details)
  991. [AST] Reduce the size of TemplateArgumentLocInfo. (details)
  992. Revert "[NFC][ScheduleDAG] Remove unused EntrySU SUnit" (details)
  993. Fix buildbot. (details)
  994. [MLIR] Fix typo and expand gpu.host_register description. (details)
  995. [SyntaxTree][NFC] follow naming convention + remove auto on empty vector declaration (details)
  996. [SVE] Use NEON for extract_vector_elt when the index is in range. (details)
  997. [SVE] Change definition of reduction ISD nodes to have an SVE vector result type. (details)
  998. [clang-tidy] New check cppcoreguidelines-prefer-member-initializer (details)
  999. [Statepoints][ISEL] gc.relocate uniquification should be based on SDValue, not IR Value. (details)
  1000. [gn build] Port 4fc0214a101 (details)
  1001. DWARFYAML::emitDebugSections - remove unnecessary cantFail(success) call. NFCI. (details)
  1002. [llvm-readobj/libObject] - Get rid of `FirstSym` argument. NFCI. (details)
  1003. Change comments about order of classes in superclass list. (details)
  1004. DWARFEmitter.cpp - use auto const& iterators in for-range loops to avoid copies. NFCI. (details)
  1005. [ASTImporter] Refactor IsStructurallyEquivalent's Decl overloads to be more consistent (details)
  1006. [AIX][Clang][Driver] Add handling of nostartfiles option (details)
  1007. [SLP] Allow reordering of vectorization trees with reused instructions. (details)
  1008. [analyzer][solver] Fix issue with symbol non-equality tracking (details)
  1009. Update update_analyze_test_checks.py to support API changes from D83004 (details)
  1010. [CostModel][X86] Add some select shuffle costs tests for D87884 (details)
  1011. [mlir][openacc] Add attributes to parallel op async, wait and self clauses (details)
  1012. [LoopSimplifyCFG][NewPM] Rename simplify-cfg -> loop-simplifycfg (details)
  1013. [PowerPC] Add vector pair load/store instructions and vector pair register class (details)
  1014. [LLD][ELF][test] Fix CHECKs in map-file test (details)
  1015. [TextAPI] clean up auto usages in tests, NFC (details)
  1016. [SVE][CodeGen] Mark ptrue/pfalse instructions as rematerializable (details)
  1017. ProfileSummary.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. (details)
  1018. Fix Wdocumentation unknown parameter warnings. NFCI. (details)
  1019. MachineCSE.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. (details)
  1020. [clang] Fix a misleading variable name. NFC. (details)
  1021. [Sema] Split special builtin type lookups into a separate function (details)
  1022. SLPVectorizer.cpp - fix include ordering. NFCI. (details)
  1023. TargetPassConfig.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. (details)
  1024. [ARM][CMSE] Issue an error if passing arguments through memory across (details)
Commit f42f733af968e75948442c578e8ad0ae101cc8a3 by llvm-dev
SwitchLoweringUtils.h - reduce TargetLowering.h include. NFCI.

Only include the headers we actually need, and move the remaining includes down to implicit dependent files.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
The file was modifiedllvm/lib/CodeGen/SwitchLoweringUtils.cpp
The file was modifiedllvm/include/llvm/CodeGen/SwitchLoweringUtils.h
Commit c01d28dc51bdd33404828a327320e3307a51bb22 by ecaldas
[SyntaxTree] Specialize `TreeTestBase` for `BuildTreeTest`, `MutationsTest` and `SynthesisTest`

Differential Revision: https://reviews.llvm.org/D87374
The file was modifiedclang/unittests/Tooling/Syntax/CMakeLists.txt
The file was modifiedclang/unittests/Tooling/Syntax/TreeTestBase.cpp
The file was addedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
The file was modifiedclang/unittests/Tooling/Syntax/MutationsTest.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTestBase.h
Commit e5d92691bdf187c6815d33c32201fb8187010748 by Jonas Devlieghere
Fix typo in dsymutil.rst

Differential revision: https://reviews.llvm.org/D87438
The file was modifiedllvm/docs/CommandGuide/dsymutil.rst
Commit 5638df195048eef74d4ec2633f8fb6f3dd935f1d by benny.kra
Introduce linalg.vecmat

This patch adds a new named structured op to accompany linalg.matmul and
linalg.matvec. We needed it for our codegen, so I figured it would be useful
to add it to Linalg.

Reviewed By: nicolasvasilache, mravishankar

Differential Revision: https://reviews.llvm.org/D87292
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/EDSC/Intrinsics.h
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
Commit 626209cac0559ebe06a9bd4792fac5d31333c597 by Azharuddin Mohammed
Revert "[gcov] Delete flush_fn_list (unused since D83149)"

This reverts commit 01cdab0b335e21321987505e66f34c24dc55b0d7.

It was causing the instrprof-darwin-exports.c test to fail.
```
Undefined symbols for architecture x86_64:
  "_flush_fn_list", referenced from:
     -exported_symbol[s_list] command line option
```
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
Commit be7cef789e75a354831d528ecc76b325f0f5da68 by llvmgnsyncbot
[gn build] Port c01d28dc51b
The file was modifiedllvm/utils/gn/secondary/clang/unittests/Tooling/Syntax/BUILD.gn
Commit 009cd4e491033f57f547a7bda63e35b50a6e5cf7 by kbarton
[PPC][GlobalISel] Add initial GlobalIsel infrastructure

This adds the initial GlobalISel skeleton for PowerPC. It can only run
ir-translator and legalizer for `ret void`.

This is largely based on the initial GlobalISel patch for RISCV
(https://reviews.llvm.org/D65219).

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D83100
The file was addedllvm/lib/Target/PowerPC/GISel/PPCLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/CMakeLists.txt
The file was addedllvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-ret.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.cpp
The file was modifiedllvm/lib/Target/PowerPC/LLVMBuild.txt
The file was addedllvm/lib/Target/PowerPC/GISel/PPCCallLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
The file was addedllvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.h
The file was addedllvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.cpp
The file was addedllvm/lib/Target/PowerPC/GISel/PPCInstructionSelector.cpp
The file was addedllvm/lib/Target/PowerPC/GISel/PPCLegalizerInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetMachine.cpp
The file was addedllvm/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
The file was addedllvm/lib/Target/PowerPC/GISel/PPCCallLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/GlobalISel/legalize-ret.mir
The file was modifiedllvm/lib/Target/PowerPC/PPC.h
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h
Commit 6b13cfe7399b0aba726873f807ddfcdd9f967563 by etiotto
[ArgumentPromotion]: Copy function metadata after promoting arguments

The argument promotion pass currently fails to copy function annotations
over to the modified function after promoting arguments.
This patch copies the original function annotation to the new function.

Reviewed By: fhann

Differential Revision: https://reviews.llvm.org/D86630
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
The file was modifiedllvm/test/Transforms/ArgumentPromotion/profile.ll
Commit c464f1d8f9a04d7b4b6cc81eac0891c46aba5950 by stilis
[lldb, tests] Correctly configure the yaml2obj paths

They are currently not being set correctly for the case of multi-config generators like XCode and VS. There's also a typo in one of the cmake files.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87466
The file was modifiedlldb/test/API/lit.site.cfg.py.in
The file was modifiedlldb/utils/lldb-dotest/CMakeLists.txt
Commit ab1de1fcfb0c53bc768deb8f8bacefad7d378b7b by i
[gcov] Delete flush_fn_list (unused since D83149)
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit e543708e5ea7af0ec3ef11d6fe932db507472aa1 by mtrofin
[NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization.

llvm::EmbedBitcodeInModule handles serializing the passed-in module, if
the provided MemoryBufferRef is invalid. This is already the path taken
in one of the uses of the API - clang::EmbedBitcode, when called from
BackendConsumer::HandleTranslationUnit - so might as well do the same
here and reduce (by very little) code duplication.

The only difference this patch introduces is that the serialization happens
with ShouldPreserveUseListOrder set to true.

Differential Revision: https://reviews.llvm.org/D87339
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedllvm/include/llvm/Bitcode/BitcodeWriter.h
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
Commit 932aae77e92b08e63c0225b6eb37dfa80b310313 by SourabhSingh.Tomar
Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder."

This reverts commit f787c9a90c69f, this was causing some build issues.
The file was modifiedflang/docs/Calls.md
The file was modifiedflang/docs/LabelResolution.md
The file was modifiedflang/docs/Parsing.md
The file was modifiedflang/docs/FortranForCProgrammers.md
The file was modifiedflang/docs/ImplementingASemanticCheck.md
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/docs/Directives.md
The file was modifiedflang/docs/PullRequestChecklist.md
The file was modifiedflang/docs/ArrayComposition.md
The file was modifiedflang/docs/Overview.md
The file was modifiedflang/docs/FortranIR.md
The file was modifiedflang/docs/ControlFlowGraph.md
The file was modifiedflang/docs/Intrinsics.md
The file was modifiedflang/docs/ModFiles.md
The file was modifiedflang/docs/OpenMP-semantics.md
The file was modifiedflang/docs/IORuntimeInternals.md
The file was modifiedflang/docs/ParserCombinators.md
The file was modifiedflang/docs/C++17.md
The file was modifiedflang/docs/Character.md
The file was modifiedflang/docs/RuntimeDescriptor.md
The file was modifiedflang/docs/Preprocessing.md
The file was modifiedflang/docs/Semantics.md
The file was modifiedflang/docs/OptionComparison.md
The file was modifiedflang/docs/C++style.md
Commit cb8cb28ed90a10390bacb264d3b6cbb09c2ea94c by n54
[compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no

Add dev/iscsi/iscsi_ioctl.h fallback ioctl(2) operations.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
Commit b85c085c846c2cb5d24812555847846877ca13cb by n54
[compiler-rt] [netbsd] Improve code formatting

No functional change.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
Commit 46329f6079da99133eab7942e79226b2afb40e75 by anna
[ImplicitNullCheck] Handle instructions that preserve zero value

This is the first in a series of patches to make implicit null checks
more general. This patch identifies instructions that preserves zero
value of a register and considers that as a valid instruction to hoist
along with the faulting load. See added testcases.

Reviewed-By: reames, dantrushin

Differential Revision: https://reviews.llvm.org/D87108
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check.ll
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check-negative.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit d9c8b0256cfc673c2413b13993c9440be598818f by Lang Hames
[Support] Use unique_function rather than std::function for ThreadPool TaskTy.

This will allow non-copyable function objects (e.g. lambdas that capture
unique_ptrs) to be used with ThreadPool.

Differential Revision: https://reviews.llvm.org/D87467
The file was modifiedllvm/include/llvm/Support/ThreadPool.h
The file was modifiedllvm/unittests/Support/ThreadPool.cpp
Commit 6040d525507ba8a2593f0906259d012725b6aed2 by rupprecht
[NFC] Fix whitespace in lldb-vscode --help
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
Commit a0ffe2b21a5159f3f8eed8e98e488e723aa7cab3 by i
[PGO] Skip if an IndirectBrInst critical edge cannot be split

PGOInstrumentation runs `SplitIndirectBrCriticalEdges` but some IndirectBrInst
critical edge cannot be split. `getInstrBB` will crash when calling `SplitCriticalEdge`, e.g.

  int foo(char *p) {
    void *targets[2];
    targets[0] = &&indirect;
    targets[1] = &&end;
    for (;; p++)
      if (*p == 7) {
  indirect:
        goto *targets[p[1]]; // the self loop is critical in -O
      }
  end:
    return 0;
  }

Skip such critical edges to prevent a crash.

Reviewed By: davidxl, lebedev.ri

Differential Revision: https://reviews.llvm.org/D87435
The file was modifiedllvm/test/Transforms/PGOProfile/split-indirectbr-critical-edges.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
Commit bba736e5036f3983ca22f08dec277fdf37926115 by n54
[compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/utils/generate_netbsd_syscalls.awk
Commit 00460ae520e284ae8c0cd400c1c75c0c7a0e8fa7 by n54
[compiler-rt] [netbsd] Regenerate syscall hooks

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/include/sanitizer/netbsd_syscall_hooks.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc
Commit c195ae2f003261f2c25f569b07ae556dee57f17d by craig.topper
[SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support.

Previously we could match fcmp+select to a reduction if the fcmp had
the nonans fast math flag. But if the select had the nonans fast
math flag, InstCombine would turn it into a fminnum/fmaxnum intrinsic
before SLP gets to it. Seems fairly likely that if one of the
fcmp+select pair have the fast math flag, they both would.

My plan is to start vectorizing the fmaxnum/fminnum version soon,
but I wanted to get this code out as it had some of the strangest
fast math flag behaviors.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
Commit 54fcea86b1658f5fc70f4f1e7a763f87742d79bc by Lang Hames
Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy."

This reverts commit d9c8b0256cfc673c2413b13993c9440be598818f.

Some MSVC std::packaged_task implementations are not compatible with move-only types.
This caused failures on some of the Windows builders (e.g.
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/69412).

Reverting until I can come up with a workaround.
The file was modifiedllvm/include/llvm/Support/ThreadPool.h
The file was modifiedllvm/unittests/Support/ThreadPool.cpp
Commit 4252f3009b169db250559d6a197b399375f89b27 by d.c.ddcc
[WebAssembly] Set unreachable as canonical to permit disassembly

Currently, using llvm-objdump to disassemble a function containing
unreachable will trigger an assertion while decoding the opcode, since both
unreachable and debug_unreachable have the same encoding. To avoid this, set
unreachable as the canonical decoding.

Differential Revision: https://reviews.llvm.org/D87431
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
Commit a39423084cbbeb59e81002e741190dccf08b5c82 by joker.eph
Make struct dialects have the same field name as everything else, 'dialect'.

Also make the behavior of getting a dialect more forgiving, in the case where
there isn't a dialect associated with an attribute.

Depends On D86807

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D86809
The file was modifiedmlir/lib/TableGen/Attribute.cpp
The file was modifiedmlir/include/mlir/IR/OpBase.td
Commit d867be5de389f18cf3c1a61c8b9cbf8bfda8fe28 by joker.eph
Allow Dialects to be initialized via nullptr.

This allows Dialect to follow the MLIR style of nullable objects, and in fact is expected by `Dialect::operator bool() const` which already tests whether `def == nullptr`. This just wasn't a reachable situation, because the constructor was dereferencing the pointer unconditionally.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86807
The file was modifiedmlir/lib/TableGen/Dialect.cpp
Commit 5692497aef08ab4810f125669bc2f6aa79d9ec7e by thakis
[gn build] (semi-manually) port 009cd4e4910
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/PowerPC/BUILD.gn
Commit 2141705337989195b448e292955f08884babbcbd by joker.eph
Fix operator!= for Dialects.

Currently the global operator!=(bool, bool) is selected due to the implicit bool
conversion operator. Since this is never the desired semantics, we give it a
standard operator!= and make the bool conversion explicit.

Depends On D86809

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86810
The file was modifiedmlir/include/mlir/TableGen/Dialect.h
Commit 783e28a50839e045b72ec11946295fba104642fc by kparzysz
[Hexagon] Split pair-based masked memops
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-split-masked.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
Commit 7ddfd9b3ebfd3f3db7c6c2e8c72308ff3a3426f2 by ctetreau
[SVE] Bail from VectorUtils heuristics for scalable vectors

Bail from maskIsAllZeroOrUndef and maskIsAllOneOrUndef prior to iterating over the number of
elements for scalable vectors.

Assert that the mask type is not scalable in possiblyDemandedEltsInMask .

Assert that the types are correct in all three functions.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87424
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was addedllvm/test/Transforms/InstCombine/AArch64/VectorUtils_heuristics.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
Commit b1b9806370196234a62304d308a9f8873759ec28 by anna
[ImplicitNullChecks] NFC: Remove unused PointerReg arg in dep analysis

The PointerReg arg was passed into the dependence function for an
assertion which no longer exists. So, this patch updates the dependence
functions to avoid the PointerReg in the signature.

Tests-Run: make check
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp
Commit 878cb5170de9bf03798a40185952bdf50fe4a15e by sivachandra
[libc][NFC][obvious] Remove a redudant dep of strcmp implementation.
The file was modifiedlibc/src/string/CMakeLists.txt
Commit 4934127e627d7c58342be15bc9230a7cbdf5273f by Yaxun.Liu
Diable sanitizer options for amdgpu

Currently AMDGPU does not support sanitizer. Disable
sanitizer options for now until they are supported.

Differential Revision: https://reviews.llvm.org/D87461
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was addedclang/test/Driver/hip-sanitize-options.hip
Commit d4bf90271fa988101bdad4f2e78b8c3a0b85fc2d by vkeles
GlobalISel: Combine fneg(fneg x) to x

https://reviews.llvm.org/D87473
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-fneg.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
Commit adb738899e6378ae0023acb19cde57a585dce502 by nikita.ppv
[InstCombine] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
Commit 476836331f7d31ca46779742dccf2e26698b94ed by nikita.ppv
[InstCombine] Add more tests for select op replacement (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 99e78cb7185db1a15afd33020a1e026dc7ac5e1b by nikita.ppv
[DemandedBits] Add braces to large if (NFC)

While the if only contains a single statement, it happens to be
a huge switch. Add braces to make this code easier to read.
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp
Commit a5168bdb4a25485ac62e18bdc538b4842bc9fbd9 by nikita.ppv
[DemandedBits][BDCE] Add support for min/max intrinsics

Add DemandedBits / BDCE support for min/max intrinsics: If the low
bits are not demanded in the result, they also aren't demanded in
the operands.

Differential Revision: https://reviews.llvm.org/D87161
The file was modifiedllvm/test/Transforms/BDCE/intrinsics.ll
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp
Commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd by Lang Hames
[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr.

Making MaterializationResponsibility instances immovable allows their
associated VModuleKeys to be updated by the ExecutionSession while the
responsibility is still in-flight. This will be used in the upcoming
removable code feature to enable safe merging of resource keys even if
there are active compiles using the keys being merged.
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
Commit cb19e8c6d192a108b72ab07362921864a9e244f9 by sivachandra
[libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h.

This makes SqrtLongDoubleX86.h includable by itself.
The file was modifiedlibc/utils/FPUtil/SqrtLongDoubleX86.h
Commit c9826829d74e637163fdb0351870b8204e62d6e6 by bryan.chan
[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
Commit fb109c42d91c30c8c7497ef1fd7aff6f2969c6e7 by flo
[DSE] Switch to MemorySSA-backed DSE by default.

The tests have been updated and I plan to move them from the MSSA
directory up.

Some end-to-end tests needed small adjustments. One difference to the
legacy DSE is that legacy DSE also deletes trivially dead instructions
that are unrelated to memory operations. Because MemorySSA-backed DSE
just walks the MemorySSA, we only visit/check memory instructions. But
removing unrelated dead instructions is not really DSE's job and other
passes will clean up.

One noteworthy change is in llvm/test/Transforms/Coroutines/ArgAddr.ll,
but I think this comes down to legacy DSE not handling instructions that
may throw correctly in that case. To cover this with MemorySSA-backed
DSE, we need an update to llvm.coro.begin to treat it's return value to
belong to the same underlying object as the passed pointer.

There are some minor cases MemorySSA-backed DSE currently misses, e.g. related
to atomic operations, but I think those can be implemented after the switch.

This has been discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-August/144417.html

For the MultiSource/SPEC2000/SPEC2006 the number of eliminated stores
goes from ~17500 (legayc DSE) to ~26300 (MemorySSA-backed). More numbers
and details in the thread on llvm-dev.

Impact on CTMark:
```
                                     Legacy Pass Manager
                        exec instrs    size-text
O3                       + 0.60%        - 0.27%
ReleaseThinLTO           + 1.00%        - 0.42%
ReleaseLTO-g.            + 0.77%        - 0.33%
RelThinLTO (link only)   + 0.87%        - 0.42%
RelLO-g (link only)      + 0.78%        - 0.33%
```
http://llvm-compile-time-tracker.com/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions
```
                                     New Pass Manager
                       exec instrs.   size-text
O3                       + 0.95%       - 0.25%
ReleaseThinLTO           + 1.34%       - 0.41%
ReleaseLTO-g.            + 1.71%       - 0.35%
RelThinLTO (link only)   + 0.96%       - 0.41%
RelLO-g (link only)      + 2.21%       - 0.35%
```
http://195.201.131.214:8000/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions

Reviewed By: asbirlea, xbolva00, nikic

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

Why are they mutable? :)
The file was modifiedlld/ELF/Arch/PPC64.cpp
Commit b34f116856306d97aa9244a46eb1643a8ddd49a8 by psteinfeld
[flang] Fix assert on constant folding of extended types

When we define a derived type that extends another derived type, we can then
create a structure constructor that contains values for the fields of both the
child type and its parent.  The compiler's internal representation of that
value contains the name of the parent type where a component name would
normally appear.  This caused an assert during contant folding.

There are three cases for components that appear in structure constructors.
The first is the normal case of a component appearing in a structure
constructor for its type.

  The second is a component of the parent (or grandparent) type appearing in a
  structure constructor for the child type.

  The third is the parent type component, which can appear in the structure
  constructor of its child.

There are also cases where the component can be arrays.

I created the test case folding12.f90 that covers all of these cases and
modified the code to handle them.

Most of my changes were to the "Find()" method of the type
"StructureConstructor" where I added code to cover the second and third cases
described above.  To handle these cases, I needed to create a
"StructureConstructor" for the parent type component and return it.  To handle
returning a newly created "StructureConstructor", I changed the return type of
"Find()" to be "std::optional" rather than an ordinary pointer.

This change supersedes D86172.

Differential Revision: https://reviews.llvm.org/D87151
The file was addedflang/test/Evaluate/folding12.f90
The file was modifiedflang/include/flang/Evaluate/type.h
The file was modifiedflang/include/flang/Evaluate/expression.h
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/lib/Evaluate/expression.cpp
The file was modifiedflang/lib/Evaluate/type.cpp
Commit 4e3edef4b8b637c0c76897497eb7c66f00157210 by rnk
Use pragmas to work around MSVC x86_32 debug miscompile bug

Halide users reported this here: https://llvm.org/pr46176
I reported the issue to MSVC here:
https://developercommunity.visualstudio.com/content/problem/1179643/msvc-copies-overaligned-non-trivially-copyable-par.html

This codepath is apparently not covered by LLVM's unit tests, so I added
coverage in a unit test.

If we want to support this configuration going forward, it means that is
in general not safe to pass a SmallVector<T, N> by value if alignof(T)
is greater than 4. This doesn't appear to come up often because passing
a SmallVector by value is inefficient and not idiomatic: it copies the
inline storage. In this case, the SmallVector<LLT,4> is captured by
value by a lambda, and the lambda is passed by value into std::function,
and that's how we hit the bug.

Differential Revision: https://reviews.llvm.org/D87475
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
Commit 0448d11a06b451a63a8f60408fec613ad24801ba by Amara Emerson
[AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0.

With optimizations we leave the decision to eliminate fallthrough branches to
bock placement, but at -O0 we should do it in the selector to save code size.

This regressed -O0 with a recent change to a combiner.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir
The file was modifiedllvm/test/CodeGen/AArch64/unwind-preserved.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-xor.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir
Commit 2c73bef7fad4bb92213c9e8ace7d98a231efe027 by rnk
Fix wrong comment about enabling optimizations to work around a bug
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
Commit 035396197a5f129c5ec42e9e46a85c32fa1c1b84 by zarko
Remove unused variable introduce in 0448d11a06b451a causing build
failures with -Werror on.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 0e47a8d17fe85b4ab810a17cde4178b2729f2363 by Xing
[obj2yaml] Add support for dumping the .debug_ranges section.

This patch adds support for dumping the .debug_ranges section to
elf2yaml.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87429
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-ranges.yaml
Commit bc0a35f3b7dd45077d16b064c8d5c37e6a907d58 by Jonas Devlieghere
[lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform

This fixes the following assertion in TestPlatformPython.py.

  Assertion failed: (id != 0 && "Forgot to add function to
  registry?")
The file was modifiedlldb/source/API/SBPlatform.cpp
Commit 0a391c60793bae25804d2a82e5a26e2b9c7a69a1 by ravishankarm
[mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp

Differential Revision: https://reviews.llvm.org/D87307
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/test/lib/IR/TestSlicing.cpp
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
The file was addedmlir/test/IR/slice.mlir
Commit 84c2c4977dfe89112fd564a69c693d271663229c by peter
scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot

An upcoming change to Scudo will change how we use the TLS slot
in tsd_shared.h, which will be a little easier to deal with if
we can remove the code path that calls pthread_getspecific and
pthread_setspecific. The only known user of this code path is Fuchsia.

We can't eliminate this code path by making Fuchsia use ELF TLS
because although Fuchsia supports ELF TLS, it is not supported within
libc itself. To address this, Roland McGrath on the Fuchsia team has
proposed that Scudo will optionally call a platform-provided function
to access a TLS slot reserved for Scudo. Android also has a reserved
TLS slot, but the code that accesses the TLS slot lives in Scudo.

We can eliminate some complexity and duplicated code by having Android
use the same mechanism that was proposed for Fuchsia, which is what
this change does. A separate change to Android implements it.

Differential Revision: https://reviews.llvm.org/D87420
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_shared.h
Commit d876c7c8ec5387aac14041cace1833b243e5b335 by peter
scudo: Remove the THREADLOCAL macro.

Replace all remaining uses with thread_local, which is a C++11
standard feature.

Differential Revision: https://reviews.llvm.org/D87478
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/internal_defs.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h
Commit b22d45049682d1461b6b786f159681e2e5c2ce24 by michael.hliao
Remove dependency on clangASTMatchers.

- It seems no long required for shared library builds.
The file was modifiedclang/lib/CodeGen/CMakeLists.txt
Commit 39dc75f66c60025539940ff47b105418645c025f by michael.hliao
Revert "[EarlyCSE] Equivalent SELECTs should hash equally"

This reverts commit c9826829d74e637163fdb0351870b8204e62d6e6 as it
breaks regression tests.
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
Commit 3f7c3e84ad69f1ffa767b1b7ce3aa36de6c30f87 by Vitaly Buka
[Asan] Fix __asan_update_allocation_context

Update both thread and stack.
Update thread and stack as atomic operation.
Keep all 32bit of TID as now we have enough bits.

Depends on D87135.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87217
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/asan_update_allocation.cpp
Commit 41e68f7ee7b3bb33e9acb0502339a858806e8523 by michael.hliao
[EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6

In addition to calculate hash consistently by swapping SELECT's
operands, we also need to inverse the select pattern favor to match the
original logic.

[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
Commit 16ba78ee627c3fe66906349e8c90ee8cc1224298 by jano.vesely
libclc/spirv: Add missing files from D85911

Fixes: 060c8e083dd637866854acb6a0823c45b2ef68ef
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
The file was addedlibclc/spirv/lib/math/fma.cl
The file was addedlibclc/spirv/lib/math/fma.inc
The file was addedlibclc/spirv64/lib/math/fma.cl
The file was addedlibclc/spirv64/lib/math/fma.inc
Commit da9244882804ec6479aac70334fd7f7b4baf855e by mtrofin
[NFC][MLInliner] Presort instruction successions.

Differential Revision: https://reviews.llvm.org/D87489
The file was modifiedllvm/lib/Analysis/InlineSizeEstimatorAnalysis.cpp
Commit e45b0708ae81ace27de53f12b32a80601cb12bf3 by SourabhSingh.Tomar
[DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange.

    This is to fix CodeView build failure https://bugs.llvm.org/show_bug.cgi?id=47287
    after DIsSubrange upgrade D80197

    Assert condition is now removed and Count is calculated in case LowerBound
    is absent or zero and Count or UpperBound is constant. If Count is unknown
    it is later handled as VLA (currently Count is set to zero).

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D87406
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
Commit f787fe15d8e1cb63b40235e781cd7c2e130bbcd6 by michael.hliao
[EarlyCSE] Remove unnecessary operand swap.

- As min/max are commutative operators, there is no need to swap
  operands. That breaks the convention calculating the hash value.
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/sad.ll
Commit 525c83cee00a3a92d9b1a9d6f39ee4fd6c0c798d by esme.yi
[NFC][PowerPC] Add tests of constants-i64.
The file was modifiedllvm/test/CodeGen/PowerPC/constants-i64.ll
Commit e38be7091ee3d00430652aaa7b66ba3fc8394916 by gchatelet
[Clang] Clarify __builtin_memcpy_inline documentation

This patch updates the documentation about `__builtin_memcpy_inline` and reorders the sections so it is more consitent and understandable.

Differential Revision: https://reviews.llvm.org/D87458
The file was modifiedclang/docs/LanguageExtensions.rst
Commit 46416f08031f6fcaccd9f51430f7a71c5f510495 by martin
[CodeGen] [WinException] Remove a redundant explicit section switch for aarch64

The following EmitWinEHHandlerData() implicitly switches to .xdata, just
like on x86_64.

This became orphaned from the original code requiring it in
0b61d220c9b1f0 / https://reviews.llvm.org/D61095.

Differential Revision: https://reviews.llvm.org/D87447
The file was modifiedllvm/test/CodeGen/AArch64/wineh-mingw.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinException.cpp
The file was modifiedllvm/test/CodeGen/AArch64/wineh1.mir
The file was modifiedllvm/test/CodeGen/AArch64/win64-jumptable.ll
Commit 700fbe591ac0f29c76e9f2bd77d752d4bd56d274 by martin
[MC] [Win64EH] Canonicalize ARM64 unwind opcodes

Convert 2-byte opcodes to equivalent 1-byte ones.

Adjust the existing exhaustive testcase to avoid being altered by
the simplification rules (to keep that test exercising all individual
opcodes).

Fix the assembler parser limits for register pairs; for .seh_save_regp
and .seh_save_regp_x, we can allow up to x29, for a x29+x30 pair
(which gets remapped to the UOP_SaveFPLR(X) opcodes), for .seh_save_fregp
and .seh_save_fregpx, allow up to d14+d15.

Not creating .seh_save_next for float register pairs, as the
actual unwinder implementation in current versions of Windows is buggy
for that case.

This gives a minimal but measurable size reduction. (For a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 48 bytes. The opcode
sequences are padded to a 4 byte boundary, so very small improvements
might not end up mattering directly.)

Differential Revision: https://reviews.llvm.org/D87367
The file was modifiedllvm/test/MC/AArch64/seh.s
The file was addedllvm/test/MC/AArch64/seh-optimize.s
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
Commit 1308bb99e06752ab0b5175c92da31083f91af921 by martin
[MC] [Win64EH] Write packed ARM64 epilogues if possible

This gives a pretty substantial size reduction; for a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 66 KB.

Differential Revision: https://reviews.llvm.org/D87369
The file was modifiedllvm/test/MC/AArch64/seh.s
The file was addedllvm/test/MC/AArch64/seh-packed-epilog.s
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
The file was modifiedllvm/test/CodeGen/AArch64/wineh6.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh7.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh3.mir
The file was modifiedllvm/include/llvm/MC/MCWinEH.h
Commit 28012e00d80b994ef0709377da15e2b25e6c0b72 by yrouban
[NewPM] Introduce PreserveCFG check

Check that all passes, which report they preserve CFG,
are really preserving CFG.
A new standard instrumentation is introduced. It can be
switched on/off by the flag verify-cfg-preserved, which
is on by default for debug builds.

Reviewers: kuhar, fedor.sergeev

Differential Revision: https://reviews.llvm.org/D81558
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
Commit 1e1770a07ec0f6a3576362ea5eb97aedd33f4b26 by david.sherwood
[SVE][CodeGen] Fix InlineFunction for scalable vectors

When inlining functions containing allocas of scalable vectors we
cannot specify the size in the lifetime markers, since we don't
know this at compile time.

Added new test here:

  test/Transforms/Inline/AArch64/sve-alloca-merge.ll

Differential Revision: https://reviews.llvm.org/D87139
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was addedllvm/test/Transforms/Inline/AArch64/sve-alloca-merge.ll
Commit d380b582f7f04f7635b1fbdb8347a6095660a1b6 by ravishankarm
[mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation.

The LinalgTilingPattern class dervied from the base deletes the
original operation. This allows for the use case where the more
transformations are necessary on the original operation after
tiling. In such cases the pattern can derive from
LinalgBaseTilingPattern instead of LinalgTilingPattern.

Differential Revision: https://reviews.llvm.org/D87308
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
Commit 76e85ae268f8e64540703b0d1710d27ef0d36040 by ro
[clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris

As reported in Bug 42535, `clang` doesn't inline atomic ops on 32-bit
Sparc, unlike `gcc` on Solaris.  In a 1-stage build with `gcc`, only two
testcases are affected (currently `XFAIL`ed), while in a 2-stage build more
than 100 tests `FAIL` due to this issue.

The reason for this `gcc`/`clang` difference is that `gcc` on 32-bit
Solaris/SPARC defaults to `-mpcu=v9` where atomic ops are supported, unlike
with `clang`'s default of `-mcpu=v8`.  This patch changes `clang` to use
`-mcpu=v9` on 32-bit Solaris/SPARC, too.

Doing so uncovered two bugs:

`clang -m32 -mcpu=v9` chokes with any Solaris system headers included:

  /usr/include/sys/isa_defs.h:461:2: error: "Both _ILP32 and _LP64 are defined"
  #error "Both _ILP32 and _LP64 are defined"

While `clang` currently defines `__sparcv9` in a 32-bit `-mcpu=v9`
compilation, neither `gcc` nor Studio `cc` do.  In fact, the Studio 12.6
`cc(1)` man page clearly states:

            These predefinitions are valid in all modes:
  [...]
               __sparcv8 (SPARC)
               __sparcv9 (SPARC -m64)

At the same time, the patch defines `__GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248]`
for a 32-bit Sparc compilation with any V9 cpu.  I've also changed
`MaxAtomicInlineWidth` for V9, matching what `gcc` does and the Oracle
Developer Studio 12.6: C User's Guide documents (Ch. 3, Support for Atomic
Types, 3.1 Size and Alignment of Atomic C Types).

The two testcases that had been `XFAIL`ed for Bug 42535 are un-`XFAIL`ed
again.

Tested on `sparcv9-sun-solaris2.11` and `amd64-pc-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D86621
The file was modifiedcompiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp
The file was modifiedcompiler-rt/test/profile/Posix/instrprof-gcov-parallel.test
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c
The file was modifiedclang/lib/Basic/Targets/Sparc.cpp
The file was modifiedclang/lib/Basic/Targets/Sparc.h
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
Commit b8ea47a38039c57e863e3047c33d8584e21360f0 by noreply
Uncapitalize word in LanguageExtensions.rst
The file was modifiedclang/docs/LanguageExtensions.rst
Commit a68673cc067a190f5a9d0f0e3e4837601caf4504 by marius.brehler
[mlir] Fix generation of AVX512 dialect documentation

This changes adjusts the documentation generation for the AVX512 dialect. The machanism to generate documentation was changed with https://github.com/llvm/llvm-project/commit/1a083f027f33f4014247df4c0e757e23d5cdab64.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D87460
The file was modifiedmlir/include/mlir/Dialect/AVX512/CMakeLists.txt
Commit e6419d320d501077d1c5e1e7e1291a1ec6573877 by martin
[MC] [Win64EH] Fix builds with expensive checks enabled

This fixes a failed assert if expensive checks are enabled,
since 1308bb99e06752ab0b5175c92da31083f91af921.
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
Commit c0825fa5fc367bb7dc04a4b9dd4cc62abde04521 by flo
Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr."

This reverts commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.

This appears to be breaking some builds on macOS and has been causing
build failures on Green Dragon (see below). I am reverting this for now,
to unblock testing on Green Dragon.

http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/18144/console

[65/187] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
FAILED: examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
In file included from /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp:7:
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h:37:68: error: non-virtual member function marked 'override' hides virtual member function
  void emit(MaterializationResponsibility R, ThreadSafeModule TSM) override;
                                                                   ^
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Layer.h:103:16: note: hidden overloaded virtual function 'llvm::orc::IRLayer::emit' declared here: type mismatch at 1st parameter ('std::unique_ptr<MaterializationResponsibility>' vs 'llvm::orc::MaterializationResponsibility')
  virtual void emit(std::unique_ptr<MaterializationResponsibility> R,
               ^
1 error generated.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
Commit a0e0d30a29841fe6cc854f3949f12bb523814d7a by benny.kra
[mlir][Linalg] Print both types for linalg.transpose

Previously only the input type was printed, and the parser applied it to
both input and output, creating an invalid transpose. Print and parse
both types, and verify that they match.

Differential Revision: https://reviews.llvm.org/D87462
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/test/Dialect/Linalg/llvm.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
Commit 5405ee553a631dd8cd18eed8ed9e76ec318febcb by benny.kra
[CodeGenPrepare] Simplify code. NFCI.
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
Commit 06e356c81e0fce90c9a21f9f5fb7567efa51ee0f by jay.foad
[AMDGPU] Make movreld-bug test case more robust

Without this, future optimizer improvements can optimize the entire
function to "return 0".
The file was modifiedllvm/test/CodeGen/AMDGPU/movreld-bug.ll
Commit bceca7a996248aba44c3e4b4752634114650e6ac by kadircet
[clangd][NFC] Get rid of an `else after return`
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
Commit ff77d165a8161705c8ec3bb3ced2711dce297699 by llvm-dev
BasicTTIImpl.h - remove unused MCSchedule.h include. NFCI.
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
Commit 70a05ee2880e0ad88416ae4b4bed3cadc53e5cd1 by llvm-dev
[X86] Keep variables from getDataLayout/getDebugLoc calls as const reference. NFCI.

These are only ever used as references in the called functions, so just pass the original reference instead of copying it.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 002f5ab3b171c7d9c9ea192b04a5303be78f6e52 by cullen.rhodes
[clang][aarch64] Fix ILP32 ABI for arm_sve_vector_bits

The element types of scalable vectors are defined in terms of stdint
types in the ACLE. This patch fixes the mapping to builtin types for the
ILP32 ABI when creating VLS types with the arm_sve_vector_bits, where
the mapping is as follows:

  int32_t -> LongTy
  int64_t -> LongLongTy
  uint32_t -> UnsignedLongTy
  uint64_t -> UnsignedLongLongTy

This is implemented by leveraging getBuiltinVectorTypeInfo which is
target agnostic since it calls ASTContext::getIntTypeForBitwidth for
integer types. The element type for svfloat16_t is changed from
Float16Ty to HalfTy when creating VLS types since this is what is used
elsewhere.

For more information, see:

https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#types-varying-by-data-model
https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#appendix-support-for-scalable-vectors

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87358
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-types.c
The file was modifiedclang/lib/AST/Type.cpp
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
Commit 257b29715bb27b7d9f6c3c40c481b6a4af0b37e5 by caroline.concatto
[flang][driver] Add the new flang compiler and frontend drivers

Summary:

This is the first patch implementing the new Flang driver as outlined in [1],
[2] & [3]. It creates Flang driver (`flang-new`) and Flang frontend driver
(`flang-new -fc1`). These will be renamed as `flang` and `flang -fc1` once the
current Flang throwaway driver, `flang`, can be replaced with `flang-new`.

Currently only 2 options are supported: `-help` and `--version`.

`flang-new` is implemented in terms of libclangDriver, defaulting the driver
mode to `FlangMode` (added to libclangDriver in [4]). This ensures that the
driver runs in Flang mode regardless of the name of the binary inferred from
argv[0].

The design of the new Flang compiler and frontend drivers is inspired by it
counterparts in Clang [3]. Currently, the new Flang compiler and frontend
drivers re-use Clang libraries: clangBasic, clangDriver and clangFrontend.

To identify Flang options, this patch adds FlangOption/FC1Option enums.
Driver::printHelp is updated so that `flang-new` prints only Flang options.
The new Flang driver is disabled by default. To enable it, set
`-DBUILD_FLANG_NEW_DRIVER=ON` when configuring CMake and add clang to
`LLVM_ENABLE_PROJECTS` (e.g. -DLLVM_ENABLE_PROJECTS=“clang;flang;mlir”).

[1] “RFC: new Flang driver - next steps”
http://lists.llvm.org/pipermail/flang-dev/2020-July/000470.html
[2] “RFC: Adding a fortran mode to the clang driver for flang”
http://lists.llvm.org/pipermail/cfe-dev/2019-June/062669.html
[3] “RFC: refactoring libclangDriver/libclangFrontend to share with Flang”
http://lists.llvm.org/pipermail/cfe-dev/2020-July/066393.html
[4] https://reviews.llvm.org/rG6bf55804924d5a1d902925ad080b1a2b57c5c75c

co-authored-by: Andrzej Warzynski <andrzej.warzynski@arm.com>

Reviewed By: richard.barton.arm, sameeranjoshi

Differential Revision: https://reviews.llvm.org/D86089
The file was modifiedclang/include/clang/Driver/Options.h
The file was addedflang/tools/flang-driver/fc1_main.cpp
The file was addedflang/lib/Frontend/FrontendOptions.cpp
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp
The file was modifiedclang/unittests/Driver/SanitizerArgsTest.cpp
The file was modifiedclang/lib/Driver/Driver.cpp
The file was addedflang/test/Flang-Driver/driver-help.f90
The file was addedflang/test/Flang-Driver/driver-version.f90
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedflang/test/Flang-Driver/driver-error-cc1.cpp
The file was modifiedclang/lib/Driver/ToolChains/Flang.cpp
The file was addedflang/include/flang/Frontend/FrontendOptions.h
The file was addedflang/test/Flang-Driver/missing-input.f90
The file was modifiedflang/test/CMakeLists.txt
The file was modifiedflang/test/lit.cfg.py
The file was addedflang/lib/Frontend/CompilerInvocation.cpp
The file was addedflang/include/flang/Frontend/CompilerInstance.h
The file was modifiedflang/test/lit.site.cfg.py.in
The file was modifiedclang/test/Driver/flang/flang_ucase.F90
The file was modifiedclang/test/Driver/flang/multiple-inputs-mixed.f90
The file was addedflang/unittests/Frontend/CMakeLists.txt
The file was modifiedflang/CMakeLists.txt
The file was addedflang/tools/flang-driver/CMakeLists.txt
The file was modifiedclang/test/Driver/flang/flang.f90
The file was modifiedclang/test/Driver/flang/multiple-inputs.f90
The file was addedflang/lib/Frontend/CompilerInstance.cpp
The file was modifiedflang/tools/CMakeLists.txt
The file was modifiedflang/unittests/CMakeLists.txt
The file was modifiedclang/include/clang/Driver/Driver.h
The file was addedflang/tools/flang-driver/driver.cpp
The file was modifiedflang/lib/CMakeLists.txt
The file was addedflang/include/flang/Frontend/CompilerInvocation.h
The file was modifiedllvm/include/llvm/Option/OptTable.h
The file was modifiedclang/lib/Tooling/Tooling.cpp
The file was modifiedflang/README.md
The file was modifiedclang/lib/Frontend/CreateInvocationFromCommandLine.cpp
The file was addedflang/include/flang/FrontendTool/Utils.h
The file was addedflang/lib/Frontend/CMakeLists.txt
The file was addedflang/test/Flang-Driver/driver-error-cc1.c
The file was addedflang/test/Flang-Driver/emit-obj.f90
The file was addedflang/unittests/Frontend/CompilerInstanceTest.cpp
The file was addedflang/lib/FrontendTool/CMakeLists.txt
The file was addedflang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
Commit cabd60c26b5df34f096cccca5a915bde3b1d8ee1 by cullen.rhodes
[clang][aarch64] Fix mangling of bfloat16 neon vectors

The AAPCS64 specifies the internal type is used for c++ mangling. For
bfloat16 it was defined as `BFloat16` when it should be `Bfloat16`, i.e.
lowercase 'f'.

For more information, see:

https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#appendix-support-for-advanced-simd-extensions

Reviewed By: stuij

Differential Revision: https://reviews.llvm.org/D87463
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
The file was modifiedclang/test/CodeGenCXX/mangle-neon-vectors.cpp
Commit 82390454f0c4dfc57dbb82a2cad77de1260868a4 by jeremy.morse
[DFSan] XFail a test that's suffering too much optimization

See https://bugs.llvm.org/show_bug.cgi?id=47488 , rGfb109c42d9 is
optimizing out part of this test.
The file was modifiedcompiler-rt/test/dfsan/event_callbacks.c
Commit 95c7b66abe594116789dd21b32c8ef4c677d18c8 by llvm-dev
PluginLoader.h - only include CommandLine.h if required. NFCI.

We only need this if DONT_GET_PLUGIN_LOADER_OPTION isn't defined.
The file was modifiedllvm/include/llvm/Support/PluginLoader.h
Commit e9a777c4ec7c86043cf82b29cc78da52585bec25 by llvm-dev
Attributor.h - remove unused includes. NFCI.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit e17219b15f7528c8240a93fd9385b3a9f3290aa5 by llvm-dev
[IPO] Remove unnecessary Module.h includes. NFCI.

Uses of Module are all implicit to PassInfoMixin<> so we can guarantee PassManager.h to handle it for us.
The file was modifiedllvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
The file was modifiedllvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
The file was modifiedllvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
Commit 0caeaff123768020c7b0e1a648d6b6ba67ad6d87 by jeremy.morse
[LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests

This was landed but reverted in 5b9c2b1bea7 due to asan picking up a memory
leak. This is fixed in the change to InstrRefBasedImpl.cpp. Original
commit message follows:

[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests

This patch adds a few tests in DebugInfo/MIR/InstrRef/ of interesting
behaviour that the instruction referencing implementation of
LiveDebugValues has. Mostly, these tests exist to ensure that if you
give the "-experimental-debug-variable-locations" command line switch,
the right implementation runs; and to ensure it behaves the same way as
the VarLoc LiveDebugValues implementation.

I've also touched roughly 30 other tests, purely to make the tests less
rigid about what output to accept. DBG_VALUE instructions are usually
printed with a trailing !debug-location indicating its scope:

  !debug-location !1234

However InstrRefBasedLDV produces new DebugLoc instances on the fly,
meaning there sometimes isn't a numbered node when they're printed,
making the output:

  !debug-location !DILocation(line: 0, blah blah)

Which causes a ton of these tests to fail. This patch removes checks for
that final part of each DBG_VALUE instruction. None of them appear to
be actually checking the scope is correct, just that it's present, so
I don't believe there's any loss in coverage here.

Differential Revision: https://reviews.llvm.org/D83054
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
The file was modifiedllvm/test/DebugInfo/MIR/X86/kill-after-spill.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues-ignores-metaInstructions.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-bad-transfer.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir
The file was modifiedllvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir
Commit 1c08da38676d15600b5c707cf7522eb4273a5347 by dkszelethus
[analyzer][MacroExpansion] Add a few dumps functions
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit 26d9a94681056f88bd3e892f8113093268fa0907 by dkszelethus
[analyzer][MacroExpansion][NFC] Fix incorrectly calling parameters arguments
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit 4eed800b18abaeba3082bf950fbe5c3020c4b592 by andrzej.warzynski
[NFC] Fix the signature and definition of findByPrefix

In https://reviews.llvm.org/rG257b29715bb27b7d9f6c3c40c481b6a4af0b37e5,
the definition of OptTable::Info::Flags was changed from `unsigned
short` to `unsigned int`, but the definition/declaration of
OptTable::findByPrefix wasn't updated to reflect that.

This patch updates findByPrefix accordingly.
The file was modifiedllvm/include/llvm/Option/OptTable.h
The file was modifiedllvm/lib/Option/OptTable.cpp
Commit 7527898fef47da929e70c81100a0248c2f445762 by dkszelethus
[analyzer][MacroExpansion][NFC] Fix a missing test output check
The file was modifiedclang/test/Analysis/plist-macros-with-expansion.cpp
The file was modifiedclang/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
Commit e6f2f17f05a1248b069ba830c4afffd61ee2f297 by ntv
[mlir][Linalg] Refactor StructuredOpInterface - NFC

This revision refactors and cleans up a bunch of things to simplify StructuredOpInterface
before work can proceed on Linalg on tensors:
- break out pieces of the StructuredOps trait that are part of the StructuredOpInterface,
- drop referenceIterators and referenceIndexingMaps that end up being more confusing than useful,
- drop NamedStructuredOpTrait
The file was modifiedmlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td
Commit be0d79f32930fe780dc89ba96dac0ba163f7ec50 by dkszelethus
[analyzer][MacroExpansion] Fix a crash where multiple parameters resolved to __VA_ARGS__

In short, macro expansions handled the case where a variadic parameter mapped to
multiple arguments, but not the other way around. An internal ticket was
submitted that demonstrated that we fail an assertion. Macro expansion so far
worked by lexing the source code token-by-token and using the Preprocessor to
turn these tokens into identifiers or just get their proper spelling, but what
this counter intuitively doesn't do, is actually expand these macros, so we have
to do the heavy lifting -- in this case, figure out what __VA_ARGS__ expands
into. Since this case can only occur in a nested macro, the information we
gathered from the containing macro does contain this information. If a parameter
resolves to __VA_ARGS__, we need to temporarily stop getting our tokens from the
lexer, and get the tokens from what __VA_ARGS__ maps to.

Differential Revision: https://reviews.llvm.org/D86135
The file was modifiedclang/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modifiedclang/test/Analysis/plist-macros-with-expansion.cpp
Commit 1851bab176bba70fb6c6452b7ae55c2dc97f7bb9 by ntv
[MLIR][Linalg] Undo spurious parameter name change
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
Commit a5cefd95cc60318fbf8610ee782bd22b492692a2 by yitzhakm
[libTooling] Fix use of `char` in comparison.

Fixes Transformer's `Range` parser to handle `char` in a platform-independent way.

Differential Revision: https://reviews.llvm.org/D87409
The file was modifiedclang/lib/Tooling/Transformer/Parsing.cpp
Commit 9fda213ac0e2af05fdae69c60d2cdde316c31cd6 by david.green
[ARM] Update arm-storebytesmerge.ll test. NFC

This test was using a very odd combination of cortex-m7 and Neon. I have
changed it to thumbv7em only.
The file was modifiedllvm/test/CodeGen/ARM/arm-storebytesmerge.ll
Commit 271a7bb144d3f51d29a465329c3614eaa15a6a3c by richard.barton
[flang] Add new documentation main page

Add a new index page to be the Flang documentation mainpage instead of
Overview.md, which jumps straight into the compiler Design. The index file
needs to be in .rst format to use the toctree directive to create table of
contents.

Also use the sphinx_markdown_tables extension to generate html tables form
markdown.

A number of additional style changes to the existing docs were needed to make
this work well:
* Convert all headings to the # style, which works better with toctree's
   titlesonly option. Ensure that there is only one top-level heading per
   document.
* Add a title to documents that don't have one for rendering on the index.
* Convert the grammar docs from .txt to .md. for better rendering
* Fixed broken link to a section in another document - sphinx does not seem to
   support anchor links in markdown files.

Depends on D87226

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D87242
The file was modifiedflang/docs/ControlFlowGraph.md
The file was modifiedflang/docs/Overview.md
The file was modifiedflang/docs/C++style.md
The file was modifiedflang/docs/FortranForCProgrammers.md
The file was addedflang/docs/f2018-grammar.md
The file was modifiedflang/docs/RuntimeDescriptor.md
The file was modifiedflang/docs/Directives.md
The file was modifiedflang/docs/Semantics.md
The file was modifiedflang/docs/ParserCombinators.md
The file was addedflang/docs/index.md
The file was modifiedflang/docs/OptionComparison.md
The file was modifiedflang/docs/PullRequestChecklist.md
The file was modifiedflang/docs/LabelResolution.md
The file was modifiedflang/docs/Intrinsics.md
The file was removedflang/docs/OpenMP-4.5-grammar.txt
The file was removedflang/docs/f2018-grammar.txt
The file was modifiedflang/docs/Calls.md
The file was modifiedflang/docs/Character.md
The file was modifiedflang/docs/ImplementingASemanticCheck.md
The file was modifiedflang/docs/ArrayComposition.md
The file was modifiedflang/docs/OpenMP-semantics.md
The file was modifiedflang/docs/BijectiveInternalNameUniquing.md
The file was modifiedflang/docs/ModFiles.md
The file was addedflang/docs/OpenMP-4.5-grammar.md
The file was modifiedflang/docs/Preprocessing.md
The file was modifiedflang/docs/conf.py
The file was modifiedflang/docs/C++17.md
The file was modifiedflang/docs/FortranIR.md
The file was modifiedflang/docs/Parsing.md
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/docs/IORuntimeInternals.md
Commit 6af8758ba4d7c42298a14fcc2433f9ab49215ac1 by mikhail.maltsev
[libcxx] Handle target triples with dashes in platform name

Target triples may contain a dash in the platform name (e.g.
"aarch64-arm-none-eabi"). Account for it when splitting the triple
into components.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D87508
The file was modifiedlibcxx/utils/libcxx/test/config.py
Commit 3eb141e5078a0ce9d92eadc721bc49d214d23056 by flo
[ConstraintSystem] Add helpers to deal with linear constraints.

This patch introduces a new ConstraintSystem class, that maintains a set
of linear constraints and uses Fourier–Motzkin elimination to eliminate
constraints to check if there are solutions for the system.

It also adds a convert-constraint-log-to-z3.py script, which can parse
the debug output of the constraint system and convert it to a python
script that feeds the constraints into Z3 and checks if it produces the
same result as the LLVM implementation. This is for verification
purposes.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D84544
The file was addedllvm/include/llvm/Analysis/ConstraintSystem.h
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was addedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was addedllvm/lib/Analysis/ConstraintSystem.cpp
The file was addedllvm/utils/convert-constraint-log-to-z3.py
Commit bbb6392c1471aa4c7b7433be6dc572444005f617 by llvmgnsyncbot
[gn build] Port 3eb141e5078
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
Commit 8da6ae4ce1b686c5c13698e4c5ee937811fda6f7 by flo
Revert "[ConstraintSystem] Add helpers to deal with linear constraints."

This reverts commit 3eb141e5078a0ce9d92eadc721bc49d214d23056.

This uses __builtin_mul_overflow which is not available everywhere.
The file was removedllvm/include/llvm/Analysis/ConstraintSystem.h
The file was removedllvm/lib/Analysis/ConstraintSystem.cpp
The file was removedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was removedllvm/utils/convert-constraint-log-to-z3.py
Commit de2adfaf2575b3193bdef5bde7dd19ac338e1f2e by llvmgnsyncbot
[gn build] Port 8da6ae4ce1b
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
Commit b9bca883c970d36f408db80df21838c713c326db by dkszelethus
[analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait

Based on the discussion in D82598#2171312. Thanks @NoQ!

D82598 is titled "Get rid of statement liveness, because such a thing doesn't
exist", and indeed, expressions express a value, non-expression statements
don't.

if (a && get() || []{ return true; }())
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ has a value
    ~ has a value
    ~~~~~~~~~~ has a value
                  ~~~~~~~~~~~~~~~~~~~~ has a value
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ doesn't have a value

That is simple enough, so it would only make sense if we only assigned symbolic
values to expressions in the static analyzer. Yet the interface checkers can
access presents, among other strange things, the following two methods:

ProgramState::BindExpr(const Stmt *S, const LocationContext *LCtx, SVal V,
                       bool Invalidate=true)
ProgramState::getSVal(const Stmt *S, const LocationContext *LCtx)

So, what gives? Turns out, we make an exception for ReturnStmt (which we'll
leave for another time) and ObjCForCollectionStmt. For any other loops, in order
to know whether we should analyze another iteration, among other things, we
evaluate it's condition. Which is a problem for ObjCForCollectionStmt, because
it simply doesn't have one (CXXForRangeStmt has an implicit one!). In its
absence, we assigned the actual statement with a concrete 1 or 0 to indicate
whether there are any more iterations left. However, this is wildly incorrect,
its just simply not true that the for statement has a value of 1 or 0, we can't
calculate its liveness because that doesn't make any sense either, so this patch
turns it into a GDM trait.

Fixing this allows us to reinstate the assert removed in
https://reviews.llvm.org/rG032b78a0762bee129f33e4255ada6d374aa70c71.

Differential Revision: https://reviews.llvm.org/D86736
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
The file was addedclang/test/Analysis/objc-live-crash.mm
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
The file was modifiedclang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
Commit 4d12d6149ced575be5386889b27f3bb1891052ab by Louis Dionne
[libc++] NFC: Add missing license to test
The file was modifiedlibcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/function_type_default_deleter.fail.cpp
Commit 48b510c4bc0fe090e635ee0440e46fc176527d7e by llvm-dev
[NFC] Fix compiler warnings due to integer comparison of different signedness

Fix by directly using INT_MAX and INT32_MAX.

Patch by: @nullptr.cpp (Yang Fan)

Differential Revision: https://reviews.llvm.org/D87347
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp
The file was modifiedclang/lib/Lex/Pragma.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
Commit 0825fa9526818d7d9c94fa47e1fbe19de91003d1 by jeremy.morse
[LiveDebugValues][NFC] Add additional tests

These were supposed to be in 0caeaff1237 and D83054, but a fat-fingered
error when git-adding missed them. Ooops.
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_many_loop_heads.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_load_in_loop.mir
Commit 6b5b6511a52276820d4a2e8529370a67cf0bd746 by spatel
[InstCombine] add/move tests for ptr diff; NFC
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit 324a53205a3af979e3de109fdd52f91781816cba by spatel
[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)

There's no signed wrap if both geps have 'inbounds':
https://alive2.llvm.org/ce/z/nZkQTg
https://alive2.llvm.org/ce/z/7qFauh
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
Commit 4c14ee61b73746b314d83e7c52e03d6527b78105 by ecaldas
[SyntaxTree] Rename functions to start with verb

According to LLVM coding standards:
https://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly

Differential Revision: https://reviews.llvm.org/D87498
The file was modifiedclang/lib/Tooling/Syntax/ComputeReplacements.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTestBase.cpp
The file was modifiedclang/lib/Tooling/Syntax/Mutations.cpp
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
Commit 6aa3fc4a5b88bd0175212e06b183c87cf87c306c by spatel
Revert "[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)"

This reverts commit 324a53205a3af979e3de109fdd52f91781816cba.

On closer examination of at least one of the test diffs,
this does not appear to be correct in all cases. Even the
existing 'nsw' creation may be wrong based on this example:
https://alive2.llvm.org/ce/z/uL4Hw9
https://alive2.llvm.org/ce/z/fJMKQS
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
Commit f92908cc749ead7a14960343636549409380d12b by kparzysz
[DSE] Make sure that DSE+MSSA can handle masked stores

Differential Revision: https://reviews.llvm.org/D87414
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/masked-dead-store.ll
Commit 320624784c49ccaa0fb6dc5147a9c94d9170afb7 by Lubomir.Litchev
[NFC] Follow up on D87111 - Add an option for unrolling loops up to a factor - CR issues addressed.

Addressed some CR issues pointed out in D87111. Formatting and other nits.
The original Diff D87111 - Add an option for unrolling loops up to a factor.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D87313
The file was modifiedmlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp
The file was modifiedmlir/include/mlir/Dialect/Affine/Passes.td
The file was modifiedmlir/test/Dialect/SCF/loop-unroll.mlir
Commit d2c69c2f4947b38832a34cab14fe32c6b94dd4d2 by richard.barton
[flang] Fix build issue with BUILD_SHARED_LIBS=ON

Define Fortran::Semantics::Scope::GetName in the header so it is available
to Fortran::Evaluate::Tool::AttachDeclaration without a circular dependency
introduced in 82edd42.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D87505
The file was modifiedflang/lib/Semantics/scope.cpp
The file was modifiedflang/include/flang/Semantics/scope.h
Commit 87494def4830f0b20af6cb8a4d8b3b668c8d3ec5 by thakis
[gn build] slightly improve libcxx_needs_site_config

The write_cmake_config() here still looks busted, but at least
the value that's explicitly set is now set correctly.
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit bfbaf172ce9978d8367ff08fdf90eb05fff5759d by Jonas Devlieghere
[examples] Adjust ThinLtoInstrumentationLayer for emit signature change

Emit now takes a std::unique_ptr<MaterializationResponsibility> instead
of a MaterializationResponsibility directly.

This should fix:
http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-standalone/
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp
Commit f980ed4184f9d9139961e21739d7692ea86b0ccf by Louis Dionne
[libcxx] Remove the 'availability' Lit feature

Instead, use with_system_cxx_lib with various compile-only tests to ensure
that we're getting compile-time errors, as expected. This follows the
lead of ec46cfefe80d5.
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.pass.cpp
The file was addedlibcxx/test/libcxx/memory/aligned_allocation_macro.compile.pass.cpp
The file was modifiedlibcxx/docs/DesignDocs/AvailabilityMarkup.rst
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
The file was modifiedlibcxx/test/libcxx/thread/barrier.availability.verify.cpp
The file was removedlibcxx/test/libcxx/memory/aligned_allocation_macro.pass.cpp
The file was modifiedlibcxx/test/libcxx/thread/semaphore.availability.verify.cpp
The file was modifiedlibcxx/test/libcxx/thread/atomic.availability.verify.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp
The file was modifiedlibcxx/test/libcxx/thread/latch.availability.verify.cpp
The file was modifiedlibcxx/test/libcxx/utilities/charconv/charconv.to.chars/availability.fail.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp
The file was modifiedlibcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was addedlibcxx/test/libcxx/language.support/support.dynamic/aligned_alloc_availability.verify.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp
Commit 54680591e8bf13322d265478d10f043a503fb4f2 by spatel
[SLP] add test for missed store vectorization; NFC
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
Commit 40f12ef621d9fd2fb2dfe24f82b3f4f8c091f4ba by spatel
[SLP] further limit bailout for load combine candidate (PR47450)

The test example based on PR47450 shows that we can
match non-byte-sized shifts, but those won't ever be
bswap opportunities. This isn't a full fix (we'd still
match if the shifts were by 8-bits for example), but
this should be enough until there's evidence that we
need to do more (this is a borderline case for
vectorization in the first place).
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit f2bb4b88550a04be977d85e2efe0bef1664c9b31 by sebastian.neubauer
[docs] Fix typos

Differential Revision: https://reviews.llvm.org/D87356
The file was modifiedllvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst
Commit 2df6efedef5c7647f966ba238a2901eb4b98204d by mascasa
[DFSan] Re-enable event_callbacks test.

Mark the dest pointers for memcpy and memmove as volatile, to avoid dead
store elimination.  Fixes https://bugs.llvm.org/show_bug.cgi?id=47488.
The file was modifiedcompiler-rt/test/dfsan/event_callbacks.c
Commit 560188ddcccb4e5ca2261c1990f085101238c8df by i
[ELF][PowerPC] Define NOP as 0x60000000 to tidy up code. NFC

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D87483
The file was modifiedlld/ELF/Arch/PPC64.cpp
Commit bd2f7ad6036caf214c4e3f46bcea9d4aa70bb810 by Jonas Devlieghere
Revert "[examples] Adjust ThinLtoInstrumentationLayer for emit signature change"

I raced with Florian and he had already reverted the original patch.
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp
Commit 8ecc8520bc5bc20ae00c13e5ae13f8edbb80642e by qiucofan
[FPEnv] [Clang] Enable constrained FP support for PowerPC

d4ce862f introduced HasStrictFP to disable generating constrained FP
operations for platforms lacking support. Since work for enabling
constrained FP on PowerPC is almost done, we'd like to enable it.

Reviewed By: kpn, steven.zhang

Differential Revision: https://reviews.llvm.org/D87223
The file was modifiedclang/test/CodeGen/builtins-ppc-fpconstrained.c
The file was modifiedclang/lib/Basic/Targets/PPC.h
Commit 40b72c9c792057f71319cfde3d7c7904dd8df6bc by david.green
[ARM] Extra MLA reductions tests. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll
Commit ab2ed8bce9e924a2fc734ca4369419c18d124043 by david.green
[SVE] Regenerate sve vector bits tests. NFC
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
Commit aeb4314391f2afa865fc6650666ea29d9b6afc8a by thomasraoux
[mlir][spirv] OpConvertSToF support operands with different bitwidth.

close SameBitWidth check in verifier.

Differential Revision: https://reviews.llvm.org/D87265
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVCastOps.td
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/cast-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/ops.mlir
Commit 84a6da67e6b2a76b15ad1862f4cbb7625fe318df by silvasean
[mlir] Fix some edge cases around 0-element TensorFromElementsOp

This introduces a builder for the more general case that supports zero
elements (where the element type can't be inferred from the ValueRange,
since it might be empty).

Also, fix up some cases in ShapeToStandard lowering that hit this. It
happens very easily when dealing with shapes of 0-D tensors.

The SameOperandsAndResultElementType is redundant with the new
TypesMatchWith and prevented having zero elements.

Differential Revision: https://reviews.llvm.org/D87492
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was modifiedmlir/test/IR/core-ops.mlir
Commit 4da8fa45a0968a1f98010777d3731a921431ee55 by medismail.bennani
[lldb/API] Add Breakpoint::SerializeToStructuredData to SBAPI

This patch adds a way to fetch breakpoint metadatas as a serialized
`Structured` Data format (JSON). This can be used by IDEs to update
their UI when a breakpoint is set or modified from the console.

rdar://11013798

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/bindings/interface/SBBreakpoint.i
The file was modifiedlldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h
Commit fa2a8acc71ffc3632b7c5ed584af8709639443f2 by sbc
[WebAssembly] Add assembly syntax for mutable globals

This adds and optional ", immutable" to the end of a `.globaltype`
declaration.  I would have prefered to match the `.wat` syntax
where immutable is the default and `mut` is the signifier for
mutable globals.  Sadly changing the default would break backwards
compat with existing assembly in the wild so I think its best
to stick with this approach.

Differential Revision: https://reviews.llvm.org/D87515
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
The file was modifiedllvm/test/MC/WebAssembly/globals.s
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedlld/test/wasm/globals.s
Commit c42f96cb23bedb0e4bc31d2e88b60275083a420d by raul.tambre
[CMake][OpenMP] Simplify getting CUDA library directory

LLVM now requires CMake 3.13.4 so we can simplify this.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D87195
The file was modifiedopenmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
Commit 5d152127d48fbcf47a8d059aa68a84c365ae3cb9 by ecaldas
[SyntaxTree][Synthesis] Add support for simple Leafs and test based on tree dump

Differential Revision: https://reviews.llvm.org/D87495
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h
Commit 515238d5b1133f87f85445b9f35783ca2d3a2e7b by ecaldas
[SyntaxTree] Reduce visibility of `Arena::lexBuffer`.

Differential Revision: https://reviews.llvm.org/D87523
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h
Commit 238ae4eee05187758e42c00af237592612d585c2 by ecaldas
[SyntaxTree] Add const qualifiers, from [llvm-qualified-auto]

Differential Revision: https://reviews.llvm.org/D87522
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/lib/Tooling/Syntax/ComputeReplacements.cpp
Commit 398fcf224b8dd0968f27cdcc7e75bb0bc8ed6d09 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.

Differential Revision: https://reviews.llvm.org/D87535
The file was modifiedflang/lib/Semantics/symbol.cpp
The file was modifiedflang/test/Semantics/bad-forward-type.f90
Commit 59fc86779038b19cf85f87b51052d468286788f2 by ogiroux
Re-split integral & pointer overloads. Add tests.
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
The file was modifiedlibcxx/include/atomic
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
Commit 9a2bab5ea2f4aacbb267e634ff1189fa64143b76 by mtrofin
[ThinLTO] Make -lto-embed-bitcode an enum

The current behavior of -lto-embed-bitcode is not quite the same as that
of -fembed-bitcode. While both populate .llvmbc with bitcode, the latter
populates it with pre-optimized bitcode(*), while the former with
post-optimized. The scenarios driving them are different - the latter's
goal is to allow re-compilation, while the former, IIUC, is execution.

I plan to add a third mode for thinlto cases, closely-related to
-fembed-bitcode's scenario: adding the bitcode pre-optimization, but
post-merging. This would allow re-compilation without requiring the
other .bc files that were merged (akin to how -fembed-bitcode allows
recompilation without all the .h files)

The third mode can't co-exist with the current -lto-embed-bitcode mode,
because the latter would overwrite it. For clarity, we change
-lto-embed-bitcode to be an enum.

(*) That's the compiler semantics. The driver splits compilation in 2
phases, so if -fembed-bitcode is given to the driver, the .llvmbc is
optimized bitcode; if the option is passed to the compiler (after -cc1),
the section is pre-optimized.

Differential Revision: https://reviews.llvm.org/D87477
The file was modifiedllvm/test/LTO/X86/embed-bitcode.ll
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
Commit df477db5f9e0ea2a4890040b65002d93e33209b0 by xun
[Coroutine][Sema] Tighten the lifetime of symmetric transfer returned handle

In generating the code for symmetric transfer, a temporary object is created to store the returned handle from await_suspend() call of the awaiter. Previously this temp won't be cleaned up until very later, which ends up causing this temp to be spilled to the heap. However, we know that this temp will no longer be needed after the coro_resume call. We can clean it up right after.

Differential Revision: https://reviews.llvm.org/D87470
The file was modifiedclang/lib/Sema/SemaCoroutine.cpp
The file was addedclang/test/CodeGenCoroutines/coro-semmetric-transfer.cpp
The file was modifiedclang/test/CodeGenCoroutines/Inputs/coroutine.h
Commit 7c37b82f5ba5883b331608b0077c0b30bf301874 by ecaldas
[SyntaxTree][Synthesis] Add support for Tree.

In a future patch
* Implement helper function to generate Trees for tests
* and test Tree methods, namely `findFirstLeaf` and `findLastLeaf`

Differential Revision: https://reviews.llvm.org/D87533
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
Commit 7dcd0042e8b8581751bd9b915207058d2ab88e1d by Lang Hames
Re-apply "[ORC] Make MaterializationResponsibility immovable..." with fixes.

Re-applies c74900ca672 with fixes for the ThinLtoJIT example.
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
Commit ccb4124a4172bf2cb2e1cd7c253f0f1654fce294 by Yaxun.Liu
Fix -gz=zlib options for linker

gcc translates -gz=zlib to --compress-debug-options=zlib for both assembler and linker
but clang only does this for assembler.

The linker needs --compress-debug-options=zlib option to compress the debug sections
in the generated executable or shared library.

Due to this bug, -gz=zlib has no effect on the generated executable or shared library.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D87321
The file was modifiedclang/test/Driver/compress.c
The file was modifiedclang/lib/Driver/ToolChains/HIP.cpp
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.h
The file was addedclang/test/Driver/amdgcn-gz-options.cl
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was addedclang/test/Driver/hip-gz-options.hip
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
Commit f5ab5b20fb2aae5567e6c50cc642ff63eb2146d4 by Saleem Abdulrasool
Sema: add support for `__attribute__((__swift_error__))`

Introduce a new attribute that is used to indicate the error handling
convention used by a function.  This is used to translate the error
semantics from the decorated interface to a compatible Swift interface.

The supported error convention is one of:
- none: no error handling
- nonnull_error: a non-null error parameter indicates an error signifier
- null_result: a return value of NULL is an error signifier
- zero_result: a return value of 0 is an error signifier
- nonzero_result: a non-zero return value is an error signifier

Since this is the first of the attributes needed to support the semantic
annotation for Swift, this change also includes the necessary supporting
infrastructure for a new category of attributes (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/D87331
Reviewed By: John McCall, Aaron Ballman, Dmitri Gribenko
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was addedclang/test/SemaObjC/attr-swift-error.m
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
Commit e3e3d6eecfa5003bf431d8223bcc968e2ce291c8 by sbc
[lld][WebAssembly] Convert a objyaml-using test to assembly

Differential Revision: https://reviews.llvm.org/D87536
The file was addedlld/test/wasm/Inputs/undefined-globals.s
The file was removedlld/test/wasm/gc-imports.ll
The file was addedlld/test/wasm/gc-imports.s
The file was removedlld/test/wasm/Inputs/undefined-globals.yaml
Commit ee13ae030e21d584c72d384ea463896400ccee1c by Yaxun.Liu
Fix test hip-gz-options.hip
The file was modifiedclang/test/Driver/hip-gz-options.hip
Commit e21bb31eb6c6fcff652ecfb338e8558362473150 by Matthew.Arsenault
CodeGen: Require SSA to run PeepholeOptimizer
The file was modifiedllvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir
The file was modifiedllvm/lib/CodeGen/PeepholeOptimizer.cpp
Commit 382b2b1b5183cdcc4c57b0650e25f4f107619099 by Matthew.Arsenault
RegAllocFast: Fix typo in comment
The file was modifiedllvm/lib/CodeGen/RegAllocFast.cpp
Commit 43e6c59f1c1fc3c1b9cdcddfe9826b9abf2cfb73 by Saleem Abdulrasool
docs: add a newline to appease Sphinx

Sphinx expects an empty newline after the bulleted list.
The file was modifiedclang/include/clang/Basic/AttrDocs.td
Commit 45d0343900d3005d1d00cbb1a87c419c085dec71 by maskray
[MC] Allow .org directives in SHT_NOBITS sections

This is used by kvm-unit-tests and can be trivially supported.
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was modifiedllvm/test/MC/ELF/org.s
Commit 658475897b14781070549f72483fd283e3fe50aa by Vitaly Buka
[NFC][Asan] Early return from GetBlockBegin
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
Commit e10df779f097e3a1fb02d901117ce71a5dd9dda2 by gribozavr
Fix clang Wrange-loop-analysis in BuildTree.cpp

Building on Mac OS with clang 12:

```
jhemphill@jhemphill-mbp build % clang --version
Apple clang version 12.0.0 (clang-1200.0.26.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
```

yields one warning:

```
/Users/jhemphill/oss/llvm-project/clang/lib/Tooling/Syntax/BuildTree.cpp:1126:22: warning: loop variable 'Arg' is always a copy because the range of type 'llvm::iterator_range<clang::Stmt::CastIterator<clang::Expr, clang::Expr *, clang::Stmt *> >' does not return a reference [-Wrange-loop-analysis]
    for (const auto &Arg : Args) {
                     ^
/Users/jhemphill/oss/llvm-project/clang/lib/Tooling/Syntax/BuildTree.cpp:1126:10: note: use non-reference type 'clang::Expr *'
    for (const auto &Arg : Args) {
```

It appears that `Arg` is an `Expr*`, passed by value rather than by const reference.

Reviewed By: eduucaldas, gribozavr2

Differential Revision: https://reviews.llvm.org/D87482
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 76e3a27c16d2a8171454cf12a33e35e3ae6f9dc2 by Jonas Devlieghere
[lldb] Add test for CFMutableDictionaryRef

While writing a test for a change in Foundation I noticed we didn't yet
test CFMutableDictionaryRef.
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
Commit 83286a1a8f059d1664b64341854676a36a85cecd by zequanwu
[MS ABI] Add mangled type for auto template parameter whose argument kind is Integeral
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/AST/MicrosoftMangle.cpp
The file was addedclang/test/CodeGenCXX/mangle-ms-auto-templates.cpp
Commit 12292c8b27aca8d173a3a2825f2e8aeb383cc695 by Vitaly Buka
[NFC][Asan] Add another lsan test
The file was addedcompiler-rt/test/asan/TestCases/leaks.cpp
Commit 31ecf8d29d81d196374a562c6d2bd2c25a62861e by Yuanfang Chen
[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline

Following up on D67687.
Please refer to the RFC here http://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html

`CodeGenPassBuilder` is the NPM counterpart of `TargetPassConfig` with below differences.
- Debugging features (MIR print/verify, disable pass, start/stop-before/after, etc.) living in `TargetPassConfig` are moved to use PassInstrument as much as possible. (Implementation also lives in `TargetPassConfig.cpp`)
- `TargetPassConfig` is a polymorphic base (virtual inheritance) to build the target-dependent pipeline whereas `CodeGenPassBuilder` is the CRTP base/helper to implement the target-dependent pipeline. The motivation is flexibility for targets to customize the pipeline, inlining opportunity, and fits the overall NPM value semantics design.
- `TargetPassConfig` is a legacy immutable pass to declare hooks for targets to customize some target-independent codegen layer behavior. This is partially ported to TargetMachine::options. The rest, such as `createMachineScheduler/createPostMachineScheduler`, are left out for now. They should be implemented in LLVMTargetMachine in the future.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D83608
The file was addedllvm/include/llvm/CodeGen/CGPassBuilderOption.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was addedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
The file was addedllvm/include/llvm/CodeGen/MachinePassRegistry.def
The file was addedllvm/lib/CodeGen/CodeGenPassBuilder.cpp
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/include/llvm/Target/TargetMachine.h
Commit 37f2776d1af27a38ba4fabf3b356d71590f70d90 by efriedma
[ConstantFold] Fold binary arithmetic on scalable vector splats.

It's a nice simplification, and it confuses instcombine if we don't do
it.

Differential Revision: https://reviews.llvm.org/D87422
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vscale.ll
Commit a8503b87f739776cc9d5738f69aa0990db952340 by Vitaly Buka
[NFC] Remove unused static function
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit 3fdaa8602a086a3fca5f0fc8527536ac659079d0 by Yuanfang Chen
Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e
The file was modifiedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
Commit c931dc0bf596ed0a6c4531b0e1f05bd8bda566a6 by llvmgnsyncbot
[gn build] Port 31ecf8d29d8
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit d751f86189a7f7ef2a6fe06974a5da3349b02f20 by efriedma
[ConstantFold] Make areGlobalsPotentiallyEqual less aggressive.

In particular, we shouldn't make assumptions about globals which are
unnamed_addr: we can fold them together with other globals.

Also while I'm here, use isInterposable() instead of trying to
explicitly name all the different kinds of weak linkage.

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

Differential Revision: https://reviews.llvm.org/D87123
The file was modifiedllvm/test/Assembler/ConstantExprNoFold.ll
The file was modifiedllvm/test/Transforms/InstCombine/2010-03-03-ExtElim.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
Commit 33eb64704292dc2fc8585b8aa7459f96482c6cf9 by Jonas Devlieghere
[lldb] Use GetNonKVOClassDescriptor to get the NSDictionary class descriptor

On macOS Big Sur the class descriptor contains the NSKVONotifying_
prefix. This is covered by TestDataFormatterObjCKVO.

Differential revision: https://reviews.llvm.org/D87545
The file was modifiedlldb/source/Plugins/Language/ObjC/NSDictionary.cpp
Commit 928d419797ea173090e26f624f08801c7d6661e3 by dblaikie
Fix a couple of tests that relied on the clang binary having 'clang' somewhere in the name

Because why would that be necessary? (I joke - I hadn't actually
expected this to be an issue but a content-hash-named filesystem means
the clang binary's just a bunch of numbers, and doesn't have 'clang'
anywhere in the name)
The file was modifiedclang/test/Driver/compress.c
The file was modifiedclang/test/Driver/amdgcn-gz-options.cl
Commit 12a281d368e3ae115b2340c45f93b62e20759811 by rnk
[gn] Remove unneeded MC dep from llvm-tblgen

Tablegen does not have link time dependencies on MC. Having llvm-tblgen
depend on it causes it to be rebuilt in the gn build every time somebody
touches any cpp file in llvm/lib/MC* or llvm/lib/DebugInfo/Codeview*.
Touching tablegen invalidates most of the rest of the build, and
re-running it takes a while. This is is annoying for me when swapping
between branches that touch CodeView logic.

This dep was added to LLVMBuild.txt back in 2018, and presumably it was
carried over into the gn build.

Differential Revision: https://reviews.llvm.org/D87553
The file was modifiedllvm/utils/TableGen/LLVMBuild.txt
The file was modifiedllvm/utils/gn/secondary/llvm/utils/TableGen/BUILD.gn
Commit ad99e34c59b80fd094a6acdbcde4869ff37dac87 by Yuanfang Chen
Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline"

This reverts commit 31ecf8d29d81d196374a562c6d2bd2c25a62861e.
This reverts commit 3fdaa8602a086a3fca5f0fc8527536ac659079d0.

There is laying violation for Target->CodeGen.
The file was removedllvm/include/llvm/CodeGen/MachinePassRegistry.def
The file was removedllvm/lib/CodeGen/CodeGenPassBuilder.cpp
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was removedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp
The file was modifiedllvm/include/llvm/Target/TargetMachine.h
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was removedllvm/include/llvm/CodeGen/CGPassBuilderOption.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
Commit 0e0d93e2f09a3e84cee0e77f0f2510001c2f064a by llvmgnsyncbot
[gn build] Port ad99e34c59b
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 528554c39b098e2d9a9c7ec51c77717aa07db2a2 by qshanz
[PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD

From ISA, fcmpu will raise the Floating-Point Invalid Operation
Exception (SNaN) if either of the operands is a Signaling NaN by setting
the bit VXSNAN. But the instruction description didn't set the
mayRaiseFPException which might have impact on the scheduling or some
backend optimization.

Reviewed By: qiucf

Differential Revision: https://reviews.llvm.org/D83937
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was addedllvm/test/CodeGen/PowerPC/nofpexcept.ll
Commit 0680a3d56d8b5bcb6647a1149f0de156f72edf91 by qshanz
[Power10] Enable the heuristic for Power10 and switch the sched model
with P9 Model

Enable the pre-ra and post-ra scheduler strategy for Power10 as we want
to customize the heuristic later. And switch the scheduler model with P9
model before P10 Model is available. The NoSchedModel is modelled as
in-order cpu and the pre-ra scheduler is not bi-directional which will
have big impact on the scheduler.

Reviewed By: jji

Differential Revision: https://reviews.llvm.org/D86865
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll
Commit 6c8041aa0ffed827636935e59c489b1e390c8542 by sepavloff
[AST][FPEnv] Keep FP options in trailing storage of CastExpr

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/include/clang/AST/ExprCXX.h
The file was modifiedclang/lib/AST/ExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/AST/Expr.h
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp
The file was modifiedclang/lib/Sema/SemaCast.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/AST/ExprObjC.h
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
Commit 0ece51c60c51f0d4c285dbda3b6cff794041bdd7 by jianzhouzh
Add raw_fd_stream that supports reading/seeking/writing

This is used by https://reviews.llvm.org/D86905 to support bitcode
writer's incremental flush.
The file was addedllvm/unittests/Support/raw_fd_stream_test.cpp
The file was modifiedllvm/include/llvm/Support/raw_ostream.h
The file was modifiedllvm/lib/Support/raw_ostream.cpp
Commit 19531a81f1de8ef8ee219765c74c32c6fcd3323f by jianzhouzh
Add raw_fd_stream_test.cpp into CMakeLists.txt

Fixing https://github.com/llvm/llvm-project/commit/0ece51c60c51f0d4c285dbda3b6cff794041bdd7
The file was modifiedllvm/unittests/Support/CMakeLists.txt
Commit 9c651c231f3144f53e13cd0a1747589e1b2edccd by sepavloff
Missing change from previous commit
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp
Commit b3f364e8561caeb704f48e962df9c4c0bdad4aa2 by jianzhouzh
Add a header file to support ssize_t for windows

fixing
https://github.com/llvm/llvm-project/commit/0ece51c60c51f0d4c285dbda3b6cff794041bdd7
The file was modifiedllvm/include/llvm/Support/raw_ostream.h
Commit de044f756286edebf86044d5172016d87f49fda0 by sepavloff
Revert "[AST][FPEnv] Keep FP options in trailing storage of CastExpr"

This reverts commit 6c8041aa0ffed827636935e59c489b1e390c8542.
It caused some fails on buildbots.
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/include/clang/AST/ExprCXX.h
The file was modifiedclang/lib/AST/ExprCXX.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/lib/Sema/SemaCast.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/include/clang/AST/Expr.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/include/clang/AST/ExprObjC.h
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
Commit 4ede83c06831adf5bf5e4a2abffd752615f643d0 by llvmgnsyncbot
[gn build] Port 19531a81f1d
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
Commit 35dc91aee2013ce1a57dfee965fa5fdee1987ee0 by llvm-dev
[X86][SSE] lowerShuffleAsDecomposedShuffleBlend - support decomposed unpacks for some vXi8/vXi16 cases

Follow up to D86429 to handle the remaining regressions.

This patch generalizes lowerShuffleAsDecomposedShuffleBlend to lowerShuffleAsDecomposedShuffleMerge, and attempts to use an UNPCKL shuffle mask instead of a blend for the cases where the inputs are coming from alternating vXi8/vXi16 sources. Technically they don't have to be alternating (just as long as they can fit into a lower lane half for the unpack) but I didn't find as many general cases and it needed a lot more of the function to be altered.

For vXi32/vXi64 cases this could still be beneficial but in most cases the existing permute+blend approach was better.

Differential Revision: https://reviews.llvm.org/D87405
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
Commit 36e2e2e12efb6b02ad07f502d61b9a95937edb08 by nikita.ppv
[InstCombine] Fix incorrect SimplifyWithOpReplaced transform (PR47322)

This is a followup to D86834, which partially fixed this issue in
InstSimplify. However, InstCombine repeats the same transform while
dropping poison flags -- which does not cover cases where poison is
introduced in some other way.

The fix here is a bit more comprehensive, because things are quite
entangled, and it's hard to only partially address it without
regressing optimization. There are really two changes here:

* Export the SimplifyWithOpReplaced API from InstSimplify, with an
   added AllowRefinement flag. For replacements inside the TrueVal
   we don't actually care whether refinement occurs or not, the
   replacement is always legal. This part of the transform is now
   done in InstSimplify only. (It should be noted that the current
   AllowRefinement check is not sufficient -- that's an issue we
   need to address separately.)
* Change the InstCombine fold to work by temporarily dropping
   poison generating flags, running the fold and then restoring the
   flags if it didn't work out. This will ensure that the InstCombine
   fold is correct as long as the InstSimplify fold is correct.

Differential Revision: https://reviews.llvm.org/D87445
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit c437446d90be17c3fe8a216a90ee442222f2fe9d by david.green
[ARM] Recognize "double extend" reduction patterns

We can sometimes get code that does:
  xe = zext i16 x to i32
  ye = zext i16 y to i32
  m = mul i32 xe, ye
  me = zext i32 m to i64
  r = vecreduce.add(me)
This "double extend" can trip up the reduction identification, but
should give identical results.

This extends the pattern matching to handle them.

Differential Revision: https://reviews.llvm.org/D87276
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll
Commit 50ee0b99ec2902f5cf7a62a5e9b4a4f882b17031 by llvm-dev
[InstCombine][X86] getNegativeIsTrueBoolVec - use ConstantExpr evaluators. NFCI.

Don't do this manually, we can just use the ConstantExpr evaluators to do it more tidily for us.
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
Commit 3a8ea8609b82b7e5401698b7c63df6680e1257a8 by spatel
[Intrinsics] define semantics for experimental fmax/fmin vector reductions

As discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-April/140729.html

This is hopefully the final remaining showstopper before we can remove
the 'experimental' from the reduction intrinsics.

No behavior was specified for the FP min/max reductions, so we have a
mess of different interpretations.

There are a few potential options for the semantics of these max/min ops.
I think this is the simplest based on current behavior/implementation:
make the reductions inherit from the existing llvm.maxnum/minnum intrinsics.
These correspond to libm fmax/fmin, and those are similar to the (now
deprecated?) IEEE-754 maxNum/minNum functions (NaNs are treated as missing
data). So the default expansion creates calls to libm functions.

Another option would be to inherit from llvm.maximum/minimum (NaNs propagate),
but most targets just crash in codegen when given those nodes because no
default expansion was ever implemented AFAICT.

We could also just assume 'nnan' semantics by default (we are already
assuming 'nsz' semantics in the maxnum/minnum intrinsics), but some targets
(AArch64, PowerPC) support the more defined behavior, so it doesn't make much
sense to not allow a tighter spec. Fast-math-flags (nnan) can be used to
loosen the semantics.

(Note that D67507 was proposed to update the LangRef to acknowledge the more
recent IEEE-754 2019 standard, but that patch seems to have stalled. If we do
update based on the new standard, the reduction instructions can seamlessly
inherit from whatever updates are made to the max/min intrinsics.)

x86 sees a regression here on 'nnan' tests because we have underlying,
longstanding bugs in FMF creation/propagation. Those need to be fixed apart
from this change (for example: https://llvm.org/PR35538). The expansion
sequence before this patch may not have been correct.

Differential Revision: https://reviews.llvm.org/D87391
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-fminmax.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/CodeGen/ExpandReductions.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization-nan.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll
The file was modifiedllvm/test/CodeGen/Generic/expand-experimental-reductions.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll
Commit 6cfd38d03d5fc3cde929ebf82529415595e8ef8e by david.green
[ARM] Fixup single source mla reductions.

This fixes a complication on top of D87276. If we are sign extending
around a mul with the two operands that are the same, instcombine will
helpfully convert one of the sext to a zext. Reverse that so that we
again generate a reduction.

Differnetial Revision: https://reviews.llvm.org/D87287
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll
Commit d030aad7893a8cf7a68877b8b55eed1cd632411a by llvm-dev
[InstCombine][X86] Add tests for masked load/stores with comparisons.

As detailed on PR11210, if the mask is known to come from a (sign extended) bool vector (e.g. comparisons) then we can represent with a generic masked load/store without losing anything.
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-masked-memops.ll
Commit 78de7297abe2e8fa782682168989c70e3cb34a5c by tyker
Reland [AssumeBundles] Use operand bundles to encode alignment assumptions

NOTE: There is a mailing list discussion on this: http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html

Complemantary to the assumption outliner prototype in D71692, this patch
shows how we could simplify the code emitted for an alignemnt
assumption. The generated code is smaller, less fragile, and it makes it
easier to recognize the additional use as a "assumption use".

As mentioned in D71692 and on the mailing list, we could adopt this
scheme, and similar schemes for other patterns, without adopting the
assumption outlining.
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-openmp.cpp
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function.cpp
The file was modifiedllvm/test/Transforms/Inline/byref-align.ll
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function.cpp
The file was modifiedllvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedclang/test/CodeGen/builtin-align-array.c
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple.ll
The file was modifiedclang/test/CodeGen/align_value.cpp
The file was modifiedllvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
The file was modifiedclang/test/CodeGen/assume-aligned-and-alloc-align-attributes.c
The file was modifiedclang/test/CodeGen/non-power-of-2-alignment-assumptions.c
The file was modifiedllvm/lib/Analysis/AssumeBundleQueries.cpp
The file was modifiedclang/test/CodeGen/builtin-align.c
The file was modifiedclang/test/OpenMP/simd_codegen.cpp
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
The file was modifiedllvm/test/Transforms/InstCombine/assume.ll
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function-variable.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/test/CodeGen/builtin-assume-aligned.c
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp
The file was modifiedllvm/lib/IR/IRBuilder.cpp
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function-two-params.cpp
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp
The file was modifiedclang/test/OpenMP/simd_metadata.c
The file was modifiedllvm/test/Transforms/Inline/align.ll
The file was modifiedllvm/test/Verifier/assume-bundles.ll
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-lvalue.cpp
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedclang/test/CodeGen/alloc-align-attr.c
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
Commit 2e61cd1295e0031b2379af2b65373e2798a551cb by eleviant
[MachineScheduler] Fix operand scheduling for pre/post-increment loads

Differential revision: https://reviews.llvm.org/D87557
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td
The file was modifiedllvm/test/tools/llvm-mca/AArch64/Exynos/load.s
Commit a874d63344093752c912d01de60211f65745ea6f by flo
[Clang] Add option to allow marking pass-by-value args as noalias.

After the recent discussion on cfe-dev 'Can indirect class parameters be
noalias?' [1], it seems like using using noalias is problematic for
current C++, but should be allowed for C-only code.

This patch introduces a new option to let the user indicate that it is
safe to mark indirect class parameters as noalias. Note that this also
applies to external callers, e.g. it might not be safe to use this flag
for C functions that are called by C++ functions.

In targets that allocate indirect arguments in the called function, this
enables more agressive optimizations with respect to memory operations
and brings a ~1% - 2% codesize reduction for some programs.

[1] : http://lists.llvm.org/pipermail/cfe-dev/2020-July/066353.html

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D85473
The file was addedclang/test/CodeGenCXX/pass-by-value-noalias.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was addedclang/test/CodeGenObjC/pass-by-value-noalias.m
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was addedclang/test/CodeGen/pass-by-value-noalias.c
The file was modifiedclang/include/clang/Driver/Options.td
Commit 3170d54842655d6d936aae32b7d0bc92fce7f22e by llvm-dev
[InstCombine][X86] Covert masked load/stores with (sign extended) bool vector masks to generic intrinsics.

As detailed on PR11210, if the mask is known to come from a (sign extended) bool vector (e.g. comparisons) then we can represent with a generic masked load/store without losing anything.

We already do something similar for BLENDV -> SELECT conversion.
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-masked-memops.ll
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
Commit 8ce75e2778daf0492421fb524986756ef7e84b2b by paul
TableGen: change a couple of member names to clarify their use.
The file was modifiedllvm/lib/TableGen/Record.cpp
The file was modifiedllvm/include/llvm/TableGen/Record.h
Commit 74760bb00fb9b78a2fe12242716bd6976b8c3566 by david.green
[LV][ARM] Add preferInloopReduction target hook.

This allows the backend to tell the vectorizer to produce inloop
reductions through a TTI hook.

For the moment on ARM under MVE this means allowing integer add
reductions of the correct size. In the future this can include integer
min/max too, under -Os.

Differential Revision: https://reviews.llvm.org/D75512
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
Commit 3de9e3e493baed93e1aa0e99b04a0b11f370a939 by flo
[DSE] Precommit test case with loop carried dependence.
The file was addedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll
Commit e082dee2b5885bba65e20b22b088bcaca5546984 by flo
[DSE] Bail out on MemoryPhis when deleting stores at end of function.

When deleting stores at the end of a function, we have to do PHI
translation, otherwise we might miss reads in different iterations of a
loop. See multiblock-loop-carried-dependence.ll for details.

This fixes a mis-compile and surprisingly also increases the number of
eliminated stores from 26047 to 26572 for MultiSource/SPEC2000/SPEC2006
on X86 with -O3 -flto. This is most likely because we save budget by not
exploring through MemoryPhis, which are less likely to result in valid
candidates for elimination.

The issue was reported post-commit for fb109c42d91c.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
Commit d85ac6d577ac5d4a7812e6cd3b0171f5e356c805 by flo
[DSE] Adjust coroutines test after e082dee2b588.
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
Commit ad3d6f993d9f7ff3a54c5a716ccc918026fa0252 by craig.topper
[SelectionDAG][X86][ARM][AArch64] Add ISD opcode for __builtin_parity. Expand it to shifts and xors.

Clang emits (and (ctpop X), 1) for __builtin_parity. If ctpop
isn't natively supported by the target, this leads to poor codegen
due to the expansion of ctpop being more complex than what is needed
for parity.

This adds a DAG combine to convert the pattern to ISD::PARITY
before operation legalization. Type legalization is updated
to handled Expanding and Promoting this operation. If after type
legalization, CTPOP is supported for this type, LegalizeDAG will
turn it back into CTPOP+AND. Otherwise LegalizeDAG will emit a
series of shifts and xors followed by an AND with 1.

I've avoided vectors in this patch to avoid more legalization
complexity for this patch.

X86 previously had a custom DAG combiner for this. This is now
moved to Custom lowering for the new opcode. There is a minor
regression in vector-reduce-xor-bool.ll, but a follow up patch
can easily fix that.

Fixes PR47433

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87209
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/test/CodeGen/X86/parity.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was addedllvm/test/CodeGen/ARM/parity.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was addedllvm/test/CodeGen/AArch64/parity.ll
Commit cc76965b19085519278bff1052059e03769b71e8 by martin
[MinGW] Use lib prefix for libraries

In MinGW world, UNIX like lib prefix is preferred for the libraries.
This patch adjusts CMake files to do that.

Differential Revision: https://reviews.llvm.org/D87517
The file was modifiedlldb/source/API/CMakeLists.txt
The file was modifiedllvm/tools/llvm-config/llvm-config.cpp
The file was modifiedclang/tools/libclang/CMakeLists.txt
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit bb613044b6800b8ccc238232677f905bda423819 by martin
[MinGW][clang-shlib] Build by default on MinGW

It builds without errors and makes possible to use
CLANG_LINK_CLANG_DYLIB=1.

Differential Revision: https://reviews.llvm.org/D87547
The file was modifiedclang/tools/CMakeLists.txt
Commit 7da941939902768af25ffa45149695a0a5f15951 by martin
[MinGW][libclang] Allow simultaneous shared and static lib

It builds fine for MinGW on Windows.

Differential Revision: https://reviews.llvm.org/D87539
The file was modifiedclang/tools/libclang/CMakeLists.txt
Commit c34a99fe589b870354c9a7863b79d882c74f7d50 by nikita.ppv
[InstCombine] Add extra use tests for abs canonicalization (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/abs-1.ll
Commit c55c14837e148b817de989106560328219df342b by i
[gcov] Clean up by getting llvm.dbg.cu earlier
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit 412c9c0bf2a8ccbda2d925575891a51ef5df846e by i
[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit 7d3825ed954aa1578790b96a8a544d034ea112f6 by i
Revert "[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering"

This reverts commit 412c9c0bf2a8ccbda2d925575891a51ef5df846e.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit e8e3693ceaa1afe267f21d2ba8d9565ea8fe7c12 by paul
Change range operator from deprecated '-' to '...'
The file was modifiedllvm/test/TableGen/BitsInit.td
The file was modifiedllvm/test/TableGen/AllowDuplicateRegisterNames.td
The file was modifiedllvm/test/TableGen/BigEncoder.td
The file was modifiedllvm/test/TableGen/BitOffsetDecoder.td
Commit 93b4f8538267e620de4a36e7cf0abc0d4f8d7c10 by paul
Update TableGen test files to use the new '...' range punctuation.
The file was modifiedllvm/test/TableGen/DAGDefaultOps.td
The file was modifiedllvm/test/TableGen/if.td
The file was modifiedllvm/test/TableGen/simplify-patfrag.td
The file was modifiedllvm/test/TableGen/defset.td
The file was modifiedllvm/test/TableGen/ListSlices.td
The file was modifiedllvm/test/TableGen/ForeachLoop.td
The file was modifiedllvm/test/TableGen/UnsetBitInit.td
The file was modifiedllvm/test/TableGen/JSON.td
The file was modifiedllvm/test/TableGen/cond-let.td
The file was modifiedllvm/test/TableGen/dag-isel-regclass-emit-enum.td
The file was modifiedllvm/test/TableGen/range-lists.td
The file was modifiedllvm/test/TableGen/list-element-bitref.td
The file was modifiedllvm/test/TableGen/ifstmt.td
The file was modifiedllvm/test/TableGen/BitsInit.td
The file was modifiedllvm/test/TableGen/HwModeEncodeDecode.td
The file was modifiedllvm/test/TableGen/trydecode-emission3.td
The file was modifiedllvm/test/TableGen/foreach-variable-range.td
Commit bdd1eba37b64e64c2d93d3e79223b5933d631447 by nikita.ppv
[ARM] Add additional vecreduce float legalization test (NFC)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll
Commit d6fadc49e3d7eb0977bca3ff92bf156bd059fcd4 by i
[gcov] Process .gcda immediately after the accompanying .gcno instead of doing all .gcda after all .gcno

i.e. change the work flow from

* .gcno for function A
* .gcno for function B
* .gcno for function C
* .gcda for function A
* .gcda for function B
* .gcda for function C

to

* .gcno for function A
* .gcda for function A
* .gcno for function B
* .gcda for function B
* .gcno for function C
* .gcda for function C

Currently there is duplicate logic in .gcno & .gcda processing: how functions
are filtered, which edges are instrumented, etc. This refactor enables simplification.

Since we always process .gcno, in -fprofile-arcs -fno-test-coverage mode,
__llvm_internal_gcov_emit_function_args.0 will have non-zero checksums.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
The file was modifiedclang/test/CodeGen/code-coverage.c
Commit 04febd30a8dab3ff4b6e6032f1a1a9f4725f8267 by sbc
[lld][WebAssembly] Error on import/export of mutable global without `mutable-globals` feature

Also add the +mutable-globals features in clang when
building with `-fPIC` since the linker will generate mutable
globals imports and exports in that case.

Differential Revision: https://reviews.llvm.org/D87537
The file was modifiedclang/test/Driver/wasm-toolchain.c
The file was modifiedlld/test/wasm/Inputs/undefined-globals.s
The file was addedlld/test/wasm/mutable-globals.s
The file was modifiedlld/test/wasm/shared.ll
The file was modifiedlld/test/wasm/gc-imports.s
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedclang/lib/Driver/ToolChains/WebAssembly.cpp
The file was modifiedlld/test/wasm/pie.ll
The file was modifiedlld/test/wasm/emit-relocs-fpic.s
Commit c2f8bc986fb39f6a72aafd5dd0d31ec29ad8ce9b by nikita.ppv
[ARM] Add tests for fmin/max + inf folds (NFC)
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll
Commit cc2da5554b5ee5d5939222af263699a9d0bf2049 by sbc
[lld][WebAssembly] Add initial support for -Map/--print-map

Differential Revision: https://reviews.llvm.org/D77187
The file was modifiedlld/wasm/Symbols.h
The file was modifiedlld/test/ELF/map-file.s
The file was modifiedlld/wasm/Driver.cpp
The file was modifiedlld/wasm/OutputSections.h
The file was addedlld/wasm/MapFile.h
The file was modifiedlld/test/wasm/early-exit-for-bad-paths.s
The file was modifiedlld/wasm/InputChunks.h
The file was addedlld/test/wasm/map-file.s
The file was modifiedlld/wasm/OutputSections.cpp
The file was addedlld/wasm/MapFile.cpp
The file was modifiedlld/wasm/Options.td
The file was modifiedlld/wasm/CMakeLists.txt
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedlld/wasm/Config.h
Commit 70daa353e2ae722beddbab02f9a34988c855f318 by llvmgnsyncbot
[gn build] Port cc2da5554b5
The file was modifiedllvm/utils/gn/secondary/lld/wasm/BUILD.gn
Commit 9d300bc8d2f3cdbd7f2d7cea9fa3667c26840ad0 by kparzysz
[Hexagon] Avoid widening vectors with non-HVX element types
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-widen-truncate-illegal-elem.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonSubtarget.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
Commit 758732a34ed005cb135afcf14c9750a5483a49d3 by craig.topper
[X86] Use ISD::PARITY directly instead of emitting CTPOP and AND from combineHorizontalPredicateResult.

We have a PARITY ISD node now so might as well use it. It will
get re-expanded later.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 61d29e0dff0e93f3fa1382fb177634840844b273 by craig.topper
[LegalizeTypes] Remove a few cases from SplitVectorOperand that should never happen. NFC

CTTZ, CTLZ, CTPOP, and FCANONICALIZE all have the same input and
output types so the operand should have already been legalized when the
result type was legalized.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 0fb2203cd6c287e7438b7ac2571645066c63eeb6 by joker.eph
[Docs] Fix --print-supported-cpus option rendering

Adds link/code sample to avoid rendering two dashes as non-ASCII "en dash".
Also make wording a complete sentence.

Reviewed By: nickdesaulniers, tmfink

Differential Revision: https://reviews.llvm.org/D85596
The file was modifiedclang/docs/CommandGuide/clang.rst
Commit 8cf1ac97cec654923b4f80ad11506bf06ec34f65 by i
[llvm-cov gcov] Improve accuracy when some edges are not measured

Also guard against infinite recursion if GCOV_ARC_ON_TREE edges contain a cycle.
The file was modifiedllvm/test/tools/llvm-cov/gcov-8.c
The file was modifiedcompiler-rt/test/profile/gcov-basic.c
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
Commit f086e85eea94a51eb42115496ac5d24f07bc8791 by i
[gcov] Assign names to some types and loaded values used in @__llvm_internal*

This makes the generated IR much more readable.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
The file was modifiedclang/test/CodeGen/code-coverage.c
Commit 63182c2ac0b643a60d397274e8a31166fc7243fa by i
[gcov] Add spanning tree optimization

gcov is an "Edge Profiling with Edge Counters" application according to
Optimally Profiling and Tracing Programs (1994).

The minimum number of counters necessary is |E|-(|V|-1). The unmeasured edges
form a spanning tree. Both GCC --coverage and clang -fprofile-generate leverage
this optimization. This patch implements the optimization for clang --coverage.
The produced .gcda files are much smaller now.
The file was modifiedllvm/test/Transforms/GCOVProfiling/atomic-counter.ll
The file was modifiedclang/test/CodeGen/code-coverage-tsan.c
The file was addedllvm/test/Transforms/GCOVProfiling/split-indirectbr-critical-edges.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
The file was modifiedcompiler-rt/test/profile/Posix/gcov-fork.c
The file was modifiedcompiler-rt/test/profile/gcov-dump-and-remove.c
Commit 5f4e9bf6416e45eba483a4e5e263749989fdb3b3 by i
[gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass

This is weird.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit bec81dc67d9348dad0ea60a9b8804d1413aefe98 by qiucofan
Reland "[PowerPC] Implement instruction clustering for stores"

Commit 3c0b3250 introduced store fusion for PowerPC target, but it
brought failure under UB sanitizer and was reverted. This patch fixes
them.
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h
The file was addedllvm/test/CodeGen/PowerPC/fusion-load-store.ll
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetMachine.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
Commit e2dee9af8db645fd3c0351da91d3cb09c1dcdd5d by llvm-dev
[X86] Add test cases for PR11210

Demonstrates that redundant masked stores may be removed, as long as we're able to replace the AVX/AVX2 masked store with a generic masked store (constant mask or sign-extended bool vector mask).
The file was addedllvm/test/Transforms/PhaseOrdering/X86/masked-memory-ops.ll
Commit 2c85f5e642fb599f77aac0de22316c922cfd7cbb by nikita.ppv
[ARM] Add tests for fmin/max with largest/smallest float (NFC)
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll
Commit 9237fde48139400764377eb73e7e5d3bc5b7fffc by david.green
[CGP] Prevent optimizePhiType from iterating forever

The recently added optimizePhiType algorithm had no checks to make sure
it didn't continually iterate backward and forth between float and int
types. This means that given an input like store(phi(bitcast(load))), we
could convert that back and forth to store(bitcast(phi(load))). This
particular case would usually have been simplified to a different load
type (folding the bitcast into the load) before CGP, but other cases can
occur. The one that came up was phi(bitcast(phi)), where the two phi's
of different types were bitcast between. That was not helped by a dead
bitcast being kept around which could make conversion look profitable.

This adds an extra check of the bitcast Uses or Defs, to make sure that
at least one is grounded and will not end up being converted back. It
also makes sure that dead bitcasts are removed, and there is a minor
change to include newly created Phi nodes in the Visited set so that
they do not need to be revisited.

Differential Revision: https://reviews.llvm.org/D82676
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/test/CodeGen/AArch64/convertphitype.ll
Commit a4c535198643d1541b19f37a468c885a7baa7605 by qiucofan
[DAGCombiner] Propagate FMF flags in FMA folding

DAG combiner folds (fma a 1.0 b) into (fadd a b) but the flag isn't
propagated into new fadd. This patch fixes that.

Some code in visitFMA is redundant and such support for vector constants
is missing. Need follow-up patch to clean.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D87037
The file was modifiedllvm/test/CodeGen/PowerPC/fma-combine.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit c0bcd11068fc13e45b253c6c315882097f94c121 by Raphael Isemann
[ASTImporter] Add basic support for comparing Stmts and compare function bodies

Right now the ASTImporter assumes for most Expr nodes that they are always equal
which leads to non-compatible declarations ending up being merged. This patch
adds the basic framework for comparing Stmts (and with that also Exprs) and
implements the custom checks for a few Stmt subclasses. I'll implement the
remaining subclasses in follow up patches (mostly because there are a lot of
subclasses and some of them require further changes like having GNU language in
the testing framework)

The motivation for this is that in LLDB we try to import libc++ source code and
some of the types we are importing there contain expressions (e.g. because they
use `enable_if<expr>`), so those declarations are currently merged even if they
are completely different (e.g. `enable_if<value> ...` and `enable_if<!value>
...` are currently considered equal which is clearly not true).

Reviewed By: martong, balazske

Differential Revision: https://reviews.llvm.org/D87444
The file was modifiedclang/unittests/AST/StructuralEquivalenceTest.cpp
The file was modifiedclang/lib/AST/ASTStructuralEquivalence.cpp
The file was modifiedclang/include/clang/AST/ASTStructuralEquivalence.h
Commit 8889faaed0b7c8545b67b040c380b983264ebc67 by craig.topper
[SelectionDAG] Remove default for 'unsigned' Alignment for getLoad/getStore/getExtLoad/getTruncStore. Add default for MaybeAlign version. NFCI

We want to remove the unsigned signatures eventually. This change
migrates any that don't explicitly pass an alignment.
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
Commit 6e06f1cd0816b03d9336083667a0c71760d6b99f by dblaikie
GCOVProfiling: Avoid use-after-move

Turns out this was use-after-move of function_ref, which is trivially
copyable and movable, so the move did nothing and use after move was
safe.

But since this function_ref is being copied into a std::function, change
the function_ref to be std::function to avoid extra layers of type
erasure indirection - and then it's a real use after move, and fix that
by referring to the moved-to member variable rather than the moved-from
parameter.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit 7940af02baa27e23ebbd9cd09b24ef1b24ea8cec by dblaikie
Correct end-of-namespace comment to be clang-tidy/LLVM style appropriate
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h
Commit ce89eeee16dd1e7ca6eead3b9d7f256ca583f6e1 by dblaikie
PPCInstrInfo: Fix readability-inconsistent-declaration-parameter-name clang-tidy warning

Reduces the chance of confusion when calling the function with
autocomplete (will show the more accurate/informative variable name),
etc.
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
Commit cb3e1dd6c31ef0e0c83dcd1b4ef0b65a8b75a673 by nikita.ppv
[ARM] Add some fmin/fmax tests with commuted operands (NFC)

As well as vector commuted operands.
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll
Commit b2c32c90bab09a6e2c1f370429db26017a182143 by i
[llvm-cov gcov] Add -r (--relative-only) && -s (--source-prefix)

gcov 4.7 introduced the two options.
https://sourceware.org/pipermail/gcc-patches/2011-November/328782.html

-r only dumps files with relative paths or absolute paths with the prefix
specified by -s. The two options are useful filtering out system header files.
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/abs-path.gcno
The file was modifiedllvm/tools/llvm-cov/gcov.cpp
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/abs-path.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/relative-only.test
Commit 44664a54483def1692ea75925bfce0053e76bef0 by i
[llvm-cov gcov][test] Unsupport Windows
The file was modifiedllvm/test/tools/llvm-cov/gcov/relative-only.test
Commit 783ba64a8950768d412555abd52bbc65156d4fb5 by Lang Hames
[JITLink] Improve formatting for Edge, Block and Symbol debugging output.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLink.cpp
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/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/parity.ll
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
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 addedllvm/test/Transforms/CodeGenPrepare/X86/recursively-delete-dead-instructions.ll
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
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/SemaExprObjC.cpp
The file was modifiedclang/include/clang/AST/Expr.h
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/include/clang/AST/ExprCXX.h
The file was modifiedclang/include/clang/AST/ExprObjC.h
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/lib/AST/ExprCXX.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/lib/Sema/SemaCast.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
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/test/tools/llvm-cov/llvm-cov.test
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
The file was modifiedllvm/tools/llvm-cov/gcov.cpp
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h
The file was modifiedllvm/test/tools/llvm-cov/gcov-fake-4.2.c
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 addedclang/test/Analysis/eval-predefined-exprs.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/SValBuilder.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
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/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
The file was addedclang/test/Analysis/z3/pretty-dump.c
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp
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
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
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
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
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
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/InstructionSelectorImpl.h
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modifiedllvm/test/TableGen/GlobalISelEmitterCustomPredicate.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/add_shl.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/TableGen/GlobalISelEmitter.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
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/PathMapping.cpp
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp
The file was addedclang-tools-extra/clangd/unittests/LoggerTests.cpp
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp
The file was modifiedclang-tools-extra/clangd/DraftStore.cpp
The file was modifiedclang-tools-extra/clangd/support/Logger.cpp
The file was modifiedclang-tools-extra/clangd/JSONTransport.cpp
The file was modifiedclang-tools-extra/clangd/RIFF.cpp
The file was modifiedclang-tools-extra/clangd/support/Logger.h
The file was modifiedclang-tools-extra/clangd/CodeComplete.cpp
The file was modifiedclang-tools-extra/clangd/index/Serialization.cpp
Commit 119e57be76266bf524a4e3b45e01dd8c2c1e9d35 by llvmgnsyncbot
[gn build] Port 30667c967d3
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
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/include/llvm/CodeGen/MachineInstr.h
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp
The file was modifiedllvm/include/llvm/Target/Target.td
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
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
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
Commit 687e1d7121645d23aa5e919ed4d3c0e57af975cd by sam.mccall
[clangd] makeStringError,make_error<StringError> -> error()
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExpandAutoType.cpp
The file was modifiedclang-tools-extra/clangd/Preamble.cpp
The file was modifiedclang-tools-extra/clangd/URI.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TestFS.cpp
The file was modifiedclang-tools-extra/clangd/refactor/Tweak.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/AddUsing.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/RemoveUsingNamespace.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
The file was modifiedclang-tools-extra/clangd/index/YAMLSerialization.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
The file was modifiedclang-tools-extra/clangd/xpc/XPCTransport.cpp
The file was modifiedclang-tools-extra/clangd/SourceCode.cpp
The file was modifiedclang-tools-extra/clangd/FindSymbols.cpp
The file was modifiedclang-tools-extra/clangd/JSONTransport.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ObjCLocalizeStringLiteral.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/SwapIfBranches.cpp
The file was modifiedclang-tools-extra/clangd/IncludeFixer.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
The file was modifiedclang-tools-extra/clangd/index/Background.cpp
The file was modifiedclang-tools-extra/clangd/index/SymbolID.cpp
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp
The file was modifiedclang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
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
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/TableGen/GlobalISelEmitterSkippedPatterns.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir
The file was modifiedllvm/test/TableGen/GlobalISelEmitter.td
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
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 addedllvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
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
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
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/basic-tail-pred.ll
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
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
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit ceb0128509c51100afbf804bda84d82b7ebe06b1 by ecaldas
[SyntaxTree][List] `assertInvariants` for `List`s

Differential Revision: https://reviews.llvm.org/D87600
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
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
The file was modifiedllvm/test/CodeGen/ARM/usat.ll
The file was modifiedllvm/test/CodeGen/ARM/ssat.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
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
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/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
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/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/test/CodeGen/AArch64/convertphitype.ll
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
The file was modifiedmlir/test/Conversion/StandardToLLVM/invalid.mlir
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
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
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/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-notes.ll
The file was modifiedllvm/test/tools/llvm-readobj/ELF/note-freebsd.s
Commit 412b417bfa79d54ebea1ae8bd0fd359044a133f4 by mkazantsev
[NFC] Add missing `const` statements in SCEV
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
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/test/tools/llvm-readobj/ELF/addrsig.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
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
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/non-dynamic-in-pt-dynamic.test
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
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
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/merge-stores.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/store-local.128.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.private.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/memory_clause.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fshr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/local-memory.amdgcn.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/cluster_stores.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.global.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/non-entry-alloca.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/half.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/token-factor-inline-limit-test.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/store-local.96.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/store-weird-sizes.ll
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
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
Commit 08baa979235ab98cf13497dde813ab8ae58b11cb by david.green
[ARM] Enable tail predication for reduction tests. NFC
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
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/lib/MC/XCOFFObjectWriter.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/lit.local.cfg
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Commit 5df9cb5bc71fc880a05ff7a1a2af727c7ce3cab3 by spatel
[InstSimplify] fix test comments; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
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 modifiedllvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
The file was addedllvm/test/Transforms/InstSimplify/fminmax-folds.ll
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
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/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
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/test/std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp
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
Commit f07f3c72375b872bfb988f7531d4e0485233ade1 by flo
[MemorySSA] Precommit test case for PR47498.
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll
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/include/llvm/Analysis/MemorySSA.h
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll
The file was modifiedllvm/lib/Analysis/MemorySSA.cpp
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
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll
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
The file was addedclang/test/SemaObjC/attr-swift_objc_members.m
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
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
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
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/test/Semantics/case01.f90
The file was modifiedflang/include/flang/Evaluate/integer.h
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/string_utils.h
The file was modifiedlibc/src/string/memchr.cpp
The file was modifiedlibc/src/string/strlen.cpp
The file was modifiedlibc/src/string/strnlen.cpp
The file was modifiedlibc/src/string/strcpy.cpp
The file was modifiedlibc/src/string/CMakeLists.txt
The file was modifiedlibc/src/string/strcat.cpp
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/Target.h
The file was modifiedlld/test/ELF/ppc64-toc-call-to-pcrel-long-jump.s
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/Thunks.cpp
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 modifiedflang/lib/Semantics/expression.cpp
The file was addedflang/test/Semantics/defined-ops.f90
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/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-labels.ll
The file was modifiedllvm/include/llvm/MC/MCObjectFileInfo.h
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/test/CodeGen/basic-block-sections.c
The file was addedllvm/test/CodeGen/X86/basic-block-sections-labels-functions-sections.ll
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
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
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 modifiedlldb/tools/lldb-vscode/VSCode.h
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.h
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/Makefile
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.cpp
The file was modifiedlldb/tools/lldb-vscode/package.json
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/main.c
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp
Commit 7235326fb2342227d478d63378d2ba4d5e2418db by Louis Dionne
[libc++] Upgrade the Clang on build bots
The file was modifiedlibcxx/utils/docker/debian9/buildbot/Dockerfile
The file was modifiedlibcxx/utils/docker/debian9/buildbot/docker-compose.yml
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
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/test/CodeGen/ARM/fminmax-folds.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
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-binop-cmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
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 addedllvm/test/tools/llvm-ml/builtin_types.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
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 addedllvm/test/tools/llvm-ml/struct_alignment.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
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 addedllvm/test/tools/llvm-ml/type_operators.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was modifiedllvm/test/tools/llvm-ml/struct.test
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modifiedllvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
The file was addedllvm/test/tools/llvm-ml/size_inference.test
The file was modifiedllvm/include/llvm/MC/MCParser/MCAsmParser.h
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
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/MC/MCParser/COFFMasmParser.cpp
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/proc_frame.test
The file was addedllvm/test/tools/llvm-ml/proc.test
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-fmax-legalization-soft-float.ll
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
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
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll
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
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.h
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
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 modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll
The file was addedllvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll
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 modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was addedllvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/MC/PowerPC/pcrel-tls-local-exec-value-load-reloc.s
The file was modifiedllvm/lib/Target/PowerPC/PPCMCInstLower.cpp
The file was addedllvm/test/MC/PowerPC/pcrel-tls-local-exec-address-load-reloc.s
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
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
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
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll
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
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 modifiedllvm/test/Instrumentation/HeapProfiler/version-mismatch-check.ll
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/Transforms/Instrumentation/CMakeLists.txt
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/test/Instrumentation/HeapProfiler/masked-load-store.ll
The file was modifiedllvm/test/Instrumentation/HeapProfiler/instrumentation-use-callbacks.ll
The file was modifiedclang/test/Driver/fmemprof.cpp
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was removedllvm/lib/Transforms/Instrumentation/HeapProfiler.cpp
The file was modifiedllvm/test/Instrumentation/HeapProfiler/scale-granularity.ll
The file was addedllvm/lib/Transforms/Instrumentation/MemProfiler.cpp
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was addedllvm/include/llvm/Transforms/Instrumentation/MemProfiler.h
The file was removedllvm/include/llvm/Transforms/Instrumentation/HeapProfiler.h
The file was modifiedllvm/lib/Transforms/Instrumentation/Instrumentation.cpp
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Instrumentation/HeapProfiler/basic.ll
Commit 2ad38f7a46b59a5b6653239245d29590d7977b29 by llvmgnsyncbot
[gn build] Port 226d80ebe20
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
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 addedllvm/test/Transforms/HelloNew/helloworld.ll
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/Passes/LLVMBuild.txt
The file was addedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was addedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was modifiedllvm/docs/WritingAnLLVMPass.rst
The file was addedllvm/lib/Transforms/HelloNew/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn
The file was addedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was modifiedllvm/docs/UserGuides.rst
The file was modifiedllvm/lib/Transforms/CMakeLists.txt
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
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 addedcompiler-rt/test/asan/TestCases/redzone_noleak.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.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/SPIRV/SPIRVDialect.h
The file was modifiedmlir/examples/toy/Ch4/include/toy/Dialect.h
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
The file was modifiedmlir/examples/toy/Ch4/include/toy/Ops.td
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMAVX512Dialect.cpp
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMAVX512Dialect.h
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/mlir-tblgen/op-decl.td
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUBase.td
The file was modifiedmlir/examples/toy/Ch3/include/toy/Ops.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
The file was modifiedmlir/examples/toy/Ch2/include/toy/Dialect.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantOpsBase.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
The file was modifiedmlir/lib/Dialect/PDL/IR/PDL.cpp
The file was modifiedmlir/examples/toy/Ch2/include/toy/Ops.td
The file was modifiedmlir/lib/TableGen/Operator.cpp
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/lib/Dialect/AVX512/IR/AVX512Dialect.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/SCF.h
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUDialect.h
The file was modifiedmlir/examples/toy/Ch6/include/toy/Ops.td
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantOps.h
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/NVVMDialect.h
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h
The file was modifiedmlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp
The file was modifiedmlir/include/mlir/TableGen/Operator.h
The file was modifiedmlir/include/mlir/Dialect/AVX512/AVX512.td
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACC.h
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/examples/toy/Ch5/include/toy/Dialect.h
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDL.h
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/examples/toy/Ch7/include/toy/Dialect.h
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h
The file was modifiedmlir/examples/toy/Ch3/include/toy/Dialect.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMAVX512.td
The file was modifiedmlir/examples/toy/Ch6/include/toy/Dialect.h
The file was modifiedmlir/include/mlir/Dialect/AVX512/AVX512Dialect.h
The file was modifiedmlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h
The file was modifiedmlir/examples/toy/Ch7/include/toy/Ops.td
The file was modifiedmlir/examples/toy/Ch5/include/toy/Ops.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVOps.h
The file was modifiedmlir/test/mlir-tblgen/op-attribute.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLBase.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVAttributes.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/PDLInterp.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVAttributes.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVBase.td
Commit db94df04fbfaa26cc3fda1ef77af32776bd10f21 by nemanja.i.ibm
Update PowerPC backend ownership in CODE_OWNERS.TXT
The file was modifiedllvm/CODE_OWNERS.TXT
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 addedllvm/test/CodeGen/AMDGPU/schedule-xdl-resource.ll
The file was modifiedllvm/lib/Target/AMDGPU/SISchedule.td
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
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sadd_sat_vec.ll
The file was modifiedllvm/test/CodeGen/AArch64/ssub_sat_vec.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/usub_sat_vec.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreISelLowering.cpp
The file was modifiedllvm/lib/Target/Sparc/SparcISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-cc-abi.ll
The file was modifiedllvm/test/CodeGen/AArch64/uadd_sat_vec.ll
The file was modifiedllvm/lib/Target/Mips/MipsSEISelLowering.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/Target/Mips/MipsISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
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/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp
The file was modifiedlibcxx/www/cxx2a_status.html
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/include/algorithm
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.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
The file was modifiedlibcxx/include/algorithm
The file was modifiedlibcxx/www/cxx2a_status.html
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp
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.h
The file was modifiedmlir/examples/standalone/include/Standalone/StandaloneDialect.td
The file was modifiedmlir/examples/standalone/lib/Standalone/StandaloneOps.cpp
The file was modifiedmlir/examples/standalone/include/Standalone/StandaloneOps.h
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
Commit 44da6c2369da239517cd073f96688895081bc395 by Lang Hames
[docs] Update OrcV1 removal timeline.
The file was modifiedllvm/docs/ORCv2.rst
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
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
The file was modifiedflang/unittests/Evaluate/intrinsics.cpp
The file was modifiedflang/include/flang/Parser/parse-state.h
The file was modifiedflang/lib/Parser/provenance.cpp
The file was modifiedflang/lib/Parser/prescan.cpp
The file was modifiedflang/include/flang/Semantics/semantics.h
The file was modifiedflang/tools/f18/f18.cpp
The file was modifiedflang/include/flang/Parser/provenance.h
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
The file was modifiedlibcxx/include/algorithm
The file was modifiedlibcxx/www/cxx2a_status.html
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
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/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp
The file was modifiedlibcxx/include/algorithm
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
The file was modifiedlibcxx/www/cxx2a_status.html
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/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/bad-forward-type.f90
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/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
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/lib/Transforms/HelloNew/CMakeLists.txt
The file was modifiedllvm/lib/Passes/LLVMBuild.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn
The file was modifiedllvm/docs/UserGuides.rst
The file was removedllvm/include/llvm/Transforms/HelloNew/HelloWorld.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was removedllvm/test/Transforms/HelloNew/helloworld.ll
The file was removedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was removedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was removedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was modifiedllvm/docs/WritingAnLLVMPass.rst
The file was removedllvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt
The file was modifiedllvm/lib/Transforms/CMakeLists.txt
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/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-fabs.mir
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
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 addedllvm/lib/Transforms/HelloNew/CMakeLists.txt
The file was modifiedllvm/docs/UserGuides.rst
The file was addedllvm/include/llvm/Transforms/HelloNew/HelloWorld.h
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn
The file was addedllvm/docs/WritingAnLLVMNewPMPass.rst
The file was modifiedllvm/docs/WritingAnLLVMPass.rst
The file was addedllvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn
The file was addedllvm/lib/Transforms/HelloNew/HelloWorld.cpp
The file was addedllvm/lib/Transforms/HelloNew/LLVMBuild.txt
The file was modifiedllvm/lib/Passes/LLVMBuild.txt
The file was modifiedllvm/lib/Transforms/CMakeLists.txt
The file was addedllvm/test/Transforms/HelloNew/helloworld.ll
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
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
Commit bb877d1af2ec2f624caa380350c8da00c984e754 by kparzysz
[Hexagon] Widen loads and handle any-/sign-/zero-extensions
The file was modifiedllvm/lib/Target/Hexagon/HexagonPatternsHVX.td
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was addedllvm/test/CodeGen/Hexagon/autohvx/widen-ext.ll
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
The file was modifiedclang/test/Sema/const-eval.c
The file was addedclang/test/Sema/unbounded-array-bounds.c
The file was modifiedclang/test/SemaCXX/constant-expression-cxx1y.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
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
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/srem.i64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
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/test/asan/TestCases/lsan_annotations.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
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/AArch64AsmPrinter.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/statepoint-call-lowering.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
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
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
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
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/unittests/Runtime/hello.cpp
The file was modifiedflang/runtime/edit-input.cpp
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
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/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-shl-narrow.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-select.mir
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.store.2d.d16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
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/urem.i32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
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
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
The file was modifiedllvm/test/tools/llvm-symbolizer/frame-fortran.s
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/test/wasm/mutable-globals.s
The file was modifiedlld/wasm/Relocations.cpp
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/unittests/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was addedllvm/unittests/CodeGen/TestAsmPrinter.cpp
The file was addedllvm/unittests/CodeGen/TestAsmPrinter.h
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
The file was addedllvm/unittests/CodeGen/AsmPrinterDwarfTest.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/unittests/CodeGen/CMakeLists.txt
The file was addedllvm/unittests/CodeGen/DIETest.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
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/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
The file was modifiedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
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
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/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was addedllvm/test/DebugInfo/X86/debug-info-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
The file was modifiedllvm/unittests/CodeGen/DIETest.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
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
The file was modifiedllvm/unittests/CodeGen/DIETest.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
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/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modifiedllvm/test/DebugInfo/X86/DW_AT_location-reference.ll
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
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-info-dwo-dwarf64.ll
The file was addedllvm/test/DebugInfo/X86/debug-str-offsets-dwo-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
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 modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
The file was addedllvm/test/DebugInfo/X86/debug-types-dwarf64.ll
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
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 addedllvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
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
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
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.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/test/CodeGen/X86/debug-loclists-lto.ll
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 addedllvm/test/DebugInfo/X86/debug-addr-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AddressPool.cpp
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 addedllvm/test/DebugInfo/X86/debug-names-dwarf64.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
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
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/include/llvm/CodeGen/NonRelocatableStringpool.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h
The file was modifiedllvm/include/llvm/CodeGen/DwarfStringPoolEntry.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
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/include/llvm/CodeGen/DIE.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
The file was modifiedllvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
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
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 addedllvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
The file was modifiedllvm/include/llvm/Support/ARMWinEH.h
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.h
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
The file was modifiedlld/tools/lld/lld.cpp
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
The file was modifiedpolly/lib/CMakeLists.txt
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
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
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
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
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/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/SemaCXX/constant-expression-cxx1y.cpp
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/lib/Sema/SemaChecking.cpp
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
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
Commit 4540d3baad06e060ba1e42c8fb60ba8c32308db5 by Vitaly Buka
[NFC][Asan] Return uptr as before D87646
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
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
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 modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/Transforms/LICM/AArch64/lit.local.cfg
The file was addedllvm/test/Transforms/LICM/AArch64/sve-load-hoist.ll
The file was modifiedllvm/test/Transforms/LICM/hoisting.ll
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit e15996b5c6e9609c5902cae12455f43d7ba97a0f by sguelton
[doc] Fix broken link
The file was modifiedllvm/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.rst
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/COFF/undefined-symbol-dwarf.s
The file was modifiedlld/test/COFF/duplicate-dwarf.s
The file was modifiedlld/test/wasm/debuginfo.test
The file was modifiedlld/test/ELF/conflict-debug-variable2.s
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
Commit 487412988cea99c94f2c58f8fa9eff34600fe684 by sjoerd.meijer
[MVE] Rename of tests making them consistent with tail-predication tests. NFC.
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-reduce.ll
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-basic.ll
The file was removedllvm/test/CodeGen/Thumb2/LowOverheadLoops/basic-tail-pred.ll
The file was removedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-reduce.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/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
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 modifiedllvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
The file was modifiedllvm/tools/llvm-readobj/ARMEHABIPrinter.h
The file was modifiedllvm/include/llvm/Object/ELF.h
The file was modifiedllvm/tools/llvm-objdump/ELFDump.cpp
The file was modifiedlld/ELF/Arch/RISCV.cpp
The file was modifiedllvm/lib/InterfaceStub/ELFObjHandler.cpp
The file was modifiedlld/ELF/InputFiles.cpp
The file was modifiedllvm/lib/Object/ELF.cpp
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedlld/ELF/Arch/MipsArchTree.cpp
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Arch/Mips.cpp
The file was modifiedlld/ELF/Arch/AMDGPU.cpp
The file was modifiedlld/ELF/Arch/PPC64.cpp
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/Arch/Hexagon.cpp
The file was modifiedllvm/include/llvm/Object/ELFObjectFile.h
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
Commit 58938b544b728ccf90462a7e4854e8a533eb9296 by phosek
[NFC][DebugInfo] Use consistent regex group spelling

This is a follow up to c1f2fb5184ca.
The file was modifiedlld/test/wasm/debuginfo.test
The file was modifiedlld/test/ELF/conflict-debug-variable2.s
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
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/test/CodeGen/X86/avg.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit b4b1b84106a03d7b6374090bc0ff04b3a77a0862 by sjoerd.meijer
[MVE] fix typo in llvm debug message. NFC.
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
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
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
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
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
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/avx2-builtins.c
The file was modifiedllvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
The file was modifiedclang/test/CodeGen/X86/avx512-reduceMinMaxIntrin.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll
The file was modifiedclang/test/CodeGen/X86/sse2-builtins.c
The file was modifiedclang/test/CodeGen/X86/avx512bw-builtins.c
The file was modifiedclang/test/CodeGen/X86/sse41-builtins.c
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedllvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
The file was modifiedclang/test/CodeGen/X86/avx512f-builtins.c
The file was modifiedclang/test/CodeGen/X86/avx512vl-builtins.c
The file was modifiedclang/test/CodeGen/X86/avx512vlbw-builtins.c
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/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
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-nwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-ncw-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-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-ndhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir
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-nwc-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-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-1d-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir
The file was removedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nchw-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/test/Conversion/StandardToLLVM/invalid.mlir
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
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/include/llvm/Analysis/ConstraintSystem.h
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was addedllvm/lib/Analysis/ConstraintSystem.cpp
The file was addedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was addedllvm/utils/convert-constraint-log-to-z3.py
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.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
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
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
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/AMDGPU/spill-m0.ll
The file was modifiedllvm/test/CodeGen/X86/2009-04-14-IllegalRegs.ll
The file was modifiedllvm/test/CodeGen/X86/swifterror.ll
The file was modifiedllvm/test/CodeGen/AArch64/popcount.ll
The file was modifiedllvm/test/CodeGen/X86/extend-set-cc-uses-dbg.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion.ll
The file was modifiedllvm/test/CodeGen/ARM/legalize-bitcast.ll
The file was modifiedllvm/test/CodeGen/X86/pr27591.ll
The file was modifiedllvm/test/CodeGen/Mips/implicit-sret.ll
The file was modifiedllvm/test/CodeGen/X86/lvi-hardening-loads.ll
The file was modifiedllvm/test/CodeGen/X86/swift-return.ll
The file was modifiedllvm/test/CodeGen/X86/atomic-unordered.ll
The file was modifiedllvm/test/CodeGen/X86/pr44749.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll
The file was modifiedllvm/test/CodeGen/X86/crash-O0.ll
The file was modifiedllvm/test/CodeGen/X86/pr1489.ll
The file was modifiedllvm/test/CodeGen/X86/pr30430.ll
The file was modifiedllvm/test/CodeGen/X86/pr47000.ll
The file was modifiedllvm/test/CodeGen/X86/pr32451.ll
The file was modifiedllvm/test/CodeGen/AArch64/fast-isel-sp-adjust.ll
The file was modifiedllvm/test/CodeGen/SPARC/fp16-promote.ll
The file was modifiedllvm/test/CodeGen/X86/pr39733.ll
The file was modifiedllvm/test/CodeGen/X86/pr32340.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wwm-reserved.ll
The file was modifiedllvm/test/CodeGen/PowerPC/vsx.ll
The file was modifiedllvm/test/CodeGen/X86/pr32284.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
The file was modifiedllvm/test/CodeGen/X86/pr32241.ll
The file was modifiedllvm/test/CodeGen/X86/regalloc-fast-missing-live-out-spill.mir
The file was modifiedllvm/test/CodeGen/X86/avx-load-store.ll
The file was modifiedllvm/test/CodeGen/X86/mixed-ptr-sizes.ll
The file was modifiedllvm/test/CodeGen/PowerPC/addegluecrash.ll
The file was modifiedllvm/test/CodeGen/X86/pr34592.ll
The file was modifiedllvm/test/CodeGen/Mips/atomic-min-max.ll
The file was modifiedllvm/test/CodeGen/X86/fast-isel-nontemporal.ll
The file was modifiedllvm/test/DebugInfo/X86/op_deref.ll
The file was modifiedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fptosi_and_fptoui.ll
The file was modifiedllvm/test/CodeGen/X86/pr30813.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll
The file was modifiedllvm/test/CodeGen/PowerPC/popcount.ll
The file was modifiedllvm/test/CodeGen/X86/atomic32.ll
The file was modifiedllvm/test/CodeGen/Mips/atomic.ll
The file was modifiedllvm/test/CodeGen/X86/pr32345.ll
The file was modifiedllvm/lib/CodeGen/RegAllocFast.cpp
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vcvt_f.ll
The file was modifiedllvm/test/CodeGen/X86/atomic64.ll
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
The file was modifiedlldb/unittests/SymbolFile/DWARF/CMakeLists.txt
The file was modifiedlldb/unittests/Expression/CMakeLists.txt
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 modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
The file was addedlldb/test/API/functionalities/gdb_remote_client/basic_eh_frame-aarch64.yaml
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.h
The file was addedlldb/test/API/functionalities/gdb_remote_client/TestQemuAArch64TargetXml.py
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
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
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
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
Commit 50d2a5d4c747855dc86a8b66a4a228abb66ca08e by llvm-dev
LoopCacheAnalysis.h - remove unnecessary includes. NFCI.

More remaining dependencies down to LoopCacheAnalysis.cpp
The file was modifiedllvm/include/llvm/Analysis/LoopCacheAnalysis.h
The file was modifiedllvm/lib/Analysis/LoopCacheAnalysis.cpp
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
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
The file was modifiedclang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp
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/include/llvm/Analysis/ConstraintSystem.h
The file was modifiedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was modifiedllvm/lib/Analysis/ConstraintSystem.cpp
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 addedflang/docs/_templates/layout.html
The file was addedflang/docs/GettingInvolved.md
The file was addedflang/docs/_templates/indexsidebar.html
The file was modifiedflang/docs/conf.py
The file was modifiedflang/docs/index.md
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
The file was modifiedlld/wasm/Writer.cpp
The file was addedlld/test/wasm/export-all.s
Commit 57752b1449440a7d034d2d1781f586c3c664712e by thakis
[gn build] (semi-manually) port 380e746bcca
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
Commit 802d21cdf08ea43d5c32924ac29c44b00c4a841f by flo
[ConstraintElimination] Add initial tests.
The file was addedllvm/test/Transforms/ConstraintElimination/dom.ll
The file was addedllvm/test/Transforms/ConstraintElimination/i128.ll
The file was addedllvm/test/Transforms/ConstraintElimination/ule.ll
The file was addedllvm/test/Transforms/ConstraintElimination/geps.ll
The file was addedllvm/test/Transforms/ConstraintElimination/loops.ll
The file was addedllvm/test/Transforms/ConstraintElimination/geps.2d.ll
The file was addedllvm/test/Transforms/ConstraintElimination/uge.ll
The file was addedllvm/test/Transforms/ConstraintElimination/ugt-ule.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
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
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
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
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll
Commit 46dc41e1ef9c38cc4cef0a995528bbf58d616a09 by llvmgnsyncbot
[gn build] Port a8058c6f8d1
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
Commit c0809f8d79045941d45c7bd60a12ddd0f6e0811a by llvmgnsyncbot
[gn build] Port cd4edf94cd4
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
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/test/Transforms/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
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/test/Dialect/OpenACC/ops.mlir
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
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
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
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
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
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 addedlibc/config/linux/platform_defs.h.inc
The file was modifiedlibc/src/__support/CMakeLists.txt
The file was removedlibc/config/linux/platfrom_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
Commit e328456a9e6fa8c1ef05e183c1506ed837005847 by gchatelet
[libc] Add missing TableGen dependency

Differential Revision: https://reviews.llvm.org/D87689
The file was modifiedlibc/utils/LibcTableGenUtil/CMakeLists.txt
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/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/std-c-library-functions-arg-constraints.c
The file was modifiedclang/test/Analysis/analyzer-enabled-checkers.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
The file was addedclang/test/Analysis/std-c-library-functions-vs-stream-checker.c
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator.h
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
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
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
The file was modifiedclang/docs/analyzer/user-docs/CrossTranslationUnit.rst
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
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/fminmax-folds.ll
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
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/include/llvm/Transforms/Vectorize/SLPVectorizer.h
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
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 modifiedmlir/test/Dialect/OpenACC/ops.mlir
The file was addedmlir/test/Dialect/OpenACC/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
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/include/clang/Analysis/Analyses/LiveVariables.h
The file was modifiedclang/test/Analysis/live-stmts.cpp
The file was modifiedclang/docs/analyzer/developer-docs/DebugChecks.rst
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/live-stmts.mm
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp
The file was modifiedclang/lib/Analysis/LiveVariables.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp
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
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
Commit 4ddd985ca941e48a016e8d7270921b4aa76afbe1 by Louis Dionne
NFC: Add whitespace change to .git-blame-ignore-revs
The file was modified.git-blame-ignore-revs
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
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll
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/test/Shell/ScriptInterpreter/Lua/lua.test
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/lua-python.test
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp
The file was modifiedlldb/source/Commands/CommandObjectScript.cpp
The file was modifiedlldb/source/Commands/CommandObjectScript.h
The file was addedlldb/test/Shell/ScriptInterpreter/Python/python.test
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/lib/Transforms/Vectorize/VectorCombine.cpp
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll
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/COFF/undefined-symbol-dwarf.s
The file was modifiedlld/test/COFF/duplicate-dwarf.s
The file was modifiedlld/test/wasm/debuginfo.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modifiedlld/test/ELF/conflict-debug-variable2.s
The file was modifiedllvm/test/tools/llvm-symbolizer/frame-fortran.s
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/pr47285-not-overwritten-on-all-exit-paths.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
Commit 03f1516d6075f42dce95bcf9fde3f6fde97abd35 by i
[MemoryBuffer] Revert unintended MemoryBuffer change from D86996

Fixes SupportsTest MemoryBufferTest.mmapVolatileNoNull
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp
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
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/parallel_private_codegen.cpp
The file was modifiedclang/test/OpenMP/task_codegen.cpp
The file was modifiedclang/test/OpenMP/for_linear_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_firstprivate_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/test/OpenMP/for_reduction_codegen_UDR.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/test/OpenMP/allocate_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h
The file was modifiedclang/test/OpenMP/for_lastprivate_codegen.cpp
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-1.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/pr31098.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/forward-loop-carried.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-off-by-one-error.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check2.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/independent-interleaved.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/non-wrapping-pointer.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/safe-no-checks.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/underlying-objects-2.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/nullptr.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check1.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-wrapping-pointers.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/memcheck-for-loop-invariant.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/resort-to-memchecks-only.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/safe-with-dep-distance.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/backward-dep-different-types.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/number-of-memchecks.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check3.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/pointer-with-unknown-bounds.ll
The file was modifiedllvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks-convergent.ll
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/DADelin.ll