SuccessChanges

Summary

  1. [SyntaxTree] Fix crash on pointer to member function (details)
  2. Improve diagnostics for disallowed attributes used with multiversioning (details)
  3. Permit nowthrow and nonnull with multiversioning. (details)
  4. Fix sphinx indentation warning. (details)
  5. [X86] getFauxShuffleMask - drop unnecessary computeKnownBits OR(X,Y) shuffle decoding. (details)
  6. Fix sphinx indentation warning to stop newline in byref section html output. (details)
  7. [AMDGPU] Generate frem test checks (details)
  8. [AMDGPU] Use fma for lowering frem (details)
  9. [test] Use abspath instead of realpath sometimes (details)
  10. [PowerPC] Custom lowering for funnel shifts (details)
  11. Fix sphinx "Title underline too short" warning (details)
  12. Separate code-block tag with a newline to fix code snippet html output (details)
  13. [PowerPC] Don't remove single swap between the load and store (details)
  14. [clang][BPF] support type exist/size and enum exist/value relocations (details)
  15. [OpenMP] Don't use MSVC workaround with MinGW (details)
  16. [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable (details)
  17. GlobalISel: Hack a test to avoid a bug introducing a verifier error (details)
  18. [docs] Mention LLVM_ENABLE_MODULES. (details)
  19. [InstSimplify] refactor min/max folds with shared operand; NFC (details)
  20. [lldb/Host] Upstream macOS TCC code (details)
  21. [GlobalISel] Don't transform FSUB(-0, X) -> FNEG(X) in GlobalISel. (details)
  22. AMDGPU/GlobalISel: Ensure subreg is valid when selecting G_UNMERGE_VALUES (details)
  23. [DWARFYAML] Fix unintialized value Is64BitAddrSize. NFC. (details)
  24. [GlobalISel] Remove redundant FNEG tests. (details)
  25. [MLIR] Simplify semi-affine expressions (details)
  26. Fix sphinx indentation warnings by adding explicit line breaks to address space hierarchy (details)
  27. [gn build] (manually) merge 593e1962 (details)
  28. sanitizer_symbolizer_libcdep.cpp: Change --inlining=true to --inlines and --inlining=false to --no-inlines (details)
  29. Fix -Wconstant-conversion warning with explicit cast (details)
  30. [MLIR][SPIRVToLLVM] Indentation and style fix in tests (details)
  31. [InstSimplify] add tests for compare of min/max; NFC (details)
  32. [test] Fix another realpath->abspath. (details)
  33. [clang] improve diagnostics for misaligned and large atomics (details)
  34. Revert "[HotColdSplit] Add test case for unlikely attribute in outlined function" (details)
  35. [SCCP] Propagate inequalities (details)
  36. [llvm-symbolizer] Add compatibility aliases for --inlining={true,false} (details)
  37. [InstSimplify] Add tests for icmp with urem divisor (NFC) (details)
  38. [InstSimplify] Peephole optimization for icmp (urem X, Y), X (details)
  39. [NFC][LV] Vectorized Loop Skeleton Refactoring (details)
  40. [mlir] [VectorOps] Add expand/compress operations to Vector dialect (details)
  41. [libc++abi] Make sure we use a 32 bit guard on 32 bit Aarch64 (details)
  42. AMDGPU/GlobalISel: Add baseline tests for andn2/orn2 matching (details)
  43. GlobalISel: Add node mappings for frameindex/blockaddress (details)
  44. [libc] Add implementations for isblank, iscntrl, isgraph, ispunct. (details)
  45. GlobalISel: Handle llvm.localescape (details)
  46. [llvm-symbolizer][test] Fix pdb/pdb.test after D83530 (details)
  47. [MLIR][Affine] Fix createPrivateMemRef in affine fusion (details)
  48. BPF: support type exist/size and enum exist/value relocations (details)
  49. [FastISel] Don't transform FSUB(-0, X) -> FNEG(X) in FastISel (details)
  50. [MLIR] Change FunctionType::get() and TupleType::get() to use TypeRange (details)
  51. [WebAssembly] Use "signed char" instead of "char" in SIMD intrinsics. (details)
  52. [libFuzzer] Fix endianness issue in ForEachNonZeroByte() (details)
  53. [SanitizerCoverage] Fix types of __stop* and __start* symbols (details)
  54. [libFuzzer] Enable for SystemZ (details)
  55. [lldb/Test] Add missing stdio.h includes (details)
  56. [OpenMP] support build on msys2/mingw with clang or gcc (details)
  57. [HotColdSplit] Add test case for unlikely attribute in outlined function (details)
  58. [AArch64][SVE] Widen narrow sdiv/udiv operations. (details)
  59. [lldb-vscode ]Add Syntax Highlighting to Disassembly View (details)
  60. GlobalISel: Add utilty for getting function argument live ins (details)
  61. [lldb/Test] Skip tests that try to get the remote environment (details)
  62. AMDGPU/GlobalISel: Select llvm.returnaddress (details)
  63. [llvm][NFC] Moved implementation of TrainingLogger outside of its decl (details)
  64. AMDGPU/GlobalISel: Use live in helper function for returnaddress (details)
  65. [lldb/Test] Add @skipIfRemote decorator to TestProcessList.py (details)
  66. [RDF] Remove uses of RDFRegisters::normalize (deprecate) (details)
  67. [SelectionDAG][SVE] Support scalable vectors in getConstantFP() (details)
  68. [Hexagon] Use InstSimplify instead of ConstantProp (details)
  69. Teach SROA to handle allocas with more than one dbg.declare. (details)
  70. [RDF] Lower the sorting complexity in RDFLiveness::getAllReachingDefs (details)
  71. [RDF] Cache register aliases in PhysicalRegisterInfo (details)
  72. [RDF] Really remove remaining uses of PhysicalRegisterInfo::normalize (details)
  73. BPF: simplify IR generation for __builtin_btf_type_id() (details)
  74. [RDF] Use hash-based containers, cache extra information (details)
  75. [RDF] Add operator<<(raw_ostream&, RegisterAggr), NFC (details)
  76. Fix debugserver's qProcessInfo reporting of maccatalyst binaries (details)
  77. [NFC][InstCombine] Negator: add tests for negation of left-shift by constant (details)
  78. [NFC][InstCombine] Fix value names (s/%tmp/%i/) and autogenerate a few tests being affected by negator change (details)
  79. [InstCombine] Negator: -(X << C)  -->  X * (-1 << C) (details)
  80. Revert "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)" (details)
  81. [llvm] Expose type and element count-related APIs on TensorSpec (details)
  82. [StackSafety,NFC] Add combined index test (details)
  83. [lldb/testsuite] Skip 'frame diagnose' tests based on architecture (details)
  84. [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures after D83273 (details)
  85. PR46997: don't run clang-format on clang's testcases. (details)
  86. [StackSafety,NFC] Add combined index test (details)
  87. [llvm-cov] reset executation count to 0 after wrapped segment (details)
  88. GlobalISel: Move load/store lowering to separate functions (details)
  89. GlobalISel: Fix redundant variable and shadowing (details)
  90. GlobalISel: Simplify code (details)
  91. GlobalISel: Use buildAnyExtOrTrunc (details)
  92. DomTree: Make PostDomTree immune to block successors swap (details)
  93. [BPI][NFC] Unify handling of normal and SCC based loops (details)
  94. Revert "DomTree: Make PostDomTree immune to block successors swap" (details)
  95. [JumpThreading] Add a test for D85023; NFC (details)
  96. [JumpThreading] Consider freeze as a zero-cost instruction (details)
  97. [llvm-rc] Allow string table values split into multiple string literals (details)
  98. [MLIR][SPIRVToLLVM] Updated documentation for SPIR-V to LLVM conversion (details)
  99. DomTree: Make PostDomTree indifferent to block successors swap (details)
  100. [MLIR][SPIRVToLLVM] Conversion pattern for loop op (details)
  101. [SyntaxTree] Add test coverage for `->*` operator (details)
  102. [lldb] fix building with panel.h being in /usr/include/ncurses/ (details)
  103. [lldb][gui] implement TerminalSizeChanged() (details)
  104. [lldb][gui] implement shift+tab for going back in views (details)
  105. [lldb][gui] implement breakpoint removal on breakpoint toggling (details)
  106. [lldb][gui] move TestGuiBasicDebug.py to lldb/test and update it (details)
  107. [lldb][gui] add a test for 'b' (toggle breakpoint) (details)
  108. [Flang] Fix multi-config generator builds (details)
  109. [AMDGPU] Lower frem f16 (details)
  110. [AMDGPU] Precommit tests for D84518 Propagate fast math flags in frem lowering (details)
  111. [AMDGPU] Propagate fast math flags in frem lowering (details)
  112. [MLIR][SPIRVToLLVM] Updated LLVM types in the documentation (details)
  113. [AArch64][SVE] Disable tail calls if callee does not preserve SVE regs. (details)
  114. Do not map read-only data memory sections with EXECUTE flags. (details)
  115. [lldb/TestingSupport] Manually disable GTEST_HAS_TR1_TUPLE (details)
  116. [lldb] Use PyUnicode_GetLength instead of PyUnicode_GetSize (details)
  117. [lldb] Suppress MSVC warning C4065 (details)
  118. [compiler-rt] Normalize some in/out doxygen parameter in interface (details)
  119. [MLIR][Shape] Expose extent tensor type builder (details)
  120. [lldb] temporary commit to see why a test is failing only on lldb-aarch64-ubuntu (details)
  121. Revert "[lldb] temporary commit to see why a test is failing only on lldb-aarch64-ubuntu" (details)
  122. [docs] Document pattern of using CHECK-SAME to skip irrelevant lines (details)
  123. [llvm-symbolizer] Add legacy aliases -demangle=true and -demangle=false. (details)
  124. [llvm-readobj/elf] - Add a testing for --stackmap and refine the implementation. (details)
  125. [mlir] Lower RankOp to LLVM for unranked memrefs. (details)
  126. [mlir] Conversion of ViewOp with memory space to LLVM. (details)
  127. [lldb] expect TestGuiBasicDebug.py failure on aarch64 (details)
  128. [DAG] Fold vector (aext (load x)) -> (zext (truncate (zextload x))) (details)
  129. [SVE] Add lowering for fixed length vector and, or & xor operations. (details)
  130. Revert "[CMake] Simplify CMake handling for zlib" (details)
  131. [X86][AVX] Add test showing unnecessary duplicate HADD instructions (details)
  132. CallLowering.h - remove unnecessary CCState forward declaration. NFCI. (details)
  133. GISelWorkList.h - remove unnecessary includes. NFCI. (details)
  134. Support member expressions in bugprone-bool-pointer-implicit-conversion. (details)
  135. [obj2yaml] Add support for dumping the .debug_aranges section. (details)
  136. [mlir] Fix convert-to-llvmir.mlir test broken due to syntax change (details)
  137. DWARFVerifier.h - remove unnecessary forward declarations and includes. NFCI. (details)
  138. [ARM][CostModel] Implement getCFInstrCost (details)
  139. [CUDA][HIP] Support accessing static device variable in host code for -fno-gpu-rdc (details)
  140. [mlir] Remove LLVMTypeTestDialect (details)
  141. [clang][NFC] Remove spurious +x flag on DeclTemplate.cpp and DeclTemplate.h (details)
  142. [clang][NFC] Add a test showcasing an unnamed template parameter in a diagnostic (details)
  143. [clang][NFC] Remove an old workaround for MSVC 2013 (details)
  144. [clang][NFC] Document NamedDecl::printName (details)
  145. [clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString (details)
  146. [clang][NFCI] Get rid of ConstantMatrixTypeBitfields to avoid increasing the size of every type. (details)
  147. [clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters. (details)
  148. [gn build] (manually) merge 3ab01550b (details)
  149. Recommit "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)" (details)
  150. [mlir] Initial version of C APIs (details)
  151. [clang] Add -fno-delayed-template-parsing to the added unit tests in DeclPrinterTest.cpp (details)
  152. [Statepoints] Operand folding in presense of tied registers. (details)
  153. [OpenMP] Fix `present` for exit from `omp target data` (details)
  154. [OpenMP][Docs] Add map clause reordering status as unclaimed (details)
  155. [OpenMP][Docs] Mark `present` map type modifier as done (details)
  156. [OpenMP] Fix `omp target update` for array extension (details)
  157. [llvm-readobj] - Make decode_relrs() don't return Expected<>. NFCI. (details)
  158. [X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for integer types (details)
  159. [X86] isHorizontalBinOp - only update LHS/RHS references on success (details)
  160. [libc] Add isspace, isprint, isxdigit implementations. (details)
  161. [libc] [obvious] Add ctype functions to linux api. (details)
  162. Bump forgotten version nbr in llvm/docs/conf.py (details)
  163. [clangd] Fix a crash in DefineInline (details)
  164. [InstSimplify] reduce code duplication in simplifyICmpWithMinMax(); NFC (details)
  165. MachO: support `-syslibroot` (details)
  166. [JITLink][AArch64] Improve debug output for addend relocations. (details)
  167. [JITLink][AArch64] Handle addends on PAGE21 / PAGEOFF12 relocations. (details)
  168. Add libFuzzer shared object build output (details)
  169. [ELF] --oformat=binary: use LMA to compute file offsets (details)
  170. [ELF] --icf: don't fold text sections with LSDA (details)
  171. [ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD (details)
  172. [mlir] Fix rank bitwidth in UnrankedMemRefType conversion. (details)
  173. [MLIR][NFC] Fix clang-tidy warnings in std to llvm conversion (details)
  174. [InstSimplify] add tests for icmp with 'mul nuw' operand; NFC (details)
  175. [NFC][InstCombine] Tests for negation of `add` w/ single negatible operand (details)
  176. [InstCombine] Negator: 0 - (X + Y)  -->  (-X) - Y  iff a single operand negated (details)
  177. Remove special Hexagon packet traversal code (details)
  178. [lldb] Make SBTarget::LaunchSimple start form the target's LaunchInfo (details)
  179. [lldb] Add an option to inherit TCC permissions from parent. (details)
  180. [NFC][InstCombine] Negator: include all the needed headers, IWYU (details)
  181. [LoopVectorizer] Inloop vector reductions (details)
  182. [ASan][Darwin] Adapt test for macOS 11+ version scheme (details)
  183. [lldb/test] Replace LLDB_TEST_SRC env variable with configuration (details)
  184. [TFUtils] Expose untyped accessor to evaluation result tensors (details)
  185. Revert "[LoopVectorizer] Inloop vector reductions" (details)
  186. [X86][SSE] Fold 128-bit PACK(EXTEND(X),EXTEND(Y)) -> CONCAT(X,Y) subvectors (details)
  187. [msan] Remove readnone and friends from call sites. (details)
  188. [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function. (details)
  189. Fix _ExtInt(1) to be a i1 in memory. (details)
  190. [clangd] Hide "swap if branch" tweak (details)
  191. Remove Olesen from LLVM code owners (details)
  192. [MLIR][LinAlg] Use AnyTypeOf for LinalgOperand for better error msg. (details)
  193. [libFuzzer] Do not link pthreads on Android. (details)
  194. [mlir][nfc] Rename `promoteMemRefDescriptors` to `promoteOperands`. (details)
  195. [flang][NFC] Unify OpenMP and OpenACC structure checker (details)
  196. [clang-format] fix BreakBeforeBraces.MultiLine with for each macros (details)
  197. [InstSimplify] add vector tests for icmp with mul nuw; NFC (details)
  198. [InstSimplify] fold icmp with mul nuw and constant operands (details)
  199. [lldb/test] Use realpath consistently for test root file paths. (details)
  200. [InstSimplify] fold icmp with mul nsw and constant operands (details)
  201. AMDGPU: Fix verifier error with undef source producing s_bitset* (details)
  202. AMDGPU: Remove leftover test (details)
  203. [spirv] Fix bitwidth emulation for Workgroup storage class (details)
  204. AMDGPU: Refactor buffer atomic intrinsic lowering (details)
  205. [NFC][InstCombine] Add tests for negation of old-style [n]abs, select-of-op-vs-negation-of-op (details)
  206. [InstCombine] Negator: -(cond ? x : -x)  -->  cond ? -x : x (details)
  207. [mlir][StandardToSPIRV] Use spv.UMod for index re-calculation (details)
  208. [clangd] Disable define out-of-line code action on templates (details)
  209. Revert "Add libFuzzer shared object build output" (details)
  210. [clangd][NFC] Delete dead code in ExtractFunction code action (details)
  211. AMDGPU: Eliminate BUFFER_ATOMIC_PK_ADD_F16 node (details)
  212. [Driver] Accept -fno-lto in clang-cl (details)
  213. [NewPM][LoopRotate] Rename rotate -> loop-rotate (details)
  214. [AMDGPU] gfx1031 target (details)
  215. [AMDGPU] Added missing gfx1031 cases to CGOpenMPRuntimeGPU.cpp (details)
  216. AMDGPU: Correct prolog SP initialization logic (details)
  217. [CUDA] Work around a bug in rint/nearbyint caused by a broken implementation provided by CUDA. (details)
  218. [lldb/test] Support git commit version ids for clang. (details)
  219. [Propeller]: Use a descriptive temporary symbol name for the end of the basic block. (details)
  220. [AMDGPU] Scavenge temp reg for AGPR spill (details)
  221. [libomptarget][NFC] Replace `%ld` with PRId64 for data of type int64_t. (details)
  222. [libc] Add strspn implementation and std::bitset (details)
  223. [OpenMP] Fix `present` diagnostic for array extension (details)
  224. [OpenMP] Fix `target data` exit for array extension (details)
  225. [WebAssembly] Fix types in wasm_simd128.h and add tests (details)
  226. [InstCombine] add tests for icmp with mul nsw/nuw; NFC (details)
  227. [InstCombine] fold icmp with 'mul nsw/nuw' and constant operands (details)
  228. CFG: Destroy temporaries in (a,b) expression in the correct order. (details)
  229. [lldb] Modify the `skipIfRemote` decorator so we can skip all PExpect tests. (details)
  230. [lldb] Skip TestProcessConnect when running remotely (details)
  231. Add verification for DW_AT_decl_file and DW_AT_call_file. (details)
  232. [mlir] use the new stateful LLVM type translator by default (details)
  233. [lldb] Skip test_launch_simple on Windows (details)
  234. [X86] Add test case for PR47000. NFC (details)
  235. [X86] Disable copy elision in LowerMemArgument for scalarized vectors when the loc VT is a different size than the original element. (details)
  236. [MSSA][NewPM] Handle tests with -print-memoryssa (details)
  237. [X86] Rename mod128.ll to divmod128.ll and add test cases for sdiv/udiv/urem. (details)
  238. [CMake] Simplify CMake handling for zlib (details)
  239. [ELF] Allow SHF_LINK_ORDER sections to have sh_link=0 (details)
  240. [Analyzer][WebKit] UncountedLambdaCaptureChecker (details)
  241. [ELF][test] Add REQUIES: x86 and -triple=x86_64 to linkorder-mixed.s (details)
  242. [ELF] Fix type of ciesWithLSDA after D84610 (details)
  243. [gn build] Port 820e8d8656e (details)
  244. [mlir] [VectorOps] Add masked load/store operations to Vector dialect (details)
  245. [MSSA] Update test with more detailed and resilient checks. [NFC] (details)
  246. [lld-macho] Fix errant search and replace. NFC (details)
  247. [ELF][test] Add another -triple=x86_64 to linkorder-mixed.s (details)
  248. [JumpThreading] Add a test that duplicates insts of a basic block with cond br to preds; NFC (details)
  249. [JumpThreading] Allow duplicating a basic block into preds when its branch condition is freeze(phi) (details)
  250. [flang] Fix compilation warning in check-directive-structure.h (details)
  251. [lldb] Make UBSan tests remote ready (details)
  252. [AMDGPU] add buffer_atomic_swap for float (details)
  253. [NewPM][opt] Add more codegen passes (details)
  254. AMDGPU: Remove ATOMIC_PK_FADD (details)
  255. "|" used when "||" was meant in SBTarget::FindFunctions (details)
  256. GetPath() returns a std::string temporary.  You can't reference just the c_str. (details)
  257. [CMake] Print the autodetected host linker version (details)
  258. [lldb] Fix bug in skipIfRosetta decorator (details)
  259. [JITLink][MachO][AArch64] More PAGEOFF12 relocation fixes. (details)
  260. [lldb] Remove pointless assign to found_suffix (NFC) (details)
  261. Fix typo in test. Thanks to Andrew Ng for spotting this! (details)
  262. [X86] Remove incomplete custom handling of i128 sdivrem/udivrem on Windows. (details)
  263. [Coroutines] Use  to collect lifetime marker of  in CoroFrame Differential Revision: https://reviews.llvm.org/D85279 (details)
  264. [ARM, AArch64] Fix a comment typo. NFC. (details)
  265. [AArch64] [Windows] Error out on unsupported symbol locations (details)
  266. [lldb][gui] truncate long lines/names if needed (details)
  267. [lldb][gui] use syntax highlighting also in gui mode (details)
  268. [lldb][gui] use names for color pairs, instead of magic numbers (details)
  269. [X86] Rename X86::getImpliedFeatures to X86::updateImpliedFeatures and pass clang's StringMap directly to it. (details)
  270. [clang-tidy] Fix bugprone-bad-signal-to-kill-thread crash when `SIGTERM` was undefined after definition. (details)
  271. [clang-tidy] Fix bugprone-bad-signal-to-kill-thread crash when `SIGTERM` is not a literal. (details)
  272. [update_cc_test_checks.py] Add test for D84511 (details)
  273. Fix qsort() interceptor for FreeBSD (details)
  274. [lit] Remove ANSI control characters from xunit output (details)
  275. [compiler-rt] Fix build of Sanitizer-Test_Nolibc after D80648 (details)
  276. [DWARFYAML][debug_info] Pull out dwarf::FormParams from DWARFYAML::Unit. (details)
  277. [clang][Driver] Don't hardcode --as-needed/--no-as-needed on Illumos (details)
  278. [NFC][InstCombine] Add tests for comparisons between x and negation of x (PR39480) (details)
  279. [InstCombine] (-NSW x) s> x  --> x s< 0  (PR39480) (details)
  280. [InstCombine] (-NSW x) ==/!= x  --> x ==/!= 0  (PR39480) (details)
  281. [InstCombine] (-NSW x) s>= x  --> x s<= 0  (PR39480) (details)
  282. [InstCombine] (-NSW x) s< x  --> x s> 0  (PR39480) (details)
  283. [InstCombine] (-NSW x) s<= x  --> x s>= 0  (PR39480) (details)
  284. [InstCombine] (-NSW x) u> x  --> x s> 0  (PR39480) (details)
  285. [InstCombine] (-NSW x) u>= x  --> x s>= 0  (PR39480) (details)
  286. [InstCombine] (-NSW x) u< x  --> x s< 0  (PR39480) (details)
  287. [InstCombine] (-NSW x) u<= x  --> x s<=0  (PR39480) (details)
  288. [NFC][InstCombine] Refactor '(-NSW x) pred x' fold (details)
  289. [lldb] Fix LLDB compilation with ncurses 6.2 due to wattr_set/get being a macro (details)
  290. [mlir] Remove most uses of LLVMDialect::getModule (details)
  291. [mlir] take MLIRContext instead of LLVMDialect in getters of LLVMType's (details)
  292. [LoopVectorizer] Inloop vector reductions (details)
  293. [InstCombine] Add tests for D84948; NFC (details)
  294. [InstCombine] Fold freeze(undef) into a proper constant (details)
  295. [flang] Add parser support for OpenMP allocate clause (details)
  296. [mlir] Lower DimOp to LLVM for unranked memrefs. (details)
  297. [dsymutil] Disable dsymutil/X86/reproducer.test on windows. (details)
  298. [analyzer][tests] Understand when diagnostics change between builds (details)
  299. [MLIR] Change GpuLaunchFuncToGpuRuntimeCallsPass to wrap a RewritePattern with the same functionality. (details)
  300. [SVE] Implement lowering for fixed length vector multiplication. (details)
  301. [mlir][Linalg] Introduce canonicalization to remove dead LinalgOps (details)
  302. [SVE] Lower scalable vector mul operations. (details)
  303. [X86][SSE] Expose all memory offsets in expand load tests (details)
  304. PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI. (details)
  305. [X86] getX86MaskVec - replace mask limit from NumElts < 8 with NumElts <= 4 (details)
  306. Fix include sorting order. NFC (details)
  307. Revert "[ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD" (details)
  308. BitstreamRemarkParser.h - remove unnecessary includes. NFCI. (details)
  309. [ABI][NFC] Fix the confusion of ByVal and ByRef argument names (details)
  310. [GlobalISel][InlineAsm] Fix matching input constraint to physreg (details)
  311. [LLDB] Skip test_launch_simple from TestTargetAPI.py on Arm/AArch64 Linux (details)
  312. [lldb][AArch64] Correct compile options for Neon corefile (details)
  313. [obj2yaml] Test dumping an empty .debug_aranges section. (details)
  314. [DWARFYAML][debug_info] Make the 'Values' field optional. (details)
  315. [DOCS] Add more detail to stack protector documentation (details)
  316. [mlir][Vector] NFC - Use matchAndRewrite in ContractionOp lowering patterns (details)
  317. Revert "PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI." (details)
  318. AMDGPU/GlobalISel: Fix assert on copy to vcc (details)
  319. AMDGPU/GlobalISel: Make s16 phi legal (details)
  320. [flang] Add options to control IMPLICIT NONE (details)
  321. AMDGPU/GlobalISel: Implement LLT version of allowsMisalignedMemoryAccesses (details)
  322. AMDGPU/GlobalISel: Stop using G_EXTRACT in argument lowering (details)
  323. AMDGPU/GlobalISel: Fix trying to widen <3 x s1> boolean ops (details)
  324. AMDGPU/GlobalISel: Implement expansion for rsq.clamp (details)
  325. [XCOFF][AIX] Put each jump table in an independent section if -ffunction-sections is specified (details)
  326. AMDGPU: Fix code duplication between the selectors (details)
  327. AMDGPU/GlobalISel: Move frame index selection to patterns (details)
  328. [PatternMatch] allow intrinsic form of min/max with existing matchers (details)
  329. AMDGPU/GlobalISel: Try to promote to use packed saturating add/sub (details)
  330. AMDGPU/GlobalISel: Handle llvm.amdgcn.ds.{fadd|fmin|fmax} (details)
  331. [ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD (details)
  332. PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI. (details)
  333. [InstCombine] Add tests for mul(sub(x,y),negpow2) -> mul(sub(y,x),pow2) fold (details)
  334. [lldb][NFC] Document and encapsulate OriginMap in ASTContextMetadata (details)
  335. [OpenMP] Fix ref count dec for implicit map of partial data (details)
  336. [llvm][MLInliner] Don't log 'mandatory' events (details)
  337. [InstCombine] Add tests for mul(add(x,c),negpow2) -> mul(sub(-c,x),pow2) fold (details)
  338. [OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective representation. (details)
  339. [OPENMP]Fix for Windows buildbots, NFC. (details)
  340. GlobalISel: Define InvalidRegBankID enum value (details)
  341. AMDGPU/GlobalISel: Start trying to handle AGPR bank (details)
  342. AMDGPU: Fix spilling of 96-bit AGPRs (details)
  343. [NFC]{MLInliner] Point out the tests' model dependencies (details)
  344. [SLP][X86] Regenerate sdiv test noticed in D83779. NFC. (details)
  345. AArch64/GlobalISel: Fix verifier error after selecting returnaddress (details)
  346. Remove unused variable "saved_opts". (details)
  347. AMDGPU: Define raw/struct variants of buffer atomic fadd (details)
  348. [NewPM] Pin -assumption-cache-tracker tests to legacy PM (details)
  349. [lldb/testsuite] Change get_debugserver_exe to support Rosetta (details)
  350. [HIP] Ignore invalid ar linker options (details)
  351. [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch (details)
  352. GlobalISel: Implement fewerElementsVector for G_EXTRACT_VECTOR_ELT (details)
  353. [AMDGPU][CostModel] Add f16, f64 and contract cases to fused costs estimation. (details)
  354. [clangd] Fix crash in bugprone-bad-signal-to-kill-thread clang-tidy check. (details)
  355. [lldb] Use target.GetLaunchInfo() instead of creating an empty one. (details)
  356. [mlir][SPIR-V] Fix wrongly placed Rationale section. (details)
  357. Add freeze keyword to IR emacs mode (details)
  358. Fix CFI issues in <future> (details)
  359. [SLP] Fix order of `insertelement`/`insertvalue` seed operands (details)
  360. [libc] Add tolower, toupper implementation. (details)
  361. Correctly detect legacy iOS simulator Mach-O objectfiles (details)
  362. [VectorCombine] add tests for load+insert; NFC (details)
  363. clang: Use byref for aggregate kernel arguments (details)
  364. [LLDB] Skip test_launch_simple from TestTargetAPI.py when remote (details)
  365. [InstSimplify] avoid crashing by trying to rem-by-zero (details)
  366. Add missing override to Makefile (details)
  367. [NFC] Rename BBSectionsPrepare -> BasicBlockSections. (details)
  368. BPF: add a SimplifyCFG IR pass during generic Scalar/IPO optimization (details)
  369. [X86] Make getX86TargetCPU return std::string instead of const char *. Remove call to MakeArgString. NFCI (details)
  370. [X86] Optimize out a few extra strlen calls in getX86TargetCPU. NFCI (details)
  371. [LegalTypes] Move VSELECT node creation out of WidenVSELECTAndMask and push to 2 of the 3 callers. (details)
  372. Add -Wtautological-value-range-compare warning. (details)
  373. Unify the code that updates the ArchSpec after finding a fat binary (details)
  374. [NFC][InstCombine] Tests for  x s/EXACT (-1 << y)  pattern (details)
  375. [NFC][InstCombine] Better tests for  x s/EXACT (1 << y)  pattern (details)
  376. [InstCombine] Generalize  sdiv exact X, 1<<C  -->  ashr exact X, C  fold to handle non-splat vectors (details)
  377. [NFC][InstCombine] Negator: add a comment about negating exact arithmentic shift (details)
  378. [InstCombine] Fold  sdiv exact X, -1<<C  -->  -(ashr exact X, C) (details)
  379. [NFC][InstCombine] Add some more tests for negation sinking into mul (details)
  380. [InstCombine] Generalize  %x * (-1<<C)  -->  (-%x) * (1<<C)  fold (details)
  381. [InstCombine] Fold  (x + C1) * (-1<<C2)  -->  (-C1 - x) * (1<<C2) (details)
  382. [flang][msvc] Do not use gcc/clang command line options for msvc. (details)
  383. [msan] Support %ms in scanf. (details)
  384. AMDGPU/GlobalISel: Enable s_{and|or}n2_{b32|b64} patterns (details)
  385. [AMDGPU] Correct missing sram-ecc target feature for gfx906 (details)
  386. BPF: fix libLLVMBPFCodeGen.so build failure (details)
  387. [ELF] Change tombstone values to (.debug_ranges/.debug_loc) 1 and (other .debug_*) 0 (details)
  388. [NewPM][GuardWidening] Fix loop guard widening tests under NPM (details)
  389. [gn build] mac: use frameworks instead of libs where appropriate (details)
  390. GlobalISel: Implement lower for G_INSERT_VECTOR_ELT (details)
  391. Factor out common code from the iPhone/AppleTV/WatchOS simulator platform plugins. (NFC) (details)
  392. [GlobalISel] Fix computing known bits for loads with range metadata (details)
  393. PR30738: Implement two-phase name lookup for fold-expressions. (details)
  394. [VE] Optimize trunc related instructions (details)
  395. fix doc typo to cycle bots (details)
  396. [clangd] Semantic highlighting for dependent template name in template argument (details)
  397. [NewPM] Add callback for skipped passes (details)
  398. [LTO,NFC] Skip generateParamAccessSummary when empty (details)
  399. Disable clang-tidy test that started failing after clang commit ed5a18f. (details)
  400. Reinstate check that we don't crash. (details)
  401. [StackSafety] Skip ambiguous lifetime analysis (details)
  402. [polly] Unbreak buildbot. (details)
  403. [LLParser,NFC] Simplify forward GV refs update (details)
  404. [StackSafety,NFC] Use CHECK-EMPTY in tests (details)
  405. [StackSafety,NFC] Add debug counters (details)
  406. [StackSafety,NFC] Sort llvm-lto2 resolutions in tests (details)
  407. [StackSafety,NFC] Add more tests (details)
  408. [Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior (details)
  409. [flang] Improve message for assignment to subprogram (details)
  410. [StackSafety,NFC] Fix tests in debug (details)
  411. [AArch64][NFC] require aarch64 support for hwasan test (details)
  412. [Polly] Support linking ScopPassManager against LLVM dylib (details)
  413. [Scheduling] Create the missing dependency edges for store cluster (details)
  414. [PowerPC] Support constrained fp operation for setcc (details)
  415. [PowerPC] Implement Vector Extract Low/High Order Builtins in LLVM/Clang (details)
  416. [LLDB] Mark test_launch_simple as a no-debug-info test (details)
  417. [SVE][CodeGen] Fix bug with store of unpacked FP scalable vectors (details)
  418. [NFC] Add the stats for load/store cluster (details)
  419. [clangd] Highlight structured bindings at local scope as LocalVariable (details)
  420. [Test] Add one more test on IndVars that was failing on one of older builds (details)
  421. Revert "[CMake] Simplify CMake handling for zlib" (details)
  422. [clang, test, Darwin] Fix tests expecting Darwin target (details)
  423. [Attributor] AAPotentialValues Interface (details)
  424. [SyntaxTree][NFC] remove redundant namespace-specifiers (details)
  425. [DebugInfo] Clean up DIEUnit. NFC. (details)
  426. [DebugInfo] Remove DwarfUnit::getDwarfVersion(). NFC. (details)
  427. [AST][RecoveryExpr] Fix the missing type when rebuilding RecoveryExpr in TreeTransform. (details)
  428. [VE] Remove obsoleted getVEAsmModeForCPU function (details)
  429. [VE] Change to expand multiply related instructions (details)
  430. [NFC] Replace hasName in loop for hasAnyName (details)
  431. [clangd] Include the underlying decls in go-to-definition. (details)
  432. [AArch64] Disable waitid.cpp test for AArch64 (details)
  433. [Test] Added test showing missing range check elimination opportunity in IndVars (details)
  434. [mlir][Vector] Add 2-D vector contract lowering to ReduceOp (details)
  435. [NFC][Test] Format the test with script update_llc_test_checks.py (details)
  436. [SLP][X86] Add abs/smax/smin/umax/umin intrinsic vectorization tests (details)
  437. Remove unreachable return (PR47026) (details)
  438. [Sema][BFloat] Forbid arithmetic on vectors of bfloat. (details)
  439. Remove unreachable return (PR47028) (details)
  440. [SLP][X86] Add smax intrinsic reduction tests (details)
  441. Remove duplicate/unreachable break (PR47029) (details)
  442. Remove unreachable break. NFC (details)
  443. [DAG] GetDemandedBits - remove custom AND handling. (details)
  444. [mlir] take LLVMContext in MLIR-to-LLVM-IR translation (details)
  445. [mlir] do not require LLVMDialect in conversion from LLVM IR (details)
  446. [mlir] Remove llvm::LLVMContext and llvm::Module from mlir::LLVMDialectImpl (details)
  447. BEGIN_PUBLIC (details)
  448. [macho2yaml] Remove unused functions. NFC. (details)
  449. [Sema] Add casting check for fixed to fixed point conversions (details)
  450. [clangd] Fix a typo, NFC. (details)
  451. [LangRef] Minor fixes to intrinsic headers and descriptions. NFC. (details)
  452. [Intrinsic] Add sshl.sat/ushl.sat, saturated shift intrinsics. (details)
  453. [Fixed Point] Add fixed-point shift operations and consteval. (details)
  454. [NFC][GVN] Fix "avaliable" typos (details)
  455. [PowerPC] Add compatibility check for PPC PLT stubs (details)
  456. [OPENMP]Simplify representation for atomic, critical, master and section (details)
  457. [PowerPC][PCRelative] Set TLS unsupported with PC relative memops (details)
  458. Revisit Dialect registration: require and store a TypeID on dialects (details)
  459. [PowerPC] Add Vector Extract/Expand/Count with Mask, Move to VSR Mask Instruction Definitions and MC Tests (details)
  460. [ARM] Extra reduction plus tailpredication tests. NFC (details)
  461. [mlir] [VectorOps] Improve lowering of extract_strided_slice (and friends like shape_cast) (details)
  462. [NFC] Add utility to sum/merge stats files (details)
  463. [flang] Remove extra CMAKE_CXX_FLAGS in Lower and Optimizer (details)
  464. [analyzer] pr47030: MoveChecker: Unforget a comma in the suppression list. (details)
  465. Make clang HIP headers compatible with C++98 (details)
  466. Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets" (details)
  467. [NewPM] Only verify loop for nonskipped user loop pass (details)
  468. [NewPM][CodeGen] Introduce machine pass and machine pass manager (details)
  469. [lld-macho] Ensure .tbss sections are also considered as ZeroFilled (details)
  470. [lld-macho] Support static linking of thread-locals (details)
  471. [lld-macho] Add .tbd support for frameworks (details)
  472. [SyntaxTree] Use simplified grammar rule for `NestedNameSpecifier` grammar nodes (details)
  473. [Clang] Add note for bad conversion when expression is pointer to forward-declared type (details)
  474. [lldb] Store the Apple SDK in dotest's configuration. (details)
  475. [AMDGPU] Fix not rescheduling without clustering (details)
  476. [NFC] Use value initializer for OVERLAPPED (details)
  477. [gn build] Port 911565d1085 (details)
  478. [PPC] Rename bool-ret-to-int -> ppc-bool-ret-to-int (details)
  479. [mlir] Introduce AffineMinSCF folding as a pattern (details)
  480. Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4% (details)
  481. [mlir][SCF] Add utility to outline the then and else branches of an scf.IfOp (details)
  482. Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager" (details)
  483. [gn build] Port 320eab2d558 (details)
  484. [flang][NFC] Reformat files with current clang-format (details)
  485. [mlir][spirv] Add correct handling of Kernel and Addresses capabilities (details)
  486. [MLIR] Add getSizeInBits() for tensor of complex (details)
  487. Revert "[MSAN] Instrument libatomic load/store calls" (details)
  488. [llvm-install-name-tool] Adds docs for llvm-install-name-tool (details)
  489. [lldb] Only check for --apple-sdk argument on Darwin (details)
  490. [flang] Descriptor-based I/O data item transfers (details)
  491. [libc] Add strcpsn and strpbrk implementation. (details)
  492. [flang] Support DATA statement initialization of numeric with Hollerith/CHARACTER (details)
  493. [FileCheck] Add docs for --allow-empty (details)
  494. lldbutil: add a retry mechanism for the ios simulator (details)
  495. GlobalISel: Handle zext(sext x) in artifact combiner (details)
  496. [ELF]: --icf: don't fold sections referencing sections with LCDA after D84610 (details)
  497. [mlir] Refactor StorageUniquer to require registration of possible storage types (details)
  498. [mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects. (details)
  499. [mlir][Types] Remove the subclass data from Type (details)
  500. [mlir] Remove the need to define `kindof` on attribute and type classes. (details)
  501. [mlir][Attribute] Remove usages of Attribute::getKind (details)
  502. [mlir][Type] Remove usages of Type::getKind (details)
  503. [flang] Update FirOpsDialect constructor to pass its TypeID (details)
  504. Add symlinks for `libtool` and `install_name_tool` (details)
  505. [OpenMP] Split OpenMP/target_map_codegen test [NFC] (details)
  506. [OpenMP,MLIR] Translation of parallel operation: num_threads, if clauses 3/n (details)
  507. [StackSafety,NFC] Add Stats counters (details)
  508. Revert "[StackSafety] Skip ambiguous lifetime analysis" (details)
  509. [llvm-libtool-darwin] Add constant CPU_SUBTYPE_ARM64_V8 (details)
  510. [Clang] implement -fno-eliminate-unused-debug-types (details)
  511. Factor out reference-counting code from PlatformApple* (details)
  512. [llvm-libtool-darwin] Add support for -filelist option (details)
  513. [llvm-libtool-darwin] Add support for -D and -U options (details)
  514. Add a setting to force stepping to always run all threads. (details)
  515. [NFC][MLInliner] Refactor logging implementation (details)
  516. fix windows build for D80242 (details)
  517. [NewPM] Print 'Skipping pass' as pass instrumentation (details)
  518. [lldb] Assert the process has exited before we gets its output. (details)
  519. [mlir] Centralize handling of memref element types. (details)
  520. [OpenMP 5.0] Fix PR-45212: Shouldn't error out while using overloaded operator for map clause (details)
  521. Revert "fix windows build for D80242" (details)
  522. Revert "[Clang] implement -fno-eliminate-unused-debug-types" (details)
  523. Create Reduction Tree Pass (details)
  524. [sanitizer] Fix comment (NFC) (details)
  525. [NFC][StackSafety] Fix statistics (details)
  526. AMDGPU: Avoid explicitly listing all the memory nodes (details)
  527. [flang] Handle DATA initialization of EQUIVALENCE'd objects (details)
  528. Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager"" (details)
  529. [gn build] Port f5b5ccf2a68 (details)
  530. [X86] Don't produce bad x86andp nodes for i1 vectors (details)
  531. PR47025, PR47043: Diagnose unexpanded parameter packs in concept (details)
  532. [MLIR] Add tiling validity check to loop tiling pass (details)
  533. [ELF] Support .cfi_signal_frame (details)
  534. Revert "[mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects." (details)
  535. Remove unused class member (NFC) (details)
  536. Remove unused static helper getMemRefTypeFromTensorType() (NFC) (details)
  537. [X86] Limit the scope of the min/max canonicalization in combineSelect (details)
  538. [InstCombine] Add tests for select(freeze(icmp x, y), x, y); NFC (details)
  539. [libc] Setup TLS in x86_64 loader. (details)
  540. [InstCombine] Optimize select(freeze(icmp eq/ne x, y), x, y) (details)
  541. Add the inline interface to the shape dialect (details)
  542. [libc][NFC] Add library of floating point test matchers. (details)
  543. [libc][NFC] Disable a loader test as ld.gold fails to link. (details)
  544. [test][DebugInfo] Adapt two tests for Sun assembler syntax on Sparc (details)
Commit 8ce15f7eeb122c0bba4b676d797217359dd57c30 by ecaldas
[SyntaxTree] Fix crash on pointer to member function

Differential Revision: https://reviews.llvm.org/D85146
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 961da69d7eafe44411d5ac9719209653d196f9e2 by erich.keane
Improve diagnostics for disallowed attributes used with multiversioning

Since we permit using SOME attributes (at the moment, just 1) with
multiversioning, we should improve the message as it still implies that
no attributes should be combined with multiversioning.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/Sema/attr-target-mv.c
The file was modifiedclang/test/Sema/attr-cpuspecific.c
Commit 0a8ac91a084504929b1ef4ec1fee693455bd796d by erich.keane
Permit nowthrow and nonnull with multiversioning.

Some shipped versions of stdlib.h use nonnull and nothrow with function
multiversioning.  Support these, as they are generally harmless.
The file was modifiedclang/test/Sema/attr-target-mv.c
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/attr-cpuspecific.c
Commit feb9d8bd8e60100b29f8a065995e14a16c871914 by llvm-dev
Fix sphinx indentation warning.

Don't double indent and make it clear we're referting to the latency mode.
The file was modifiedllvm/docs/CommandGuide/llvm-exegesis.rst
Commit 6f0da46d538ec3003584cc6ea4419f4403f19771 by llvm-dev
[X86] getFauxShuffleMask - drop unnecessary computeKnownBits OR(X,Y) shuffle decoding.

Now that rG47cea9e82dda941e lets us aggressively decode multi-use shuffles for the OR(SHUFFLE(),SHUFFLE()) case we don't need the computeKnownBits variant any more.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 6e727551b9db76dd209a34e312dd44faae3843b6 by llvm-dev
Fix sphinx indentation warning to stop newline in byref section html output.
The file was modifiedllvm/docs/LangRef.rst
Commit ee75cf36bb1790a51cd1fd7c022b0ece101eb248 by jay.foad
[AMDGPU] Generate frem test checks

Differential Revision: https://reviews.llvm.org/D84515
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 8ec8ad868d9b970245e827b14306fbd11d11a9b2 by jay.foad
[AMDGPU] Use fma for lowering frem

This gives shorter f64 code and perhaps better accuracy.

Differential Revision: https://reviews.llvm.org/D84516
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Commit 817b3a6fe3a4452eb61a2503c8beaa7267ca0351 by rupprecht
[test] Use abspath instead of realpath sometimes

In these two cases, use of `os.path.realpath` is problematic:

- The name of the compiler is significant [1] . For testing purposes, we might
  provide a compiler called "clang" which is actually a symlink to some build
  script (which does some flag processing before invoking the real clang). The
  destination the symlink may not be called "clang", but we still want it to be
  treated as such.
- When using a build system that puts build artifacts in an arbitrary build
  location, and later creates a symlink for it (e.g. creates a
  "<lldb root>/lldbsuite/test/dotest.py" symlinks that points to
  "/build/artifact/<hash>/dotest.py"), looking at the realpath will not match
  the "test" convention required here.

[1] See `Makefile.rules` in the lldb tree, e.g. we use different flags if the compiler is named "clang"

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85175
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit 28e322ea9393e6b3841886006dd170ddd810fd9b by jay.foad
[PowerPC] Custom lowering for funnel shifts

The custom lowering saves an instruction over the generic expansion, by
taking advantage of the fact that PowerPC shift instructions are well
defined in the shift-by-bitwidth case.

Differential Revision: https://reviews.llvm.org/D83948
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/pr44183.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/funnel-shift.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit cc0b670abf93c9c826885ab67125857469a1b8a6 by llvm-dev
Fix sphinx "Title underline too short" warning
The file was modifiedllvm/docs/Passes.rst
Commit 5e0a9dc0ad7704b7c49995101629010f5ff98cd2 by llvm-dev
Separate code-block tag with a newline to fix code snippet html output
The file was modifiedclang/include/clang/Basic/AttrDocs.td
Commit 14d726acd6041ee8fc595e48ec871b50b40ccc1d by nemanja.i.ibm
[PowerPC] Don't remove single swap between the load and store

The swap removal pass looks to remove swaps when a loaded value is swapped, some
number of lane-insensitive operations are performed and then the value is
swapped again and stored.

However, in a situation where we load the value, swap it and then store it
without swapping again, the pass erroneously removes the single swap. The
reason is that both checks in the same equivalence class:

- load feeds a swap
- swap feeds a store

pass. However, there is no check that the two swaps are actually a single swap.
This patch just fixes that.

Differential revision: https://reviews.llvm.org/D84785
The file was modifiedllvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
The file was addedllvm/test/CodeGen/PowerPC/swaps-le-8.ll
Commit 6d6750696400e7ce988d66a1a00e1d0cb32815f8 by yhs
[clang][BPF] support type exist/size and enum exist/value relocations

This patch added the following additional compile-once
run-everywhere (CO-RE) relocations:
  - existence/size of typedef, struct/union or enum type
  - enum value and enum value existence

These additional relocations will make CO-RE bpf programs more
adaptive for potential kernel internal data structure changes.

For existence/size relocations, the following two code patterns
are supported:
  1. uint32_t __builtin_preserve_type_info(*(<type> *)0, flag);
  2. <type> var;
     uint32_t __builtin_preserve_field_info(var, flag);
flag = 0 for existence relocation and flag = 1 for size relocation.

For enum value existence and enum value relocations, the following code
pattern is supported:
  uint64_t __builtin_preserve_enum_value(*(<enum_type> *)<enum_value>,
                                         flag);
flag = 0 means existence relocation and flag = 1 for enum value.
relocation. In the above <enum_type> can be an enum type or
a typedef to enum type. The <enum_value> needs to be an enumerator
value from the same enum type. The return type is uint64_t to
permit potential 64bit enumerator values.

Differential Revision: https://reviews.llvm.org/D83242
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsBPF.td
The file was modifiedclang/include/clang/Basic/BuiltinsBPF.def
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/builtins-bpf.c
The file was addedclang/test/CodeGen/builtins-bpf-preserve-field-info-3.c
The file was addedclang/test/CodeGen/builtins-bpf-preserve-field-info-4.c
Commit 4a04bc8995639e1d333790518e4d42e0961f740e by Andrey.Churbanov
[OpenMP] Don't use MSVC workaround with MinGW

Patch by mati865@gmail.com

Differential Revision: https://reviews.llvm.org/D85210
The file was modifiedopenmp/runtime/cmake/LibompExports.cmake
The file was modifiedopenmp/runtime/cmake/LibompMicroTests.cmake
The file was modifiedopenmp/runtime/src/CMakeLists.txt
Commit 593e19629744d6c8ba45fe4bb78910cf653cd6a7 by i
[llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable

for the advantage outlined by D83639 ([OptTable] Support grouped short options)

Some behavior changes:

* -i={0,false} is removed. Use --no-inlines instead.
* --demangle={0,false} is removed. Use --no-demangle instead
* -untag-addresses={0,false} is removed. Use --no-untag-addresses instead

Added a higher level API OptTable::parseArgs which handles optional
initial options populated from an environment variable, expands response
files recursively, and parses options.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D83530
The file was modifiedllvm/include/llvm/Support/CommandLine.h
The file was modifiedllvm/lib/Support/CommandLine.cpp
The file was modifiedllvm/test/tools/llvm-symbolizer/split-dwarf.test
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
The file was addedllvm/test/tools/llvm-symbolizer/unknown-argument.test
The file was modifiedllvm/test/tools/llvm-symbolizer/basic.s
The file was modifiedllvm/test/DebugInfo/debuglineinfo-path.ll
The file was modifiedllvm/tools/llvm-symbolizer/CMakeLists.txt
The file was modifiedllvm/test/tools/llvm-symbolizer/output-style-inlined.test
The file was modifiedllvm/test/tools/llvm-symbolizer/untag-addresses.test
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/test/tools/llvm-symbolizer/help.test
The file was modifiedllvm/lib/Option/OptTable.cpp
The file was addedllvm/tools/llvm-symbolizer/Opts.td
The file was modifiedllvm/include/llvm/Option/OptTable.h
Commit 444401c31f9f1218aed46348eda23a75766002b2 by Matthew.Arsenault
GlobalISel: Hack a test to avoid a bug introducing a verifier error

There seems to be an unrelated CSEMIRBuilder bug that was causing
expensive checks failures in this case. Hack the test to avoid this
problem for now until that's fixed.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
Commit 05aa29efd7ecaea9631a3ac5c471a4a4749463a2 by flo
[docs] Mention LLVM_ENABLE_MODULES.
The file was modifiedllvm/docs/CMake.rst
Commit a16882047a3f7c37f2c7747a1b2ee0d7619d5645 by spatel
[InstSimplify] refactor min/max folds with shared operand; NFC
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 041c7b84a4b925476d1e21ed302786033bb6035f by Jonas Devlieghere
[lldb/Host] Upstream macOS TCC code

Upstream the code for dealing with TCC introduced in macOS Mojave. This
will make the debuggee instead of the debugger responsible for the
privileges it needs.

Differential revision: https://reviews.llvm.org/D85217
The file was modifiedlldb/source/Host/macosx/objcxx/Host.mm
The file was addedlldb/source/Host/macosx/objcxx/PosixSpawnResponsible.h
Commit 23adbac9ee23c10976e40c80999abf02ecb389b7 by mcinally
[GlobalISel] Don't transform FSUB(-0, X) -> FNEG(X) in GlobalISel.

This patch stops unconditionally transforming FSUB(-0, X) into an FNEG(X) while building the MIR.

This corresponds with the SelectionDAGISel change in D84056.

Differential Revision: https://reviews.llvm.org/D85139
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
Commit 0de547ed4ada068ea618bdb8ce58ddc89de9a42f by Matthew.Arsenault
AMDGPU/GlobalISel: Ensure subreg is valid when selecting G_UNMERGE_VALUES

Fixes verifier error with SGPR unmerges with 96-bit result types.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-unmerge-values.mir
Commit 12605bfd1ff5c6316e74587be1b41d24abd893fc by Xing
[DWARFYAML] Fix unintialized value Is64BitAddrSize. NFC.

This patch fixes the undefined behavior that reported by ubsan.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44524/
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFEmitter.h
Commit 724b035fe4df89e807f85ee202da8b0bc227895b by mcinally
[GlobalISel] Remove redundant FNEG tests.

These tests were made redundant by D85139.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
Commit 56593fa370124a4d77703e7ddfa4dfca81e0c8f2 by uday
[MLIR] Simplify semi-affine expressions

Simplify semi-affine expression for the operations like ceildiv,
floordiv and modulo by any given symbol by checking divisibilty by that
symbol.

Some properties used in simplification are:

1) Commutative property of the floordiv and ceildiv:
((expr1 floordiv expr2) floordiv expr3 ) = ((expr1 floordiv expr3) floordiv expr2)
((expr1 ceildiv expr2) ceildiv expr3 ) = ((expr1 ceildiv expr3) ceildiv expr2)

While simplification if operations are different no simplification is
possible as there is no property that simplify expressions like these:
((expr1 ceildiv expr2) floordiv expr3) or  ((expr1 floordiv expr2)
ceildiv expr3).

2) If both expr1 and expr2 are divisible by the expr3 then:
(expr1 % expr2) / expr3 = ((expr1 / expr3) % (expr2 / expr3))
where / is divide symbol.

3) If expr1 is divisible by expr2 then expr1 % expr2 = 0.

Signed-off-by: Yash Jain <yash.jain@polymagelabs.com>

Differential Revision: https://reviews.llvm.org/D84920
The file was modifiedmlir/test/Dialect/Affine/simplify-affine-structures.mlir
The file was modifiedmlir/lib/IR/AffineExpr.cpp
Commit 83cb98f9e7a57360e137b32b26500fca630df617 by llvm-dev
Fix sphinx indentation warnings by adding explicit line breaks to address space hierarchy
The file was modifiedclang/include/clang/Basic/AttrDocs.td
Commit 6a4fd03698e1aab09c47215b7eace942a23de074 by thakis
[gn build] (manually) merge 593e1962
The file was modifiedllvm/utils/gn/secondary/llvm/tools/llvm-symbolizer/BUILD.gn
Commit e4441fc653912ec4efc5611a8dd926f8bdd0306c by i
sanitizer_symbolizer_libcdep.cpp: Change --inlining=true to --inlines and --inlining=false to --no-inlines
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
The file was modifiedcompiler-rt/lib/asan/scripts/asan_symbolize.py
Commit e31cfc4cd3e393300002e9c519787c96e3b67bab by dblaikie
Fix -Wconstant-conversion warning with explicit cast

Introduced by fd6584a22043b254a323635c142b28ce80ae5b5b

Following similar use of casts in AsmParser.cpp, for instance - ideally
this type would use unsigned chars as they're more representative of raw
data and don't get confused around implementation defined choices of
char's signedness, but this is what it is & the signed/unsigned
conversions are (so far as I understand) safe/bit preserving in this
usage and what's intended, given the API design here.
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Commit b9266f81bc0a2b53406a84e6ef0c4989d5f7e296 by georgemitenk0v
[MLIR][SPIRVToLLVM] Indentation and style fix in tests

Second patch with test fixes. Redundant `%{{.*}} = `
removed, label checks added, tabs converted to spaces and
some namings are changed to match the convention.

Fixed tests:
- constant-op-to-llvm
- func-ops-to-llvm (renamed)
- memory-ops-to-llvm
- misc-ops-to-llvm
- module-ops-to-llvm
- shift-ops-to-llvm (renamed)
- spirv-types-to-llvm-invalid (renamed)

Reviewed By: ftynse, rriddle

Differential Revision: https://reviews.llvm.org/D85206
The file was removedmlir/test/Conversion/SPIRVToLLVM/shifts-to-llvm.mlir
The file was removedmlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.invalid.mlir
The file was removedmlir/test/Conversion/SPIRVToLLVM/func-to-llvm.mlir
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/memory-ops-to-llvm.mlir
The file was addedmlir/test/Conversion/SPIRVToLLVM/func-ops-to-llvm.mlir
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/constant-op-to-llvm.mlir
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/misc-ops-to-llvm.mlir
The file was addedmlir/test/Conversion/SPIRVToLLVM/shift-ops-to-llvm.mlir
The file was addedmlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm-invalid.mlir
Commit 960cef75f4d289e01b338c2f98c5dca2520ee8ff by spatel
[InstSimplify] add tests for compare of min/max; NFC

The test are adapted from the existing tests for cmp/select idioms.
The file was modifiedllvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll
Commit 31ec6e969d601eb4fbee7bd4be3d03d23b5b3c11 by rupprecht
[test] Fix another realpath->abspath.

This is a followup to 817b3a6fe3a4452eb61a2503c8beaa7267ca0351: in `builder_base` we should use abspath, not realpath, because the name is significant.
This is used by test cases that use `@skipIf(compiler="clang", compiler_version=['<', <version>])`
The file was modifiedlldb/packages/Python/lldbsuite/test/plugins/builder_base.py
Commit e18c6ef6b41a59af73bf5c3d7d52a8c53a471e5d by JF Bastien
[clang] improve diagnostics for misaligned and large atomics

"Listing the alignment and access size (== expected alignment) in the warning
seems like a good idea."

solves PR 46947

  struct Foo {
    struct Bar {
      void * a;
      void * b;
    };
    Bar bar;
  };

  struct ThirtyTwo {
    struct Large {
      void * a;
      void * b;
      void * c;
      void * d;
    };
    Large bar;
  };

  void braz(Foo *foo, ThirtyTwo *braz) {
    Foo::Bar bar;
    __atomic_load(&foo->bar, &bar, __ATOMIC_RELAXED);

    ThirtyTwo::Large foobar;
    __atomic_load(&braz->bar, &foobar, __ATOMIC_RELAXED);
  }

repro.cpp:21:3: warning: misaligned atomic operation may incur significant performance penalty; the expected (16 bytes) exceeds the actual alignment (8 bytes) [-Watomic-alignment]
  __atomic_load(&foo->bar, &bar, __ATOMIC_RELAXED);
  ^
repro.cpp:24:3: warning: misaligned atomic operation may incur significant performance penalty; the expected (32 bytes) exceeds the actual alignment (8 bytes) [-Watomic-alignment]
  __atomic_load(&braz->bar, &foobar, __ATOMIC_RELAXED);
  ^
repro.cpp:24:3: warning: large atomic operation may incur significant performance penalty; the access size (32 bytes) exceeds the max lock-free size (16  bytes) [-Watomic-alignment]
3 warnings generated.

Differential Revision: https://reviews.llvm.org/D85102
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td
The file was modifiedclang/lib/CodeGen/CGAtomic.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/test/CodeGen/atomics-sema-alignment.c
Commit f8cc94a61afe48a4b77f111a8ad313fc3b9417de by 1894981+hiraditya
Revert "[HotColdSplit] Add test case for unlikely attribute in outlined function"

This reverts commit aa1f905890fbbfedf396530f1e14409875ece13c.

The flag -codegenprepare maybe causing failures. Reverting this
to investigate the root cause.
The file was modifiedllvm/test/Transforms/HotColdSplit/coldentrycount.ll
Commit 456497450482153afe86838ac2e2be395206d377 by nikita.ppv
[SCCP] Propagate inequalities

Teach SCCP to create notconstant lattice values from inequality
assumes and nonnull metadata, and update getConstant() to make
use of them. Additionally isOverdefined() needs to be changed to
consider notconstant an overdefined value.

Handling inequality branches is delayed until our branch on undef
story in other passes has been improved.

Differential Revision: https://reviews.llvm.org/D83643
The file was modifiedllvm/test/Transforms/SCCP/metadata.ll
The file was modifiedllvm/include/llvm/Analysis/ValueLattice.h
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
The file was modifiedllvm/test/Transforms/SCCP/assume.ll
Commit 12cb400fd25863154c6d4d26427642cac0e52da1 by i
[llvm-symbolizer] Add compatibility aliases for --inlining={true,false}

D83530 removed --inlining={true,false} which were used by old asan_symbolize.py script.
Add compatibility aliases so that old asan_symbolize.py and sanitizer
binaries can work with new llvm-symbolizer.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D85228
The file was modifiedllvm/test/tools/llvm-symbolizer/output-style-inlined.test
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td
The file was modifiedllvm/test/tools/llvm-symbolizer/sym.test
Commit b778b04b69d02a2fa18b22a1858f3eb26c2f7f24 by nikita.ppv
[InstSimplify] Add tests for icmp with urem divisor (NFC)
The file was modifiedllvm/test/Transforms/InstSimplify/compare.ll
Commit 29fe3fe6155fd79ce731a119ce8065a8a0d26b56 by nikita.ppv
[InstSimplify] Peephole optimization for icmp (urem X, Y), X

This revision adds the following peephole optimization
and it's negation:

    %a = urem i64 %x, %y
    %b = icmp ule i64 %a, %x
    ====>
    %b = true

With John Regehr's help this optimization was checked with Alive2
which suggests it should be valid.

This pattern occurs in the bound checks of Rust code, the program

    const N: usize = 3;
    const T = u8;

    pub fn split_mutiple(slice: &[T]) -> (&[T], &[T]) {
        let len = slice.len() / N;
        slice.split_at(len * N)
    }

the method call slice.split_at will check that len * N is within
the bounds of slice, this bounds check is after some transformations
turned into the urem seen above and then LLVM fails to optimize it
any further. Adding this optimization would cause this bounds check
to be fully optimized away.

ref: https://github.com/rust-lang/rust/issues/74938

Differential Revision: https://reviews.llvm.org/D85092
The file was modifiedllvm/test/Transforms/InstSimplify/compare.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 3c0f34700230fc4fd23ef408adb75387dcfeff41 by bmahjour
[NFC][LV] Vectorized Loop Skeleton Refactoring

This patch tries to improve readability and maintenance
of createVectorizedLoopSkeleton by reorganizing some lines,
updating some of the comments and breaking it up into
smaller logical units.

Reviewed By: pjeeva01

Differential Revision: https://reviews.llvm.org/D83824
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit e8dcf5f87dc20b3f08005ac767ff934e36bf2a5b by ajcbik
[mlir] [VectorOps] Add expand/compress operations to Vector dialect

Introduces the expand and compress operations to the Vector dialect
(important memory operations for sparse computations), together
with a first reference implementation that lowers to the LLVM IR
dialect to enable running on CPU (and other targets that support
the corresponding LLVM IR intrinsics).

Reviewed By: reidtatge

Differential Revision: https://reviews.llvm.org/D84888
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
The file was modifiedmlir/test/Target/llvmir-intrinsics.mlir
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-expand.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-scatter.mlir
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-compress.mlir
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
Commit d0ad9e93ce546eb3d372f1b815b164ba137fd701 by Louis Dionne
[libc++abi] Make sure we use a 32 bit guard on 32 bit Aarch64
The file was modifiedlibcxxabi/include/__cxxabi_config.h
Commit 14ed5cf5c461cf34faf5729424b4221d30e24dcc by arsenm2
AMDGPU/GlobalISel: Add baseline tests for andn2/orn2 matching
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
Commit f2942f9c26a39340f8604857c7c90e6ade02a381 by arsenm2
GlobalISel: Add node mappings for frameindex/blockaddress
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
Commit 6cd50e7b75ed39ba1218c724401117cb6e12748d by gyurgyikcp
[libc] Add implementations for isblank, iscntrl, isgraph, ispunct.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85059
The file was addedlibc/src/ctype/ispunct.h
The file was addedlibc/test/src/ctype/iscntrl_test.cpp
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/spec/stdc.td
The file was modifiedlibc/src/ctype/CMakeLists.txt
The file was addedlibc/test/src/ctype/isgraph_test.cpp
The file was modifiedlibc/src/ctype/ctype_utils.h
The file was addedlibc/src/ctype/isgraph.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/src/ctype/iscntrl.h
The file was addedlibc/src/ctype/isblank.cpp
The file was addedlibc/src/ctype/isgraph.h
The file was addedlibc/src/ctype/isblank.h
The file was addedlibc/test/src/ctype/isblank_test.cpp
The file was addedlibc/src/ctype/iscntrl.cpp
The file was modifiedlibc/test/src/ctype/CMakeLists.txt
The file was addedlibc/test/src/ctype/ispunct_test.cpp
The file was modifiedlibc/config/linux/api.td
The file was addedlibc/src/ctype/ispunct.cpp
The file was modifiedlibc/src/ctype/isalnum.cpp
Commit 3e16e2152cd1fb3914d4da47d83d5e023dd3f2cb by Matthew.Arsenault
GlobalISel: Handle llvm.localescape

This one is pretty easy and shrinks the list of unhandled
intrinsics. I'm not sure how relevant the insert point is. Using the
insert position of EntryBuilder will place this after
constants. SelectionDAG seems to end up emitting these after argument
copies and before anything else, but I don't think it really
matters. This also ends up emitting these in the opposite order from
SelectionDAG, but I don't think that matters either.

This also needs a fix to stop the later passes dropping this as a dead
instruction. DeadMachineInstructionElim's version of isDead special
cases LOCAL_ESCAPE for some reason, and I'm not sure why it's excluded
from MachineInstr::isLabel (or why isDead doesn't check it).

I also noticed DeadMachineInstructionElim never considers inline asm
as dead, but GlobalISel will drop asm with no constraints.
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/labels-are-not-dead.mir
Commit 0729a772806e5ae38603c164c2f60e5e9f9e65e5 by i
[llvm-symbolizer][test] Fix pdb/pdb.test after D83530

This is a Windows only test which requires HAVE_DIA_SDK, so I failed to notice it.
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb.test
Commit 3bfbc5df87cb0e736fe917e4a8d5166bc0b4ea79 by diego.caballero
[MLIR][Affine] Fix createPrivateMemRef in affine fusion

Always define a remapping for the memref replacement (`indexRemap`)
with the proper number of inputs, including all the `outerIVs`, so that
the number of inputs and the operands provided for the map don't mismatch.

Reviewed By: bondhugula, andydavis1

Differential Revision: https://reviews.llvm.org/D85177
The file was modifiedmlir/test/Transforms/loop-fusion.mlir
The file was modifiedmlir/lib/Transforms/LoopFusion.cpp
Commit 6d218b4adb093ff2e9764febbbc89f429412006c by yhs
BPF: support type exist/size and enum exist/value relocations

Four new CO-RE relocations are introduced:
  - TYPE_EXISTENCE: whether a typedef/record/enum type exists
  - TYPE_SIZE: the size of a typedef/record/enum type
  - ENUM_VALUE_EXISTENCE: whether an enum value of an enum type exists
  - ENUM_VALUE: the enum value of an enum type

These additional relocations will make CO-RE bpf programs
more adaptive for potential kernel internal data structure
changes.

Differential Revision: https://reviews.llvm.org/D83878
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-1.ll
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-2.ll
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-enum-value.ll
The file was modifiedllvm/lib/Target/BPF/BTFDebug.h
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-exist.ll
The file was modifiedllvm/lib/Target/BPF/BPFCORE.h
Commit 0f2b47b6da0be5e5a597a274bd5c2ae18cc406bd by mcinally
[FastISel] Don't transform FSUB(-0, X) -> FNEG(X) in FastISel

This corresponds with the SelectionDAGISel change in D84056.

Also, rename some poorly named tests in CodeGen/X86/fast-isel-fneg.ll with NFC.

Differential Revision: https://reviews.llvm.org/D85149
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was removedllvm/test/CodeGen/X86/fast-isel-fneg-kill.ll
The file was modifiedllvm/test/CodeGen/X86/fast-isel-fneg.ll
Commit 1d6a724aa1c11a37ff083cf637f91852e96ce11f by jurahul
[MLIR] Change FunctionType::get() and TupleType::get() to use TypeRange

- Moved TypeRange into its own header/cpp file, and add hashing support.
- Change FunctionType::get() and TupleType::get() to use TypeRange

Differential Revision: https://reviews.llvm.org/D85075
The file was modifiedmlir/include/mlir/IR/StandardTypes.h
The file was modifiedmlir/lib/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/include/mlir/IR/Types.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedflang/lib/Lower/RTBuilder.h
The file was addedmlir/include/mlir/IR/TypeRange.h
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/lib/IR/TypeDetail.h
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/IR/Builders.cpp
The file was modifiedmlir/lib/IR/Types.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was addedmlir/lib/IR/TypeRange.cpp
The file was modifiedmlir/lib/IR/CMakeLists.txt
Commit 47f7174ffa71d339c1a65d1dd9a2ac5ff2abc95d by sunfish
[WebAssembly] Use "signed char" instead of "char" in SIMD intrinsics.

This allows people to use `int8_t` instead of `char`, -funsigned-char,
and generally decouples SIMD from the specialness of `char`.

And it makes intrinsics like `__builtin_wasm_add_saturate_s_i8x16`
and `__builtin_wasm_add_saturate_u_i8x16` use signed and unsigned
element types, respectively.

Differential Revision: https://reviews.llvm.org/D85074
The file was modifiedclang/lib/Headers/wasm_simd128.h
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
The file was modifiedclang/test/CodeGen/builtins-wasm.c
Commit a4e537d9c47aa378a24636e2d90d208389ad93ab by iii
[libFuzzer] Fix endianness issue in ForEachNonZeroByte()

The usage pattern of Bundle variable assumes the machine is little
endian, which is not the case on SystemZ. Fix by converting Bundle to
little-endian when necessary.
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtil.h
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerTracePC.h
Commit 153df1373e5d3e0f16464233a3c17feb8a9eb3e9 by iii
[SanitizerCoverage] Fix types of __stop* and __start* symbols

If a section is supposed to hold elements of type T, then the
corresponding CreateSecStartEnd()'s Ty parameter represents T*.
Forwarding it to GlobalVariable constructor causes the resulting
GlobalVariable's type to be T*, and its SSA value type to be T**, which
is one indirection too many. This issue is mostly masked by pointer
casts, however, the global variable still gets an incorrect alignment,
which causes SystemZ to choose wrong instructions to access the
section.
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/tracing.ll
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
Commit ea9b82da4180550c3ddc5e883c589474af9462b7 by iii
[libFuzzer] Enable for SystemZ

* Add SystemZ to the list of supported architectures.

* XFAIL a few tests.

Coverage reporting is broken, and is not easy to fix (see comment in
coverage.test). Interaction with sanitizers needs to be investigated
more thoroughly, since they appear to reduce coverage in certain cases.
The file was modifiedcompiler-rt/test/fuzzer/msan.test
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was modifiedcompiler-rt/test/fuzzer/swap-cmp.test
The file was modifiedcompiler-rt/test/fuzzer/coverage.test
Commit bb33f925a673f3bb9793d2157c9d3d46d9ad7f25 by Jonas Devlieghere
[lldb/Test] Add missing stdio.h includes

Fixes error: implicit declaration of function 'printf' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
The file was modifiedlldb/test/API/commands/target/basic/a.c
The file was modifiedlldb/test/API/lang/c/global_variables/main.c
Commit bf2aa74e51997ee190f3b34dd26a1b564e59e267 by martin
[OpenMP] support build on msys2/mingw with clang or gcc

RTM Adaptive Locks are supported on msys2/mingw for clang and gcc.

Differential Revision: https://reviews.llvm.org/D81776
The file was modifiedopenmp/runtime/src/kmp_lock.cpp
Commit f0f68c6e6c5e0064c0196e4f1528e910a47766e0 by 1894981+hiraditya
[HotColdSplit] Add test case for unlikely attribute in outlined function

Differential Revision: https://reviews.llvm.org/D85232
The file was modifiedllvm/test/Transforms/HotColdSplit/coldentrycount.ll
Commit 95efea4b9310bb204a42fbf29abd4efa65647000 by efriedma
[AArch64][SVE] Widen narrow sdiv/udiv operations.

The SVE instruction set only supports sdiv/udiv for 32-bit and 64-bit
integers.  If we see an 8-bit or 16-bit divide, widen the operands to 32
bits, and narrow the result.

Differential Revision: https://reviews.llvm.org/D85170
The file was modifiedllvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
Commit e7af98680ad52ffc6d308ef63667ac6fb4bb16a7 by waltermelon
[lldb-vscode ]Add Syntax Highlighting to Disassembly View

When lldb cannot find source file thus IDE renders a disassembly view, add syntax highlighting for constants, registers and final line comments for better debugging experience.
The original plain disassembly view looks like:
{F12401687}
An ideal view is like the screenshot attached.
{F12401515}

In this diff, the mimeType is a kind of media type for formatting the content in the response to a source request. Elements in the disassembly view, like constants, registers and final line comments are colored for highlighting.
A built-in support in the VSCode IDE for syntax highlighting will identify the which mimeType to apply and render the disassembly view as expected.

Reviewed By: wallace, clayborg

Differential Revision: https://reviews.llvm.org/D84555
The file was modifiedlldb/tools/lldb-vscode/package.json
The file was addedlldb/tools/lldb-vscode/syntaxes/disassembly.json
The file was addedlldb/tools/lldb-vscode/syntaxes/arm.disasm
The file was addedlldb/tools/lldb-vscode/syntaxes/arm64.disasm
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
The file was addedlldb/tools/lldb-vscode/syntaxes/x86.disasm
Commit f8fb7835d6a5e2a75d412e1482fc1c039efef1f0 by arsenm2
GlobalISel: Add utilty for getting function argument live ins

Get the argument register and ensure there's a copy to the virtual
register. AMDGPU and AArch64 have similarish code to get the livein
value, and I also want to use this in multiple places.

This is a bit more aggressive about setting the register class than
the original function, but that's probably OK.

I think we're missing a few verifier checks for function live ins. I
noticed AArch64's calling convention code is not actually adding
liveins to functions, only the entry block (which apparently might not
matter that much?). There should probably be a verifier check that
entry block live ins are also live into the function. We also might
need a verifier check that the copy to the livein virtual register is
in the entry block.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-implicit-args.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-addrspacecast.mir
Commit ba3d84d82b750296c11e843365aa85962a561ad4 by Jonas Devlieghere
[lldb/Test] Skip tests that try to get the remote environment

We don't support getting the remote environment. The gdb remote protocol
has no packet for that.
The file was modifiedlldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
The file was modifiedlldb/test/API/python_api/sbplatform/TestSBPlatform.py
Commit 89011fc3c965811bbc3b6a0770c9d94bb264ad3f by arsenm2
AMDGPU/GlobalISel: Select llvm.returnaddress
The file was modifiedllvm/test/CodeGen/AMDGPU/returnaddress.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-returnaddress.mir
Commit 65b6dbf9395f8c0b2560f7ffe8dac4b0b32dc2d4 by mtrofin
[llvm][NFC] Moved implementation of TrainingLogger outside of its decl

Also renamed a method - printTensor - to print; and added comments.
The file was modifiedllvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
Commit 486e84dfa4923ba506e715098699fc17aa7f9e40 by arsenm2
AMDGPU/GlobalISel: Use live in helper function for returnaddress
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
Commit e8b7edafc3dd0ab85903eebdfdb3bb7cc2d66743 by Jonas Devlieghere
[lldb/Test] Add @skipIfRemote decorator to TestProcessList.py

lldb-platform contains a very minimal support for the qfProcessInfo
packet, only allowing the simplest query to get most of the testsuite
running, and returning very little information about the matched
processes.
The file was modifiedlldb/test/API/commands/platform/process/list/TestProcessList.py
Commit 09897b146a8a7cb934279e630c0027d5d4de7399 by kparzysz
[RDF] Remove uses of RDFRegisters::normalize (deprecate)

This function has been reduced to an identity function for some time.
The file was modifiedllvm/lib/CodeGen/RDFRegisters.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
The file was modifiedllvm/include/llvm/CodeGen/RDFRegisters.h
The file was modifiedllvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
Commit 4a47f1c4cedb497915bba14f5288708cedb62767 by efriedma
[SelectionDAG][SVE] Support scalable vectors in getConstantFP()

Differential Revision: https://reviews.llvm.org/D85249
The file was modifiedllvm/test/CodeGen/AArch64/sve-vector-splat.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit f50b3ff02e3245b44b5452b409ca1df22e91be45 by aeubanks
[Hexagon] Use InstSimplify instead of ConstantProp

This is the last remaining use of ConstantProp, migrate it to InstSimplify in the goal of removing ConstantProp.

Add -hexagon-instsimplify option to enable skipping of instsimplify in
tests that can't handle the extra optimization.

Differential Revision: https://reviews.llvm.org/D85047
The file was modifiedllvm/test/CodeGen/Hexagon/vect/zext-v4i1.ll
The file was modifiedllvm/test/CodeGen/Hexagon/loop_correctness.ll
The file was modifiedllvm/test/CodeGen/Hexagon/newvaluejump-kill.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
The file was modifiedllvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
The file was modifiedllvm/test/CodeGen/Hexagon/store-vector-pred.ll
The file was modifiedllvm/include/llvm/Transforms/Scalar.h
The file was modifiedllvm/test/CodeGen/Hexagon/isel-simplify-crash.ll
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/isel-qfalse.ll
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/isel-setcc-pair.ll
The file was modifiedllvm/test/CodeGen/Hexagon/bit-bitsplit-regclass.ll
The file was modifiedllvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll
The file was modifiedllvm/test/CodeGen/Hexagon/packetize-impdef-1.ll
Commit bf82ff61a6dbfec5295d9f24e6b66dcb9a038c6c by Adrian Prantl
Teach SROA to handle allocas with more than one dbg.declare.

It is technically legal for optimizations to create an alloca that is
used by more than one dbg.declare, if one or both of them are inlined
instances of aliasing variables.

Differential Revision: https://reviews.llvm.org/D85172
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was addedllvm/test/Transforms/SROA/dbg-inline.ll
Commit 47fe1b63f449827e1171f944b07d0cbebad1de63 by kparzysz
[RDF] Lower the sorting complexity in RDFLiveness::getAllReachingDefs

The sorting is needed, because reaching defs are (logically) ordered,
but are not collected in that order. This change will break up the
single call to std::sort into a series of smaller sorts, each of which
should use a cheaper comparison function than the original.
The file was modifiedllvm/lib/CodeGen/RDFLiveness.cpp
Commit f0f467aeecfc615a5055d8f2edd903996c11727e by kparzysz
[RDF] Cache register aliases in PhysicalRegisterInfo

This improves performance of PhysicalRegisterInfo::makeRegRef.
The file was modifiedllvm/lib/CodeGen/RDFRegisters.cpp
The file was modifiedllvm/include/llvm/CodeGen/RDFRegisters.h
Commit 4b25f672998fde5cc5bb02411e9268b2bb35655f by kparzysz
[RDF] Really remove remaining uses of PhysicalRegisterInfo::normalize
The file was modifiedllvm/lib/CodeGen/RDFLiveness.cpp
The file was modifiedllvm/lib/CodeGen/RDFGraph.cpp
Commit 00602ee7ef0bf6c68d690a2bd729c12b95c95c99 by yhs
BPF: simplify IR generation for __builtin_btf_type_id()

This patch simplified IR generation for __builtin_btf_type_id().
For __builtin_btf_type_id(obj, flag), previously IR builtin
looks like
   if (obj is a lvalue)
     llvm.bpf.btf.type.id(obj.ptr, 1, flag)  !type
   else
     llvm.bpf.btf.type.id(obj, 0, flag)  !type
The purpose of the 2nd argument is to differentiate
   __builtin_btf_type_id(obj, flag) where obj is a lvalue
vs.
   __builtin_btf_type_id(obj.ptr, flag)

Note that obj or obj.ptr is never used by the backend
and the `obj` argument is only used to derive the type.
This code sequence is subject to potential llvm CSE when
  - obj is the same .e.g., nullptr
  - flag is the same
  - metadata type is different, e.g., typedef of struct "s"
    and strust "s".
In the above, we don't want CSE since their metadata is different.

This patch change IR builtin to
   llvm.bpf.btf.type.id(seq_num, flag)  !type
and seq_num is always increasing. This will prevent potential
llvm CSE.

Also report an error if the type name is empty for
remote relocation since remote relocation needs non-empty
type name to do relocation against vmlinux.

Differential Revision: https://reviews.llvm.org/D85174
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsBPF.td
The file was modifiedclang/test/CodeGen/builtin-bpf-btf-type-id.c
The file was modifiedllvm/lib/Target/BPF/BPFPreserveDIType.cpp
The file was modifiedllvm/test/CodeGen/BPF/BTF/builtin-btf-type-id.ll
Commit 9521704553e8a330cfdf5a0611885680073178b2 by kparzysz
[RDF] Use hash-based containers, cache extra information

This improves performance.
The file was modifiedllvm/include/llvm/CodeGen/RDFRegisters.h
The file was modifiedllvm/lib/CodeGen/RDFLiveness.cpp
The file was modifiedllvm/include/llvm/CodeGen/RDFLiveness.h
Commit 06d425737bd2953cbea319b5f1d4419b54870e6c by kparzysz
[RDF] Add operator<<(raw_ostream&, RegisterAggr), NFC
The file was modifiedllvm/lib/CodeGen/RDFRegisters.cpp
The file was modifiedllvm/include/llvm/CodeGen/RDFRegisters.h
Commit 7e9bab6ad51af1cab0c7457e4323166af3ac797c by Adrian Prantl
Fix debugserver's qProcessInfo reporting of maccatalyst binaries

This patch is similar in spirit to https://reviews.llvm.org/D84480,
but does the maccatalyst/macosx disambiguation. I also took the
opportunity to factor out the gdb-remote packet log scanning used by
several testcases into lldbutil functions.

rdar://problem/66059257

Differential Revision: https://reviews.llvm.org/D84576
The file was addedlldb/test/API/macosx/macCatalystAppMacOSFramework/foo.h
The file was removedlldb/test/API/macosx/macabi/Makefile
The file was addedlldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
The file was removedlldb/test/API/macosx/macabi/main.c
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py
The file was removedlldb/test/API/macosx/macabi/foo.h
The file was addedlldb/test/API/macosx/macCatalystAppMacOSFramework/Makefile
The file was modifiedlldb/tools/debugserver/source/DNB.h
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was addedlldb/test/API/macosx/macCatalystAppMacOSFramework/main.c
The file was addedlldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
The file was addedlldb/test/API/macosx/macCatalystAppMacOSFramework/foo.c
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbutil.py
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
The file was addedlldb/test/API/macosx/macCatalyst/Makefile
The file was modifiedlldb/tools/debugserver/source/RNBRemote.cpp
The file was addedlldb/test/API/macosx/macCatalyst/main.c
The file was removedlldb/test/API/macosx/macabi/foo.c
The file was removedlldb/test/API/macosx/macabi/TestMacABImacOSFramework.py
Commit 3f3303324eb2dc8a7e6d0ff867159c08479609de by lebedev.ri
[NFC][InstCombine] Negator: add tests for negation of left-shift by constant
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit 8fd57b06a4fd04ada4f1d1c4124adc9998be1e5f by lebedev.ri
[NFC][InstCombine] Fix value names (s/%tmp/%i/) and autogenerate a few tests being affected by negator change
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit 8aeb2fe13a4100b4c2e78d6ef75119304100cb1f by lebedev.ri
[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)

This shows some regressions in tests, but they are all around GEP's,
so i'm not really sure how important those are.

https://rise4fun.com/Alive/1Gn
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit ac70b37a00dc02bd8923e0a4602d26be4581c570 by lebedev.ri
Revert "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)"

Breaks codegen tests, will recommit later.

This reverts commit 8aeb2fe13a4100b4c2e78d6ef75119304100cb1f.
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit 90b9c49ca6477a85e69018967c0a4d4d38ee6e72 by mtrofin
[llvm] Expose type and element count-related APIs on TensorSpec

Added a mechanism to check the element type, get the total element
count, and the size of an element.

Differential Revision: https://reviews.llvm.org/D85250
The file was modifiedllvm/lib/Analysis/TFUtils.cpp
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp
The file was modifiedllvm/include/llvm/Analysis/Utils/TFUtils.h
Commit 03a822f7a676089fca99aac02a057eab8474acc2 by Vitaly Buka
[StackSafety,NFC] Add combined index test
The file was modifiedllvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
Commit 4c9ed3ed3d2fc7622acf5fc0d80ad20b44cf376a by Fred Riss
[lldb/testsuite] Skip 'frame diagnose' tests based on architecture

AFAICS, the feature only works on x86, skipping the tests has nothing to
do with the target being iOS or remote.
The file was modifiedlldb/test/API/commands/frame/diagnose/dereference-this/TestDiagnoseDereferenceThis.py
The file was modifiedlldb/test/API/commands/frame/diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py
The file was modifiedlldb/test/API/commands/frame/diagnose/bad-reference/TestBadReference.py
The file was modifiedlldb/test/API/commands/frame/diagnose/complicated-expression/TestComplicatedExpression.py
The file was modifiedlldb/test/API/commands/frame/diagnose/array/TestArray.py
The file was modifiedlldb/test/API/commands/frame/diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py
The file was modifiedlldb/test/API/commands/frame/diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py
The file was modifiedlldb/test/API/commands/frame/diagnose/inheritance/TestDiagnoseInheritance.py
The file was modifiedlldb/test/API/commands/frame/diagnose/local-variable/TestLocalVariable.py
Commit 0c7af8c83bd1acb0ca78f35ddde29b6fde4363a0 by maskray
[X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures after D83273

Previously the time complexity is O(|number of paths from the root to an
implied feature| * CPU_FWATURE_MAX) where CPU_FEATURE_MAX is 92.

The number of paths can be large (theoretically exponential).

For an inline asm statement, there is a code path
`clang::Parser::ParseAsmStatement -> clang::Sema::ActOnGCCAsmStmt -> ASTContext::getFunctionFeatureMap`
leading to potentially many calls of getImpliedEnabledFeatures (41 for my -march=native case).

We should improve the performance a bit in case the number of inline asm
statements is large (Linux kernel builds).

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D85257
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
Commit dd37b5a35b6923970fff1f9252a9f704981035dc by richard
PR46997: don't run clang-format on clang's testcases.

The formatting of the testcases matters and shouldn't be overwritten by
a tool.
The file was modified.arclint
Commit fe74f731e7024ce8b66869777dca6d6ed5a22e47 by Vitaly Buka
[StackSafety,NFC] Add combined index test

Missing file for the previous patch
The file was addedllvm/test/Bitcode/Inputs/thinlto-function-summary-paramaccess.ll
Commit e3df9471750935876bd2bf7da93ccf0eacca8592 by zequanwu
[llvm-cov] reset executation count to 0 after wrapped segment

Fix the bug: https://bugs.llvm.org/show_bug.cgi?id=36979. It also fixes this bug: https://bugs.llvm.org/show_bug.cgi?id=35404, which I think is caused by the same problem.

Differential Revision: https://reviews.llvm.org/D85036
The file was modifiedllvm/unittests/ProfileData/CoverageMappingTest.cpp
The file was modifiedllvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h
The file was modifiedllvm/test/tools/llvm-cov/ignore-filename-regex.test
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Commit 54615ec48f3ef6e9ea004bb2b84caadac2dead5b by Matthew.Arsenault
GlobalISel: Move load/store lowering to separate functions
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 8f65c933c42879ff807e3518d9f84892babd30a5 by Matthew.Arsenault
GlobalISel: Fix redundant variable and shadowing
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 1ea182ce79eedae740e20bbb33bdb3c4c4eb53cb by Matthew.Arsenault
GlobalISel: Simplify code

This cannot be a vector of pointers, so using getScalarSizeInBits just
added a bit extra noise.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 93cebb190ad24ea367c1302ee989e7cafcf238ac by Matthew.Arsenault
GlobalISel: Use buildAnyExtOrTrunc
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit c35585e209efe69e2233bdc5ecd23bed7b735ba3 by yrouban
DomTree: Make PostDomTree immune to block successors swap

This is another fix for the bug 46098 where PostDominatorTree
is unexpectedly changed by InstCombine's branch swapping
transformation.
This patch fixes PostDomTree builder. While looking for
the furthest away node in a reverse unreachable subgraph
this patch runs DFS with successors in their function order.
This order is indifferent to the order of successors, so is
the furthest away node.

Reviewers: kuhar, nikic, lebedev.ri
Differential Revision: https://reviews.llvm.org/D84763
The file was addedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
Commit 02a629daad0a1b7c8f70b11b312e94725c386dee by ybrevnov
[BPI][NFC] Unify handling of normal and SCC based loops

This is one more NFC part extracted from D79485. Normal and SCC based loops have very different representation and have to be handled separatly each time we deal with loops. D79485 is going to introduce much more extensive use of loops what will be problematic with out this change.

Reviewed By: davidxl

Differential Revision: https://reviews.llvm.org/D84838
The file was modifiedllvm/include/llvm/Analysis/BranchProbabilityInfo.h
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
Commit 1366d66a22a5f0d25fcc6e922118bb51ab22f8c1 by joker.eph
Revert "DomTree: Make PostDomTree immune to block successors swap"

This reverts commit c35585e209efe69e2233bdc5ecd23bed7b735ba3.

The MLIR is broken with this patch, reproduce by adding
-DLLVM_ENABLE_PROJECTS=mlir to the cmake configuration and
build `ninja tools/mlir/lib/IR/CMakeFiles/obj.MLIRIR.dir/Dominance.cpp.o`
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was removedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
Commit 3401f9706be14f9c103542c8b6034a1126b9859e by aqjune
[JumpThreading] Add a test for D85023; NFC
The file was addedllvm/test/Transforms/JumpThreading/thread-two-bbs-threshold.ll
Commit e0d99e9aaf51dac0555655cbf17909377ed37a27 by aqjune
[JumpThreading] Consider freeze as a zero-cost instruction

This is a simple patch that makes freeze as a zero-cost instruction, as bitcast already is.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85023
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/test/Transforms/JumpThreading/thread-two-bbs-threshold.ll
Commit b989fcbae6f179ad887d19ceef83ace1c00b87cc by martin
[llvm-rc] Allow string table values split into multiple string literals

This can practically easily be a product of combining strings with
macros in resource files.

This fixes https://github.com/mstorsjo/llvm-mingw/issues/140.

As string literals within llvm-rc are handled as StringRefs, each
referencing an uninterpreted slice of the input file, with actual
interpretation of the input string (codepage handling, unescaping etc)
done only right before writing them out to disk, it's hard to
concatenate them other than just bundling them up in a vector,
without rearchitecting a large part of llvm-rc.

This matches how the same already is supported in VersionInfoValue,
with a std::vector<IntOrString> Values.

MS rc.exe only supports concatenated string literals in version info
values (already supported), string tables (implemented in this patch)
and user data resources (easily implemented in a separate patch, but
hasn't been requested by any end user yet), while GNU windres supports
string immediates split into multiple strings anywhere (e.g. like
(100 ICON "myicon" ".ico"). Not sure if concatenation in other
statements actually is used in the wild though, in resource files
normally built by GNU windres.

Differential Revision: https://reviews.llvm.org/D85183
The file was modifiedllvm/tools/llvm-rc/ResourceFileWriter.h
The file was modifiedllvm/tools/llvm-rc/ResourceScriptStmt.cpp
The file was modifiedllvm/tools/llvm-rc/ResourceScriptStmt.h
The file was modifiedllvm/tools/llvm-rc/ResourceScriptParser.cpp
The file was modifiedllvm/tools/llvm-rc/ResourceFileWriter.cpp
The file was modifiedllvm/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc
Commit 521c0b2659074c512d292dc30da78c862782d34c by georgemitenk0v
[MLIR][SPIRVToLLVM] Updated documentation for SPIR-V to LLVM conversion

Updated the documentation for SPIR-V to LLVM conversion, particularly:
- Added a section on control flow
- Added a section on memory ops
- Added a section on GLSL ops

Also, moved `spv.FunctionCall` to control flow section. Added a new section
that will be used to describe the modelling of runtime-related ops.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D84734
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md
Commit bc10888dcdda1fe80a983029bc50eec4b248cc77 by yrouban
DomTree: Make PostDomTree indifferent to block successors swap

Fixed the commit c35585e209efe69e2233bdc5ecd23bed7b735ba3.

This is a fix for the bug 46098 where PostDominatorTree
is unexpectedly changed by InstCombine's branch swapping
transformation.
This patch fixes PostDomTree builder. While looking for
the furthest away node in a reverse unreachable subgraph
this patch runs DFS with successors in their function order.
This order is indifferent to the order of successors, so is
the furthest away node.

Reviewers: kuhar, nikic, lebedev.ri
Differential Revision: https://reviews.llvm.org/D84763
The file was addedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
Commit e739648cfae21d2b564751ef0511fec9559305fa by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion pattern for loop op

This patch introduces a conversion of `spv.loop` to LLVM dialect.
Similarly to `spv.selection`, op's control attributes are not mapped
to LLVM yet and therefore the conversion fails if the loop control is
not `None`. Also, all blocks within the loop should be reachable in
order for conversion to succeed.

Reviewed By: mravishankar

Differential Revision: https://reviews.llvm.org/D84245
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/control-flow-ops-to-llvm.mlir
Commit c5cdc3e801ad1b0aceaf220d78a3ff3fab1e0fdb by ecaldas
[SyntaxTree] Add test coverage for `->*` operator

This was the last binary operator that we supported but didn't have any
test coverage. The recent fix in a crash in member pointers allowed us
to add this test.

Differential Revision: https://reviews.llvm.org/D85185
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
Commit c952ec15d38843b69e22dfd7b0665304a0459f9f by l.lunak
[lldb] fix building with panel.h being in /usr/include/ncurses/

My openSUSE 15.2 has /usr/include/curses.h as a symlink to
/usr/include/ncurses/curses.h , but there's no such symlink
for panel.h . Prefer using /usr/include/ncurses for the includes
if they are found there by the CMake check.

Differential Revision: https://reviews.llvm.org/D85219
The file was modifiedlldb/include/lldb/Host/Config.h.cmake
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 2f1b24b70c6c3ecf3cf5ccd35209d9d7e426be63 by l.lunak
[lldb][gui] implement TerminalSizeChanged()

Differential Revision: https://reviews.llvm.org/D85088
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
The file was modifiedlldb/include/lldb/Core/IOHandlerCursesGUI.h
Commit 7a63dc534eb8ebdf1b0aa2c0f6d943d0c7adda1d by l.lunak
[lldb][gui] implement shift+tab for going back in views

Also simplify the code for going forward.

Differential Revision: https://reviews.llvm.org/D85089
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit d6868d9ca1dbdeceaaa1660b6e7b4af0c207fcae by l.lunak
[lldb][gui] implement breakpoint removal on breakpoint toggling

It says it toggles breakpoints, so if one already exists
on the selected location, remove it instead of adding.

Differential Revision: https://reviews.llvm.org/D85098
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit c7be982c836cdaf7b1ef303d903e6a3de2eb4a34 by l.lunak
[lldb][gui] move TestGuiBasicDebug.py to lldb/test and update it

Between the time it was created and it was pushed upstream,
99451b4453688a94c6014cac233d371ab4cc342d has moved the existing
gui gui tests to lldb/test, so move this one too.
And update it to contain TestGuiBasic.py changes since the time
when it was based on that test.

Differential Revision: https://reviews.llvm.org/D85106
The file was addedlldb/test/API/commands/gui/basicdebug/Makefile
The file was addedlldb/test/API/commands/gui/basicdebug/main.c
The file was addedlldb/test/API/commands/gui/basicdebug/func.c
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/TestGuiBasicDebug.py
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/Makefile
The file was addedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/func.c
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/main.c
Commit db828aba55aca0ce977f086dcd449f8fe667f30a by l.lunak
[lldb][gui] add a test for 'b' (toggle breakpoint)

Differential Revision: https://reviews.llvm.org/D85107
The file was addedlldb/test/API/commands/gui/breakpoints/main.c
The file was addedlldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py
The file was addedlldb/test/API/commands/gui/breakpoints/Makefile
Commit 621681e3e59241c2ba9a4ac59047c46cdcc3c947 by andrzej.warzynski
[Flang] Fix multi-config generator builds

Based on https://reviews.llvm.org/D84022 with additional changes to
maintain out-of-tree builds.

Original commit message:
Currently the binaries are output directly into the bin subdirectory of
the build directory. This doesn't work correctly with multi-config
generators which should output the binaries into <CONFIG_NAME>/bin
instead.

The original patch was implemented by David Truby and the additional
changes added here were also proposed by David Truby.

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

Co-authored-by: David Truby <david.truby@arm.com>
The file was modifiedflang/tools/f18/CMakeLists.txt
The file was modifiedflang/test/lit.cfg.py
The file was modifiedflang/CMakeLists.txt
The file was modifiedflang/test/CMakeLists.txt
The file was modifiedflang/test/lit.site.cfg.py.in
Commit 04cf4a5a65576f286ca2e8a1aae7584def512761 by jay.foad
[AMDGPU] Lower frem f16

Without this it would fail to select on subtargets that have 16-bit
instructions.

Differential Revision: https://reviews.llvm.org/D84517
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 1bb07e1b91c187d868bfe383175c2ce04ebed8b8 by jay.foad
[AMDGPU] Precommit tests for D84518 Propagate fast math flags in frem lowering
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 8cbf4a17ac57921b2c0e2112e766555d345494c4 by jay.foad
[AMDGPU] Propagate fast math flags in frem lowering

Differential Revision: https://reviews.llvm.org/D84518
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Commit 159806704b05f2b562ea93e622f8dbb1976e24f0 by georgemitenk0v
[MLIR][SPIRVToLLVM] Updated LLVM types in the documentation

Updated the documentation with new MLIR LLVM types for
vectors, pointers, arrays and structs. Also, changed remaining
tabs to spaces.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D85277
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md
Commit f2916636f83dfeb4808a16045db0025783743471 by sander.desmalen
[AArch64][SVE] Disable tail calls if callee does not preserve SVE regs.

This fixes an issue triggered by the following code, where emitEpilogue
got confused when trying to restore the SVE registers after the call,
whereas the call to bar() is implemented as a TCReturn:

  int non_sve();
  int sve(svint32_t x) { return non_sve(); }

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D84869
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/sve-tailcall.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit ba0e71432a60e1fa2da9e098cbc574a1d9b9618b by benny.kra
Do not map read-only data memory sections with EXECUTE flags.

The code in SectionMemoryManager.cpp unnecessarily maps
read-only data sections with the READ+EXECUTE flags. This is
undesirable from a security stand-point.

Moreover, on the Fuchsia platform, which is now very strict
about mapping pages with the EXECUTE permission, this simply
fails, because the section's pages were initially allocated
with only the READ+WRITE flags.

A more detailed description of the issue can be found in this
public SwiftShader bug:

  https://issuetracker.google.com/issues/154586551

This patch just restrict the mapping to the READ flag for ROData
sections. Code sections are still mapped with READ+EXECUTE as
expected.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D78574
The file was modifiedllvm/lib/ExecutionEngine/SectionMemoryManager.cpp
Commit cc68c122cd00f99037b8ff7e645e2b387d56da8b by Tatyana Krasnukha
[lldb/TestingSupport] Manually disable GTEST_HAS_TR1_TUPLE

Gtest 1.8.0 uses tr1::tuple which is deprecated on MSVC. We have to force it off
to avoid the compiler warnings, which will become errors after switching on C++17
(https://devblogs.microsoft.com/cppblog/c17-feature-removals-and-deprecations).
The file was modifiedlldb/unittests/TestingSupport/CMakeLists.txt
Commit 75012a80440f2302d3dc0e57ea264b9c26c26789 by Tatyana Krasnukha
[lldb] Use PyUnicode_GetLength instead of PyUnicode_GetSize

PyUnicode_GetSize is deprecated since Python version 3.3.
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
Commit bc056b3aa7130923ab9ad0505c5a8d65ea721e39 by Tatyana Krasnukha
[lldb] Suppress MSVC warning C4065

MSVC reports "switch statement contains 'default' but no 'case' labels". Suppress,
as this was intended behavior.
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.cpp
Commit 14948a08f31b6e3b555f73339504efd867835d27 by pierre.gousseau
[compiler-rt] Normalize some in/out doxygen parameter in interface
headers. NFC.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D84945
The file was modifiedcompiler-rt/include/sanitizer/asan_interface.h
The file was modifiedcompiler-rt/include/sanitizer/common_interface_defs.h
Commit 4cd923784e9079384792e0aed38d56809d6a4f9a by frgossen
[MLIR][Shape] Expose extent tensor type builder

The extent tensor type is a `tensor<?xindex>` that is used in the shape dialect.
To facilitate the use of this type when working with the shape dialect, we
expose the helper function for its construction.

Differential Revision: https://reviews.llvm.org/D85121
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
Commit 21f142ce1df10fe6cf5721e263fc6e91aea93938 by l.lunak
[lldb] temporary commit to see why a test is failing only on lldb-aarch64-ubuntu
The file was modifiedlldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py
Commit 138281904ba029bc49fca34a8658a8fcd1b843aa by l.lunak
Revert "[lldb] temporary commit to see why a test is failing only on lldb-aarch64-ubuntu"

This reverts commit 21f142ce1df10fe6cf5721e263fc6e91aea93938.
The file was modifiedlldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py
Commit 4963ca4658b0c4ab70f029110150878178328335 by thomasp
[docs] Document pattern of using CHECK-SAME to skip irrelevant lines

This came up during the review for D67656. It's nice but also subtle, so documenting it as an idiom will make tests easier to understand.

Reviewed By: probinson

Differential Revision: https://reviews.llvm.org/D68061
The file was modifiedllvm/docs/CommandGuide/FileCheck.rst
Commit c558c22cab9a555d2e521102b775759381e9727f by benny.kra
[llvm-symbolizer] Add legacy aliases -demangle=true and -demangle=false.

This is used in the wild, don't break compatibility for no good reason.
https://github.com/google/pprof/blob/master/internal/binutils/addr2liner_llvm.go
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td
The file was modifiedllvm/test/tools/llvm-symbolizer/demangle.s
Commit f97019ad6e3a96995dda3f759ee692eb81abcc4c by grimar
[llvm-readobj/elf] - Add a testing for --stackmap and refine the implementation.

Currently, we only test the `--stackmap` option here:
https://github.com/llvm/llvm-project/blob/master/llvm/test/Object/stackmap-dump.test
it uses a precompiled MachO binary currently and I've found no tests for this option for ELF.

The implementation also has issues. For example, it might assert on a wrong version
of the .llvm-stackmaps section. Or it might crash on an empty or truncated section.

This patch introduces a new tools/llvm-readobj/ELF test file as well as implements a few
basic checks to catch simple crashes/issues

It also eliminates `unwrapOrError` calls in `printStackMap()`.

Differential revision: https://reviews.llvm.org/D85208
The file was modifiedllvm/include/llvm/Object/StackMapParser.h
The file was addedllvm/test/tools/llvm-readobj/ELF/stackmap.test
The file was modifiedllvm/tools/llvm-readobj/COFFDumper.cpp
The file was modifiedllvm/lib/CodeGen/StackMaps.cpp
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit a3d427d30cd32f218f53e32b58e232ea8312aa50 by pifon
[mlir] Lower RankOp to LLVM for unranked memrefs.

Differential Revision: https://reviews.llvm.org/D85273
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
Commit fab4b59961aa35109861493dfe071979d56b4360 by zinenko
[mlir] Conversion of ViewOp with memory space to LLVM.

Handle the case where the ViewOp takes in a memref that has
an memory space.

Reviewed By: ftynse, bondhugula, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D85048
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit 188187f062a56604a4339f16f139e3cc720ba2bd by l.lunak
[lldb] expect TestGuiBasicDebug.py failure on aarch64

http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/7287/steps/test/logs/stdio
fails, and the output suggests that gui 'finish' (='thread step-out') is broken
on aarch64.
The file was modifiedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
Commit 4aaf301fb8f4f666d935fe78ef5d74592eee5fc1 by llvm-dev
[DAG] Fold vector (aext (load x)) -> (zext (truncate (zextload x)))

We currently don't do anything to fold any_extend vector loads as no target has such an instruction.

Instead I've added support for folding to a zextload, SimplifyDemandedBits does a good job of adjusting the zext(truncate(()) stages as required later on.

We still need the custom scalar extload handling instead of using the tryToFoldExtOfLoad helper as it has different legality tests - we can probably tweak that to reduce most of the code duplication.

Fixes the regression I mentioned in rG99a971cadff7

Differential Revision: https://reviews.llvm.org/D85129
The file was modifiedllvm/test/CodeGen/X86/vector-mul.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512-any_extend_load.ll
Commit 927fc536ca225568f2ae853dddbb58e8712b1fbf by paul.walker
[SVE] Add lowering for fixed length vector and, or & xor operations.

Since there are no ill effects when performing these operations
with undefined elements, they are lowered to the already supported
unpredicated scalable vector equivalents.

Differential Revision: https://reviews.llvm.org/D85117
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-int-log.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
Commit 3ab01550b632dad46f9595d74855749557ffd25c by hans
Revert "[CMake] Simplify CMake handling for zlib"

This quietly disabled use of zlib on Windows even when building with
-DLLVM_ENABLE_ZLIB=FORCE_ON.

> Rather than handling zlib handling manually, use find_package from CMake
> to find zlib properly. Use this to normalize the LLVM_ENABLE_ZLIB,
> HAVE_ZLIB, HAVE_ZLIB_H. Furthermore, require zlib if LLVM_ENABLE_ZLIB is
> set to YES, which requires the distributor to explicitly select whether
> zlib is enabled or not. This simplifies the CMake handling and usage in
> the rest of the tooling.
>
> This is a reland of abb0075 with all followup changes and fixes that
> should address issues that were reported in PR44780.
>
> Differential Revision: https://reviews.llvm.org/D79219

This reverts commit 10b1b4a231a485f1711d576e6131f6755e008abe and follow-ups
64d99cc6abed78c00a2a7863b02ce54911a5264f and
f9fec0447e12da9e8cf4b628f6d45f4941e7d182.
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
The file was modifiedlld/test/CMakeLists.txt
The file was modifiedllvm/lib/Support/CRC.cpp
The file was modifiedllvm/unittests/Support/CompressionTest.cpp
The file was modifiedllvm/test/lit.site.cfg.py.in
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedlldb/cmake/modules/LLDBStandalone.cmake
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in
The file was modifiedmlir/examples/standalone/CMakeLists.txt
The file was modifiedllvm/test/CMakeLists.txt
The file was modifiedllvm/include/llvm/Config/config.h.cmake
The file was modifiedlld/test/lit.site.cfg.py.in
The file was modifiedllvm/cmake/config-ix.cmake
The file was modifiedllvm/lib/Support/Compression.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedclang/test/CMakeLists.txt
The file was modifiedcompiler-rt/test/lit.common.configured.in
Commit 300899b9c4ed505f43840a9876e96dbb5ba4ce52 by llvm-dev
[X86][AVX] Add test showing unnecessary duplicate HADD instructions

Taken from internal fuzz test
The file was modifiedllvm/test/CodeGen/X86/haddsub-undef.ll
Commit e3d3657b9be12dec947dbbc672a004f802ff2338 by llvm-dev
CallLowering.h - remove unnecessary CCState forward declaration. NFCI.

Already defined in CallingConvLower.h
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
Commit 315e1daf7f452979e298bae368bb71b92314751f by llvm-dev
GISelWorkList.h - remove unnecessary includes. NFCI.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
Commit a44161692ae879068d4086a7e568a348800ba01d by aaron
Support member expressions in bugprone-bool-pointer-implicit-conversion.

This addresses PR45189.
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BoolPointerImplicitConversionCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-bool-pointer-implicit-conversion.cpp
Commit bd7f3f8a3ed70586f2b6a68b267b83d18e6fbdb4 by Xing
[obj2yaml] Add support for dumping the .debug_aranges section.

This patch adds support for dumping DWARF sections to obj2yaml. The
.debug_aranges section is used to illustrate the basic idea.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D85094
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/tools/obj2yaml/obj2yaml.h
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-aranges.yaml
Commit bdb9295664aa2ea0ee195505a0ca78ea8e34e657 by zinenko
[mlir] Fix convert-to-llvmir.mlir test broken due to syntax change

The syntax of the LLVM dialect types changed between the time the code
was written and it was submitted, leading to a test failure. Update the
syntax.
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
Commit 7b993903e0448a1f804882c97f3071e799cbe99e by llvm-dev
DWARFVerifier.h - remove unnecessary forward declarations and includes. NFCI.
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
Commit f2675ab45fbb41bb7c1e1b0b86533fc83e877b6b by sam.parker
[ARM][CostModel] Implement getCFInstrCost

As with other targets, set the throughput cost of control-flow
instructions to free so that we don't miss out of vectorization
opportunities.

Differential Revision: https://reviews.llvm.org/D85283
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smax.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/memcpy.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/sub-cast-vect.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mul-cast-vect.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umin.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umax.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/fparith.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smin.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/select.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/control-flow.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-overflow.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast_ldst.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/shuffle.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/divrem.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/shl-cast-vect.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/test/Analysis/CostModel/ARM/cmps.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/load_store.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-ssat.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-usat.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/gep.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-add.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith.ll
Commit 45f2a56856e29b8cb038b2e559289b91fb98fedf by Yaxun.Liu
[CUDA][HIP] Support accessing static device variable in host code for -fno-gpu-rdc

nvcc supports accessing file-scope static device variables in host code by host APIs
like cudaMemcpyToSymbol etc.

CUDA/HIP let users access device variables in host code by shadow variables. In host compilation,
clang emits a shadow variable for each device variable, and calls __*RegisterVariable to
register it in init function. The address of the shadow variable and the device side mangled
name of the device variable is passed to __*RegisterVariable. Runtime looks up the symbol
by name in the device binary  to find the address of the device variable.

The problem with static device variables is that they have internal linkage, therefore their
name may be changed by the linker if there are multiple symbols with the same name. Also
they end up as local symbols in the elf file, whereas the runtime only looks up the global symbols.

Another reason for making the static device variables external linkage is that they may be
initialized externally by host code and their final value may be accessed by host code
after kernel execution, therefore they actually have external linkage. Giving them internal
linkage will cause incorrect optimizations on them.

To support accessing static device var in host code for -fno-gpu-rdc mode, change the intnernal
linkage to external linkage. The name does not need change since there is only one TU for
-fno-gpu-rdc mode. Also the externalization is done only if the device static var is referenced
by host code.

Differential Revision: https://reviews.llvm.org/D80858
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was addedclang/test/CodeGenCUDA/static-device-var-no-rdc.cu
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/CodeGenCUDA/constexpr-variables.cu
The file was modifiedclang/include/clang/AST/ASTContext.h
Commit 4e491570b5ecff17d3ac7cf6dbb328d379cd4fb6 by zinenko
[mlir] Remove LLVMTypeTestDialect

This dialect was introduced during the bring-up of the new LLVM dialect type
system for testing purposes. The main LLVM dialect now uses the new type system
and the test dialect is no longer necessary, so remove it.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85224
The file was modifiedmlir/test/Dialect/LLVMIR/types-invalid.mlir
The file was modifiedmlir/tools/mlir-translate/mlir-translate.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt
The file was modifiedmlir/test/Target/llvmir-types.mlir
The file was removedmlir/test/lib/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt
The file was modifiedmlir/tools/mlir-translate/CMakeLists.txt
The file was removedmlir/test/lib/Dialect/LLVMIR/LLVMTypeTestDialect.cpp
Commit 00b89f66f988e9ec6f366ed46a51ace39fac07c8 by riccibrun
[clang][NFC] Remove spurious +x flag on DeclTemplate.cpp and DeclTemplate.h
The file was modifiedclang/lib/AST/DeclTemplate.cpp
The file was modifiedclang/include/clang/AST/DeclTemplate.h
Commit 98b4b4570542a255e9a81e4a349183402a2d478d by riccibrun
[clang][NFC] Add a test showcasing an unnamed template parameter in a diagnostic
The file was modifiedclang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp
Commit bc29634b93acf2e55c82dd906f0d9af196c66ff3 by riccibrun
[clang][NFC] Remove an old workaround for MSVC 2013
The file was modifiedclang/include/clang/AST/DeclTemplate.h
Commit 6f2fa9d312fcea2448706a8e410c7bc1b6436ea7 by riccibrun
[clang][NFC] Document NamedDecl::printName
The file was modifiedclang/include/clang/AST/Decl.h
Commit 19701458d4691ee7ec59e5aa7217a479b0fb10e7 by riccibrun
[clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString

`OS << ND->getDeclName();` is equivalent to `OS << ND->getNameAsString();`
without the extra temporary string.

This is not quite a NFC since two uses of `getNameAsString` in a
diagnostic are replaced, which results in the named entity being
quoted with additional "'"s (ie: 'var' instead of var).
The file was modifiedclang/lib/AST/Interp/Disasm.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang-tools-extra/clang-move/HelperDeclRefGraph.cpp
The file was modifiedclang/lib/Frontend/FrontendAction.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
The file was modifiedclang/test/SemaCXX/warn-msvc-enum-bitfield.cpp
The file was modifiedclang/lib/AST/ASTDiagnostic.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
The file was modifiedclang/lib/Tooling/Refactoring/ASTSelection.cpp
The file was modifiedclang-tools-extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp
The file was modifiedclang/lib/Index/FileIndexRecord.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modifiedclang/lib/Sema/AnalysisBasedWarnings.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp
The file was modifiedclang-tools-extra/clang-move/Move.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp
The file was modifiedclang/test/Index/error-on-deserialized.c
Commit 94b43118e2203fed8ca0377ae762c08189aa6f3d by riccibrun
[clang][NFCI] Get rid of ConstantMatrixTypeBitfields to avoid increasing the size of every type.

sizeof(ConstantMatrixTypeBitfields) > 8 which increases the size of every type.
This was not detected because no corresponding static_assert for its size was
added.

To prevent this from occuring again replace the various static_asserts for
the size of each of the bit-field classes by a single static_assert for the
size of Type.

I have left ConstantMatrixType::MaxElementsPerDimension unchanged since
the limit is exercised by multiple tests.
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/lib/AST/Type.cpp
Commit f7a039de7af7b83105f3e0345d65dceda1a0e0d4 by riccibrun
[clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters.

NamedDecl::printName will print the pretty-printed name of the entity, which
is not what we want here (we should print "enum { e };" instead of "enum
(unnamed enum at input.cc:1:5) { e };").

For now only DecompositionDecl and MDGuidDecl have an overloaded printName so
this does not result in any functional change, but this change is needed since
I will be adding overloads to better handle unnamed entities in diagnostics.
The file was modifiedclang/lib/AST/DeclPrinter.cpp
The file was modifiedclang/unittests/AST/DeclPrinterTest.cpp
Commit cc2612185833a0e4b7a19bfbde801ced9297b0f7 by thakis
[gn build] (manually) merge 3ab01550b

This reverts commit 0bbaacc8cae0373d4500c4e3f6f128d21f9033b7 and
2ad56119f5dc6c6af2b8ddfd9fc8c6460a7507c8 which merged 10b1b4a23
(and follow-ups), since that change was reverted in 3ab01550b.
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/lld/test/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
Commit f5df5cd5586ae9cfb2d9e53704dfc76f47aff149 by lebedev.ri
Recommit "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)"

This reverts commit ac70b37a00dc02bd8923e0a4602d26be4581c570
which reverted commit 8aeb2fe13a4100b4c2e78d6ef75119304100cb1f
because codegen tests got broken and i needed time to investigate.

This shows some regressions in tests, but they are all around GEP's,
so i'm not really sure how important those are.

https://rise4fun.com/Alive/1Gn
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/reqd-work-group-size.ll
Commit 75f239e9756b157f209412268c5a50a69b1a4e74 by zinenko
[mlir] Initial version of C APIs

    Introduce an initial version of C API for MLIR core IR components: Value, Type,
    Attribute, Operation, Region, Block, Location. These APIs allow for both
    inspection and creation of the IR in the generic form and intended for wrapping
    in high-level library- and language-specific constructs. At this point, there
    is no stability guarantee provided for the API.

Reviewed By: stellaraccident, lattner

Differential Revision: https://reviews.llvm.org/D83310
The file was addedmlir/lib/CAPI/IR/CMakeLists.txt
The file was addedmlir/lib/CAPI/Registration/Registration.cpp
The file was modifiedmlir/test/CMakeLists.txt
The file was addedmlir/test/CAPI/lit.local.cfg
The file was addedmlir/test/CAPI/CMakeLists.txt
The file was addedmlir/include/mlir-c/Registration.h
The file was addedmlir/include/mlir-c/IR.h
The file was addedmlir/lib/CAPI/Registration/CMakeLists.txt
The file was addedmlir/lib/CAPI/IR/IR.cpp
The file was addedmlir/lib/CAPI/CMakeLists.txt
The file was modifiedmlir/test/lit.cfg.py
The file was modifiedmlir/CMakeLists.txt
The file was addedmlir/docs/CAPI.md
The file was addedmlir/test/CAPI/ir.c
Commit 4dcbb9cef71afa549afe8f6b4d335b1c996f8079 by riccibrun
[clang] Add -fno-delayed-template-parsing to the added unit tests in DeclPrinterTest.cpp
The file was modifiedclang/unittests/AST/DeclPrinterTest.cpp
Commit d21ce408218150e23b5cc4af45c088c0926d7e18 by dantrushin
[Statepoints] Operand folding in presense of tied registers.

Implement proper folding of statepoint meta operands (deopt and GC)
when statepoint uses tied registers.
For deopt operands it is just about properly preserving tiedness
in new instruction.
For tied GC operands folding is a little bit more tricky.
We can fold tied GC operands only from InlineSpiller, because it knows
how to properly reload tied def after it was turned into memory operand.
Other users (e.g. peephole) cannot properly fold such operands as they
do not know how (or when) to reload them from memory.
We do this by un-tieing operand we want to fold in InlineSpiller
and allowing to fold only untied operands in foldPatchpoint.
The file was modifiedllvm/lib/CodeGen/InlineSpiller.cpp
The file was addedllvm/test/CodeGen/X86/statepoint-vreg-folding.mir
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
Commit 002d61db2b7790dc884953bf9271878bf0af3a8e by jdenny.ornl
[OpenMP] Fix `present` for exit from `omp target data`

Without this patch, the following example fails but shouldn't
according to OpenMP TR8:

```
#pragma omp target enter data map(alloc:i)
#pragma omp target data map(present, alloc: i)
{
   #pragma omp target exit data map(delete:i)
} // fails presence check here
```

OpenMP TR8 sec. 2.22.7.1 "map Clause", p. 321, L23-26 states:

> If the map clause appears on a target, target data, target enter
> data or target exit data construct with a present map-type-modifier
> then on entry to the region if the corresponding list item does not
> appear in the device data environment an error occurs and the
> program terminates.

There is no corresponding statement about the exit from a region.
Thus, the `present` modifier should:

1. Check for presence upon entry into any region, including a `target
   exit data` region.  This behavior is already implemented correctly.

2. Should not check for presence upon exit from any region, including
   a `target` or `target data` region.  Without this patch, this
   behavior is not implemented correctly, breaking the above example.

In the case of `target data`, this patch fixes the latter behavior by
removing the `present` modifier from the map types Clang generates for
the runtime call at the end of the region.

In the case of `target`, we have not found a valid OpenMP program for
which such a fix would matter.  It appears that, if a program can
guarantee that data is present at the beginning of a `target` region
so that there's no error there, that data is also guaranteed to be
present at the end.  This patch adds a comment to the runtime to
document this case.

Reviewed By: grokos, RaviNarayanaswamy, ABataev

Differential Revision: https://reviews.llvm.org/D84422
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
The file was modifiedclang/test/OpenMP/target_data_codegen.cpp
The file was addedopenmp/libomptarget/test/mapping/present/target_data_at_exit.c
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
Commit 26cf9c17044515cdde3e7baeea843001ba33be59 by jdenny.ornl
[OpenMP][Docs] Add map clause reordering status as unclaimed
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 03bb545b68c2edb9dc5bd092104bdb83a8e5e347 by jdenny.ornl
[OpenMP][Docs] Mark `present` map type modifier as done
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 5ab43989c353a2378910d20c7b88e44ea92b3aee by jdenny.ornl
[OpenMP] Fix `omp target update` for array extension

OpenMP TR8 sec. 2.15.6 "target update Construct", p. 183, L3-4 states:

> If the corresponding list item is not present in the device data
> environment and there is no present modifier in the clause, then no
> assignment occurs to or from the original list item.

L10-11 states:

> If a present modifier appears in the clause and the corresponding
> list item is not present in the device data environment then an
> error occurs and the program termintates.

(OpenMP 5.0 also has the first passage but without mention of the
present modifier of course.)

In both passages, I assume "is not present" includes the case of
partially but not entirely present.  However, without this patch, the
target update directive misbehaves in this case both with and without
the present modifier.  For example:

```
#pragma omp target enter data map(to:arr[0:3])
#pragma omp target update to(arr[0:5]) // might fail on data transfer
#pragma omp target update to(present:arr[0:5]) // might fail on data transfer
```

The problem is that `DeviceTy::getTgtPtrBegin` does not return a null
pointer in that case, so `target_data_update` sees the data as fully
present, and the data transfer then might fail depending on the target
device.  However, without the present modifier, there should never be
a failure.  Moreover, with the present modifier, there should always
be a failure, and the diagnostic should mention the present modifier.

This patch fixes `DeviceTy::getTgtPtrBegin` to return null when
`target_data_update` is the caller.  I'm wondering if it should do the
same for more callers.

Reviewed By: grokos, jdoerfert

Differential Revision: https://reviews.llvm.org/D85246
The file was modifiedopenmp/libomptarget/src/device.h
The file was addedopenmp/libomptarget/test/mapping/target_update_array_extension.c
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was addedopenmp/libomptarget/test/mapping/present/target_update_array_extension.c
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit 6ae5b9e40587f5586e2970ca717797b68c34758d by grimar
[llvm-readobj] - Make decode_relrs() don't return Expected<>. NFCI.

The `decode_relrs` helper is declared as:

`Expected<std::vector<Elf_Rel>> decode_relrs(Elf_Relr_Range relrs) const;`

it never returns an error though and hence can be simplified to return
a vector.

Differential revision: https://reviews.llvm.org/D85302
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/lib/Object/ELF.cpp
The file was modifiedllvm/include/llvm/Object/ELF.h
Commit a57bfb44bc7918c907500ba9ac4cdd80e445660a by llvm-dev
[X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for integer types
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/haddsub-2.ll
Commit 6a06c7a0a7688ce142865e92d879b8bece79de7a by llvm-dev
[X86] isHorizontalBinOp - only update LHS/RHS references on success

We've had issues in the past where isHorizontalBinOp calls would affect later combines as the LHS/RHS references had been commuted but still failed to match.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 1fdab96130fc86f2635d26b617adf10608b8e63b by gyurgyikcp
[libc] Add isspace, isprint, isxdigit implementations.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85270
The file was addedlibc/src/ctype/isprint.h
The file was addedlibc/test/src/ctype/isxdigit_test.cpp
The file was addedlibc/test/src/ctype/isspace_test.cpp
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/src/ctype/isspace.cpp
The file was addedlibc/src/ctype/isspace.h
The file was addedlibc/src/ctype/isxdigit.h
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/test/src/ctype/isprint_test.cpp
The file was addedlibc/src/ctype/isprint.cpp
The file was addedlibc/src/ctype/isxdigit.cpp
The file was modifiedlibc/src/ctype/CMakeLists.txt
The file was modifiedlibc/test/src/ctype/CMakeLists.txt
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
Commit 049f6ad4f69e6b9c5df290d6f9d86c991ed4ecec by noreply
[libc] [obvious] Add ctype functions to linux api.

Adds isspace, isprint, and isxdigit to Linux API to fix failed integration test.
The file was modifiedlibc/config/linux/api.td
Commit 271d9c507c783b3c13629376f3edf66099937938 by hans
Bump forgotten version nbr in llvm/docs/conf.py
The file was modifiedllvm/docs/conf.py
Commit 011732852c2c1ca1015fac1bed831308dc521583 by kadircet
[clangd] Fix a crash in DefineInline

Differential Revision: https://reviews.llvm.org/D85291
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
Commit bd2c88b253b06c4957ec4bfef60d41e79f8492aa by spatel
[InstSimplify] reduce code duplication in simplifyICmpWithMinMax(); NFC
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 0ccda7c2326e1dc4e0d5d601dcc06c4b576acb0e by Saleem Abdulrasool
MachO: support `-syslibroot`

This adds support for the `-syslibroot` option.  This is required to
make the library search order actually function.  With this, it is now
possible to link a test Darwin x86_64 program with lld on Darwin.

Differential Revision: https://reviews.llvm.org/D82252
Reviewed By: Jez Ng
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/test/MachO/search-paths.test
The file was addedlld/test/MachO/syslibroot.test
Commit d561d1bf96354c10ca664c20b5268d156a9a3da3 by Lang Hames
[JITLink][AArch64] Improve debug output for addend relocations.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
Commit 47cfffe893f345285ac9fb9c24b268dfcdc6aa38 by Lang Hames
[JITLink][AArch64] Handle addends on PAGE21 / PAGEOFF12 relocations.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_relocations.s
Commit 98d91aecb26a51225242332e73ed454c0f6cac5e by mascasa
Add libFuzzer shared object build output

This change adds a CMake rule to produce shared object versions of
libFuzzer (no-main). Like the static library versions, these shared
libraries have a copy of libc++ statically linked in. For i386 we don't
link with libc++ since i386 does not support mixing position-
independent and non-position-independent code in the same library.

Patch By: IanPudney

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D84947
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt
The file was modifiedllvm/docs/LibFuzzer.rst
Commit acb66b9111ba793509b5468a58107108317b7cf5 by i
[ELF] --oformat=binary: use LMA to compute file offsets

--oformat=binary is rare (used in a few places in FreeBSD, see `stand/i386/mbr/Makefile` `LDFLAGS_BIN`)
The result should be identical to a normal output transformed by `objcopy -O binary`.

The current implementation ignores addresses and lays out sections by
respecting output section alignments. It can fail when an output section
address is specified, e.g. `.rodata ALIGN(16) :` (PR33651).

Fix PR33651 by respecting LMA. The code is similar to
`tools/llvm-objcop/ELF/Object.cpp` BinaryWriter::finalize after D71035 and D79229.
Unforunately for an output section without PT_LOAD, we assume its LMA is equal
to its VMA. So the result is still incorrect when an output section LMA
(`AT(...)`) is specified

Also drop `alignTo(off, config->wordsize)`. GNU ld does not round up the file size.

Differential Revision: https://reviews.llvm.org/D85086
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/oformat-binary-ttext.s
The file was modifiedlld/test/ELF/oformat-binary.s
Commit 21b4f8060ab3b313009cf8995140edd5adbf7a4a by i
[ELF] --icf: don't fold text sections with LSDA

Fix PR36272 and PR46835

A .eh_frame FDE references a text section and (optionally) a LSDA (in
.gcc_except_table).  Even if two text sections have identical content and
relocations (e.g. a() and b()), we cannot fold them if their LSDA are different.

```
void foo();
void a() {
  try { foo(); } catch (int) { }
}
void b() {
  try { foo(); } catch (float) { }
}
```

Scan .eh_frame pieces with LSDA and disallow referenced text sections to be
folded. If two .gcc_except_table have identical semantics (usually identical
content with PC-relative encoding), we will lose folding opportunity.
For ClickHouse (an exception-heavy application), this can reduce --icf=all efficiency
from 9% to 5%. There may be some percentage we can reclaim without affecting
correctness, if we analyze .eh_frame and .gcc_except_table sections.

gold 2.24 implemented a more complex fix (resolution to
https://sourceware.org/bugzilla/show_bug.cgi?id=21066) which combines the
checksum of .eh_frame CIE/FDE pieces.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D84610
The file was addedlld/test/ELF/icf-eh-frame.s
The file was modifiedlld/ELF/SyntheticSections.h
The file was modifiedlld/ELF/EhFrame.cpp
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/ELF/EhFrame.h
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/ELF/InputSection.h
Commit 030ddc0a0bb9e2b25319eb681d520a9cee32b761 by i
[ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD

GNU ld allows sections after a non-SHF_ALLOC section to be covered by PT_LOAD
(PR37607) and assigns addresses to non-SHF_ALLOC output sections (similar to
SHF_ALLOC NOBITS sections. The location counter is not advanced).

This patch tries to fix PR37607 (remove a special case in
`Writer<ELFT>::createPhdrs`). To make the created PT_LOAD meaningful, we cannot
reset dot to 0 for a middle non-SHF_ALLOC output section. This results in
removal of two special cases in LinkerScript::assignOffsets. Non-SHF_ALLOC
non-orphan sections can have non-zero addresses like in GNU ld.

The zero address rule for non-SHF_ALLOC sections is weakened to apply to orphan
only. This results in a special case in createSection and findOrphanPos, respectively.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D85100
The file was modifiedlld/test/ELF/linkerscript/compress-debug-sections-custom.s
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/linkerscript/symbols-non-alloc.test
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/test/ELF/linkerscript/sections.s
Commit bc7456fd8a11e3b477060af85b00c42ca728ad7f by pifon
[mlir] Fix rank bitwidth in UnrankedMemRefType conversion.

Differential Revision: https://reviews.llvm.org/D85300
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit 1d75f004ab069a0de6ff0622a9cf937e8b54f6ba by uday
[MLIR][NFC] Fix clang-tidy warnings in std to llvm conversion

Fix clang-tidy warnings in std to llvm conversion.
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit 719954eacb704236cb726fa3db5503f650a89b81 by spatel
[InstSimplify] add tests for icmp with 'mul nuw' operand; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
Commit 26f79e258ffd74bc5e8fadb44947c9deba2e5375 by lebedev.ri
[NFC][InstCombine] Tests for negation of `add` w/ single negatible operand
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit 3a3c9519e272e664172a0a90e8abf84b6d400106 by lebedev.ri
[InstCombine] Negator: 0 - (X + Y)  -->  (-X) - Y  iff a single operand negated

This was the most obvious regression in
f5df5cd5586ae9cfb2d9e53704dfc76f47aff149.f5df5cd5586ae9cfb2d9e53704dfc76f47aff149

We really don't want to do this if the original/outermost subtraction
isn't a negation, and therefore doesn't go away - just sinking negation
isn't a win. We are actually appear to be missing folds so hoist it.

https://rise4fun.com/Alive/tiVe
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit 3169d920ccd16ec3c3e1bf5d91595b70a5278045 by tedwood
Remove special Hexagon packet traversal code

On Hexagon, breakpoints need to be on the first instruction of a packet.
When the LLVM disassembler for Hexagon returned 32 bit instructions, we
needed code to find the start of the current packet. Now that the LLVM
disassembler for Hexagon returns packets instead of instructions, we always
have the first instruction of the packet. Remove the packet traversal code
because it can cause problems when the next packet has more than one
instruction.

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D84966
The file was modifiedlldb/include/lldb/Core/Disassembler.h
The file was modifiedlldb/source/Core/Disassembler.cpp
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/source/Target/ThreadPlanStepRange.cpp
Commit 882d8e60dd40c01c74b4e16b02cf7ca02e846434 by Jonas Devlieghere
[lldb] Make SBTarget::LaunchSimple start form the target's LaunchInfo

Currently SBTarget::LaunchSimple creates a new LaunchInfo which means it
ignores any target properties that have been set. Instead, it should
start from the target's LaunchInfo and populated the specified fields.

Differential revision: https://reviews.llvm.org/D85235
The file was modifiedlldb/test/API/python_api/target/main.c
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
The file was modifiedlldb/source/API/SBTarget.cpp
Commit 249a1d4f1bed2f2be5781a90b5d4bce8791d338b by Jonas Devlieghere
[lldb] Add an option to inherit TCC permissions from parent.

Add an option that allows the user to decide to not make the inferior is
responsible for its own TCC permissions. If you don't make the inferior
responsible, it inherits the permissions of its parent. The motivation
is the scenario of running the LLDB test suite from an external hard
drive. If the inferior is responsible, every test needs to be granted
access to the external volume. When the permissions are inherited,
approval needs to be granted only once.

Differential revision: https://reviews.llvm.org/D85237
The file was modifiedlldb/source/Target/Target.cpp
The file was modifiedlldb/include/lldb/Target/Target.h
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
The file was modifiedlldb/test/Shell/lit-lldb-init.in
The file was modifiedlldb/source/Host/macosx/objcxx/Host.mm
The file was modifiedlldb/include/lldb/lldb-enumerations.h
The file was modifiedlldb/source/Target/TargetProperties.td
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit a05ec856a3e79c03fa2657b05b440401bf4af1a3 by lebedev.ri
[NFC][InstCombine] Negator: include all the needed headers, IWYU
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit e9761688e41cb979a1fa6a79eb18145a75104933 by david.green
[LoopVectorizer] Inloop vector reductions

Arm MVE has multiple instructions such as VMLAVA.s8, which (in this
case) can take two 128bit vectors, sign extend the inputs to i32,
multiplying them together and sum the result into a 32bit general
purpose register. So taking 16 i8's as inputs, they can multiply and
accumulate the result into a single i32 without any rounding/truncating
along the way. There are also reduction instructions for plain integer
add and min/max, and operations that sum into a pair of 32bit registers
together treated as a 64bit integer (even though MVE does not have a
plain 64bit addition instruction). So giving the vectorizer the ability
to use these instructions both enables us to vectorize at higher
bitwidths, and to vectorize things we previously could not.

In order to do that we need a way to represent that the reduction
operation, specified with a llvm.experimental.vector.reduce when
vectorizing for Arm, occurs inside the loop not after it like most
reductions. This patch attempts to do that, teaching the vectorizer
about in-loop reductions. It does this through a vplan recipe
representing the reductions that the original chain of reduction
operations is replaced by. Cost modelling is currently just done through
a prefersInloopReduction TTI hook (which follows in a later patch).

Differential Revision: https://reviews.llvm.org/D75069
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
Commit 1e90bd7f84d3948807c8f40926e72def664f07fa by julian.lettner
[ASan][Darwin] Adapt test for macOS 11+ version scheme

This test depends on the versioning scheme of OSX.
The file was modifiedcompiler-rt/test/asan/TestCases/Darwin/dyld_insert_libraries_reexec.cpp
Commit f425c0442c3ef137f2c4ab5eebd3d39036b09d70 by rupprecht
[lldb/test] Replace LLDB_TEST_SRC env variable with configuration

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85322
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/plugins/builder_base.py
Commit b18c41c66fd16bde1a0a80a94f03815bc58dcc5a by mtrofin
[TFUtils] Expose untyped accessor to evaluation result tensors

These were implementation detail, but become necessary for generic data
copying.

Also added const variations to them, and move assignment, since we had a
move ctor (and the move assignment helps in a subsequent patch).

Differential Revision: https://reviews.llvm.org/D85262
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp
The file was modifiedllvm/include/llvm/Analysis/Utils/TFUtils.h
The file was modifiedllvm/lib/Analysis/TFUtils.cpp
Commit 3c39db0c4452218c967a8ac3ad48144fbf1159ff by rupprecht
Revert "[LoopVectorizer] Inloop vector reductions"

This reverts commit e9761688e41cb979a1fa6a79eb18145a75104933. It breaks the build:

```
~/src/llvm-project/llvm/lib/Analysis/IVDescriptors.cpp:868:10: error: no viable conversion from returned value of type 'SmallVector<[...], 8>' to function return type 'SmallVector<[...], 4>'
  return ReductionOperations;
```
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit b60f998859458a13774fff296b58f587da8e56dd by llvm-dev
[X86][SSE] Fold 128-bit PACK(EXTEND(X),EXTEND(Y)) -> CONCAT(X,Y) subvectors

This is seen in the sub-128-bit vector trunc(ext()) of comparison results

Fixes pr46585.ll regression in D66004
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-and-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-bool.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/bitcast-setcc-128.ll
Commit f2c04239955a8e0d71aa27f7ffa3bbba6c623aef by eugenis
[msan] Remove readnone and friends from call sites.

MSan removes readnone/readonly and similar attributes from callees,
because after MSan instrumentation those attributes no longer apply.

This change removes the attributes from call sites, as well.

Failing to do this may cause DSE of paramTLS stores before calls to
readonly/readnone functions.

Differential Revision: https://reviews.llvm.org/D85259
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/attributes.ll
Commit 6780d5675b7cd75279d8fc13ee1a1cc272087613 by a.bataev
[LIBOMPTARGET]Fix order of mapper data for targetDataEnd function.

targetDataMapper function fills arrays with the mapping data in the
direct order. When this function is called by targetDataBegin or
tgt_target_update functions, it works as expected. But targetDataEnd
function processes mapped data in reverse order. In this case, the base
pointer might be deleted before the associated data is deleted. Need to
reverse data, mapped by mapper, too, since it always adds data that must
be deleted at the end of the buffer.
Fixes the test declare_mapper_target_update.cpp.
Also, reduces the memry fragmentation by preallocation the memory
buffers.

Differential Revision: https://reviews.llvm.org/D85216
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit 2143a90b34a7846369127e762cec5917d5e1a5bd by erich.keane
Fix _ExtInt(1) to be a i1 in memory.

The _ExtInt(1) in getTypeForMem was hitting the bool logic for expanding
to an 8 bit value.  The result was an assert, or store i1 %0, i8* %2, align 1
since the parameter IS an i1.  This patch changes the 'forMem' test to
exclude ext-int from the bool test.
The file was modifiedclang/test/CodeGen/ext-int.c
The file was modifiedclang/lib/CodeGen/CodeGenTypes.cpp
Commit 9a7b8b22a75c4b5a065775a75a6a3dd2718ac970 by hokein.wu
[clangd] Hide "swap if branch" tweak

This tweak is more like a demo, and doesn't provide much value in
practice.

Differential Revision: https://reviews.llvm.org/D85318
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/SwapIfBranches.cpp
Commit 4f20f5e8cffca7898d62070e4fcd51650e412e98 by dblaikie
Remove Olesen from LLVM code owners

I contacted Jakob Olesen about TableGen and he replied that he is no longer involved with the project.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D84958
The file was modifiedllvm/CODE_OWNERS.TXT
Commit b727cfed5e765d099f47e6785f962695408977c0 by zinenko
[MLIR][LinAlg] Use AnyTypeOf for LinalgOperand for better error msg.

Previously, `LinalgOperand` is defined with `Type<Or<..,>>`, which produces
not very readable error messages when it is not matched, e.g.,

```
'linalg.generic' op operand #0 must be anonymous_326, but got ....
```

It is simply because the `description` property is not properly set.

This diff switches to use `AnyTypeOf` for `LinalgOperand`, which automatically
generates a description based on the allowed types provided.

As a result, the error message now becomes:

```
'linalg.generic' op operand #0 must be ranked tensor of any type values or strided memref of any type values, but got ...
```

Which is clearer and more informative.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D84428
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
Commit 2918727588bbf38ac844fff70c6aa3d2dafbec1c by mascasa
[libFuzzer] Do not link pthreads on Android.

Android has pthreads included in bionic and doesn't recognize -lpthread.
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt
Commit 9fdd0df9497e5b74a3739e651d218c1251b8ef78 by pifon
[mlir][nfc] Rename `promoteMemRefDescriptors` to `promoteOperands`.

`promoteMemRefDescriptors` also converts types of every operand, not only
memref-typed ones. I think `promoteMemRefDescriptors` name does not imply that.

Differential Revision: https://reviews.llvm.org/D85325
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
Commit 40626184cf95a08f8c62192fa19cd8a71a476206 by clementval
[flang][NFC] Unify OpenMP and OpenACC structure checker

This patch remove duplicated code between the check-omp-structure and the check-acc-structure
and unify it into a check-directive-structure templated class.

Reviewed By: kiranchandramohan, sscalpone, ichoyjx

Differential Revision: https://reviews.llvm.org/D85104
The file was modifiedllvm/test/TableGen/directive1.td
The file was modifiedflang/lib/Semantics/check-acc-structure.cpp
The file was modifiedflang/lib/Semantics/check-acc-structure.h
The file was addedflang/lib/Semantics/check-directive-structure.h
The file was modifiedllvm/utils/TableGen/DirectiveEmitter.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedllvm/test/TableGen/directive2.td
The file was modifiedflang/test/Semantics/acc-clause-validity.f90
The file was modifiedflang/test/Semantics/omp-declarative-directive.f90
Commit 7ad60f6452ff483912776ef6eda4e28c60d9da6e by mitchell
[clang-format] fix BreakBeforeBraces.MultiLine with for each macros
Summary:
The MultiLine option in BreakBeforeBraces was only handling standard
control statement, leading to invalid indentation with for each macros:

Previous behavior:

/* invalid: brace should be on the same line */
Q_FOREACH(int a; list)
{
    foo();
}

/* valid */
Q_FOREACH(int longVariable;
          list)
{
    foo();
}

To fix this, simply add the TT_ForEachMacro kind in the list of
recognized control statements for the multiline option.

This is a fix for https://bugs.llvm.org/show_bug.cgi?id=44632

Reviewers: MyDeveloperDay, mitchell-stellar

Reviewed by: mitchell-stellar

Contributed by: vthib

Subscribers: cfe-commits

Tags: #clang, #clang-format, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D85304
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit a569a0af0d96512e1d914f2e966453391f4b9561 by spatel
[InstSimplify] add vector tests for icmp with mul nuw; NFC

Also, the naming was off on a couple of tests.
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
Commit f879c9b796210d0b2407d022e216cc4d907818a3 by spatel
[InstSimplify] fold icmp with mul nuw and constant operands

https://rise4fun.com/Alive/pZEr

  Name: mul nuw with icmp eq
  Pre: (C2 %u C1) != 0
  %a = mul nuw i8 %x, C1
  %r = icmp eq i8 %a, C2
    =>
  %r = false

  Name: mul nuw with icmp ne
  Pre: (C2 %u C1) != 0
  %a = mul nuw i8 %x, C1
  %r = icmp ne i8 %a, C2
    =>
  %r = true

There are potentially several other transforms we need to add based on:
D51625
...but it doesn't look like there was follow-up to that patch.
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
Commit fcb0d8163a4f3090cb85d77b459887cf1f84cc7e by rupprecht
[lldb/test] Use realpath consistently for test root file paths.

LLDB tests assume that tests are in the test tree (the `LLDB_TEST_SRC` env variable, configured by `dotest.py`).
If this assertion doesn't hold, tests fail in strange ways. An early place this goes wrong is in `compute_mydir` which does a simple length-based substring to get the relative path. Later, we use that path to chdir to. If the test file and test tree don't agree in realpath-ness (and therefore length), this will be a cryptic error of chdir-ing to a directory that does not exist.

The actual discrepency is that the places we look for `use_lldb_suite.py` don't use a realpath, but `dotest.py` does (see initialization of `configuration.testdirs`).

It doesn't particularly matter whether we use realpath or abspath to canonicalize things, but many places end up with implicit dependencies on the canonicalized pwd being a realpath, so make them realpath consistently. Also, in the `compute_mydir` method mentioned, raise an error if the path types don't agree.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85258
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/test/API/use_lldb_suite.py
The file was modifiedlldb/packages/Python/lldbsuite/__init__.py
Commit e8760bb9a8a3a22fe22302ffe1932c13c3fcff8e by spatel
[InstSimplify] fold icmp with mul nsw and constant operands

https://rise4fun.com/Alive/slvl

  Name: mul nsw with icmp eq
  Pre: (C2 % C1) != 0
  %a = mul nsw i8 %x, C1
  %r = icmp eq i8 %a, C2
    =>
  %r = false

  Name: mul nsw with icmp ne
  Pre: (C2 % C1) != 0
  %a = mul nsw i8 %x, C1
  %r = icmp ne i8 %a, C2
    =>
  %r = true

Follow-up to the 'nuw' variation added with:
rGf879c9b79621
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 3e52667433881f42ff95ac6775b1ef1a3edd68cd by Matthew.Arsenault
AMDGPU: Fix verifier error with undef source producing s_bitset*

This needs to preserve the undef flag.
The file was modifiedllvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
The file was addedllvm/test/CodeGen/AMDGPU/shrink-insts-scalar-bit-ops.mir
The file was addedllvm/test/CodeGen/AMDGPU/shrink-insts-undef-reg-verifier-error.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/andorbitset.ll
Commit b1dac0cfcd3630c9a89bd31f9010eb8e8f099f6c by Matthew.Arsenault
AMDGPU: Remove leftover test
The file was removedllvm/test/CodeGen/AMDGPU/shrink-insts-undef-reg-verifier-error.ll
Commit 48378a32af54af6ae656a3db14dc7c0d975d0f48 by antiagainst
[spirv] Fix bitwidth emulation for Workgroup storage class

If Int16 is not available, 16-bit integers inside Workgroup storage
class should be emulated via 32-bit integers. This was previously
broken because the capability querying logic was incorrectly
intercepting all storage classes where it meant to only handle
interface storage classes. Adjusted where we return to fix this.

Differential Revision: https://reviews.llvm.org/D85308
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
The file was modifiedmlir/test/Conversion/StandardToSPIRV/alloc.mlir
Commit 43c0c9252a3151660f8549e0e54e788b922b7d98 by Matthew.Arsenault
AMDGPU: Refactor buffer atomic intrinsic lowering

Move raw/struct buffer atomic lowering to separate functions. This
avoids a long nested switch, and simplifies a future patch.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
Commit 1d25d0734a15d03f1356735719e04a517a1a8a96 by lebedev.ri
[NFC][InstCombine] Add tests for negation of old-style [n]abs, select-of-op-vs-negation-of-op
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit f3056dcc02d5dcde1669f61084a940e1ded3dfda by lebedev.ri
[InstCombine] Negator: -(cond ? x : -x)  -->  cond ? -x : x

We were errneously only doing that for old-style abs/nabs,
but we have no such legality check on the condition of the select.

https://rise4fun.com/Alive/xBHS
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit 0d03b3901d38484683cd9d6d0d6382967599e92b by antiagainst
[mlir][StandardToSPIRV] Use spv.UMod for index re-calculation

Per Vulkan's SPIR-V environment spec: "While the OpSRem and OpSMod
instructions are supported by the Vulkan environment, they require
non-negative values and thus do not enable additional functionality
beyond what OpUMod provides."

The `getOffsetForBitwidth` function is used for lowering std.load
and std.store, whose indices are of `index` type and cannot be
negative. So we should be okay to use spv.UMod directly here to
be exact. Also made the comment explicit about the assumption.

Differential Revision: https://reviews.llvm.org/D83714
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
Commit d3ac30188666b182daa87d23533543543b789e97 by kadircet
[clangd] Disable define out-of-line code action on templates

Differential Revision: https://reviews.llvm.org/D85310
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
Commit b0c50ef759d368b33731d0261cae78117c3accdd by mascasa
Revert "Add libFuzzer shared object build output"

This reverts commit 98d91aecb26a51225242332e73ed454c0f6cac5e since it
breaks on platforms without libstdc++.
The file was modifiedllvm/docs/LibFuzzer.rst
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt
Commit 618db6803d6c8b453abe6a1e92938ee20ac3aff6 by kadircet
[clangd][NFC] Delete dead code in ExtractFunction code action
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
Commit 83eaf5d55db34b380c33aff05a1790c95a8f06a4 by Matthew.Arsenault
AMDGPU: Eliminate BUFFER_ATOMIC_PK_ADD_F16 node

This is redundant with the other no return buffer atomic node, and we
don't really need a separate type profile for it.
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 8dc43852e4a8a5c6680d52aa6e73a75aef5a5954 by aeubanks
[Driver] Accept -fno-lto in clang-cl

Some compiler-rt tests check for the presence of the compiler accepting
-fno-lto to add that flag. Otherwise some tests don't link due to
-flto mismatch between compiling and linking.

$ cmake ... -DLLVM_ENABLE_LTO=Thin ...
$ ninja projects/compiler-rt/lib/sanitizer_common/tests/Sanitizer-x86_64-Test.exe
previously failed, now links.

Reviewed By: hans

Differential Revision: https://reviews.llvm.org/D85252
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/cl-options.c
Commit 9e6a1e5781d09abd91d7a3cbbc65ae7761cf9aac by aeubanks
[NewPM][LoopRotate] Rename rotate -> loop-rotate

To match legacy pass name.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85338
The file was modifiedllvm/test/Transforms/LoopRotate/basic.ll
The file was modifiedllvm/test/Transforms/LoopRotate/freeze-crash.ll
The file was modifiedllvm/test/Transforms/LoopRotate/multiple-deopt-exits.ll
The file was modifiedllvm/test/Transforms/LoopRotate/pr35210.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
Commit ea7d0e2996ec6b72a08dbef26dadf217458ab382 by Stanislav.Mekhanoshin
[AMDGPU] gfx1031 target

Differential Revision: https://reviews.llvm.org/D85337
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedclang/include/clang/Basic/Cuda.h
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/idot8s.ll
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_new.s
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.sdot4.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.sdot8.ll
The file was modifiedclang/test/Driver/amdgpu-macros.cl
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx1030_dasm_new.txt
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.csub.ll
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmad.s32.mir
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_err.s
Commit 105608a4c2821ca8f8340104614c1176ed1ed82d by Stanislav.Mekhanoshin
[AMDGPU] Added missing gfx1031 cases to CGOpenMPRuntimeGPU.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
Commit ec8c172d01eb14eba890f36205da0613dda7f742 by Matthew.Arsenault
AMDGPU: Correct prolog SP initialization logic

Having callees that will read SP is not the only reason we need to
reference the stack pointer.
The file was modifiedllvm/test/CodeGen/AMDGPU/non-entry-alloca.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
Commit 7d057efddc00ba7d03e6e684f23dd9b09fbd0527 by tra
[CUDA] Work around a bug in rint/nearbyint caused by a broken implementation provided by CUDA.

Normally math functions are forwarded to __nv_* counterparts provided by CUDA's
libdevice bitcode. However, __nv_rint*()/__nv_nearbyint*() functions there have
a bug -- they use round() which rounds *up* instead of rounding towards the
nearest integer, so we end up with rint(2.5f) producing 3.0 instead of expected
2.0. The broken bitcode is not actually used by NVCC itself, which has both a
work-around in CUDA headers and, in recent versions, uses correct
implementations in NVCC's built-ins.

This patch implements equivalent workaround and directs rint*/nearbyint* to
__builtin_* variants that produce correct results.

Differential Revision: https://reviews.llvm.org/D85236
The file was modifiedclang/lib/Headers/__clang_cuda_math.h
Commit 1dbac09dd6ec8587ae7e16ed669bf73889a21957 by rupprecht
[lldb/test] Support git commit version ids for clang.

`getCompilerVersion` assumes that `clang --version` prints out a string like `version [0-9\.]+`.
If clang is built from trunk, the version line might look like `clang version trunk (123abc)`.

Since there isn't any way of knowing by the commit id alone whether one commit is newer or older than another git commit (or clang version), assume that clang with a version id like this is very close to trunk. For example, any tests with `@skipIf(compiler="clang", compiler_version=['<', '8'])` should be run.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D85248
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 20a568c29db0117a6f32861826fedbb33329e759 by rahmanl
[Propeller]: Use a descriptive temporary symbol name for the end of the basic block.

This patch changes the functionality of AsmPrinter to name the basic block end labels as LBB_END${i}_${j}, with ${i} being the identifier for the function and ${j} being the identifier for the basic block. The new naming scheme is consistent with how basic block labels are named (.LBB${i}_{j}), and how function end symbol are named (.Lfunc_end${i}) and helps to write stronger tests for the upcoming patch for BB-Info section (as proposed in https://lists.llvm.org/pipermail/llvm-dev/2020-July/143512.html). The end label is used with basicblock-labels (BB-Info section in future) and basicblock-sections to compute the size of basic blocks and basic block sections, respectively. For BB sections, the section containing the entry basic block will not have a BB end label since it already gets the function end-label.
This label is cached for every basic block (CachedEndMCSymbol) like the label for the basic block (CachedMCSymbol).

Differential Revision: https://reviews.llvm.org/D83885
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-clusters.ll
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-listbb.ll
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections.ll
The file was modifiedllvm/test/DebugInfo/X86/basic-block-sections_1.ll
Commit 0bcda1a26130e1e91903db6f7e51d821cf3fe85b by Stanislav.Mekhanoshin
[AMDGPU] Scavenge temp reg for AGPR spill

Differential Revision: https://reviews.llvm.org/D85234
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was addedllvm/test/CodeGen/AMDGPU/spill-agpr.mir
Commit 40470eb27a5c97b01e89d8825626487b0682abec by georgios.rokos
[libomptarget][NFC] Replace `%ld` with PRId64 for data of type int64_t.

The standard way of printing `int64_t` data is via the PRId64 macro, `ld`
is for `long int` and int64_t is not guaranteed to be typedef'ed as `long int`
on all platforms. E.g. on Windows we get mismatch warnings.

Differential Revision: https://reviews.llvm.org/D85353
The file was modifiedopenmp/libomptarget/src/rtl.cpp
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit f3b41502554f2948ad00531dde7c3f53973de960 by gyurgyikcp
[libc] Add strspn implementation and std::bitset

Reviewed By: sivachandra, abrachet

Differential Revision: https://reviews.llvm.org/D85103
The file was addedlibc/test/src/string/strspn_test.cpp
The file was modifiedlibc/test/src/string/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/src/string/strspn.cpp
The file was modifiedlibc/utils/CPP/CMakeLists.txt
The file was addedlibc/test/utils/CPP/bitset_test.cpp
The file was addedlibc/utils/CPP/Bitset.h
The file was modifiedlibc/test/utils/CMakeLists.txt
The file was addedlibc/test/utils/CPP/CMakeLists.txt
The file was modifiedlibc/src/string/CMakeLists.txt
The file was addedlibc/src/string/strspn.h
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
Commit 41b1aefecb9447620dd182b0352abed0df05665c by jdenny.ornl
[OpenMP] Fix `present` diagnostic for array extension

For example, without this patch, the following fails as expected with
or without the `present` modifier, but the `present` modifier doesn't
produce its usual diagnostic:

```
#pragma omp target data map(alloc: arr[0:2])
{
   #pragma omp target map(present, tofrom: arr[0:100]) // not fully present
   ;
}
```

Reviewed By: grokos, vzakhari

Differential Revision: https://reviews.llvm.org/D85320
The file was addedopenmp/libomptarget/test/mapping/present/target_data_array_extension.c
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was addedopenmp/libomptarget/test/mapping/present/target_array_extension.c
Commit 8c8bb128dfd09f84b27b9e732cf1355582b1d019 by jdenny.ornl
[OpenMP] Fix `target data` exit for array extension

For example:

```
#pragma omp target data map(tofrom:arr[0:100])
{
   #pragma omp target exit data map(delete:arr[0:100])
   #pragma omp target enter data map(alloc:arr[98:2])
}
```

Without this patch, the transfer at the end of the target data region
is broken and fails depending on the target device.  According to my
read of the spec, the transfer shouldn't even be attempted because
`arr[0:100]` isn't (fully) present there.  To fix that, this patch
makes `DeviceTy::getTgtPtrBegin` return null for this case.

Reviewed By: grokos

Differential Revision: https://reviews.llvm.org/D85342
The file was addedopenmp/libomptarget/test/mapping/target_data_array_extension_at_exit.c
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit f496950001c47724867912d863858db0a81b4309 by tlively
[WebAssembly] Fix types in wasm_simd128.h and add tests

47f7174ffa changed the types used in the Wasm SIMD builtin functions,
but not all of their uses in wasm_simd128.h were updated. This commit
fixes wasm_simd128.h and adds tests to make sure similar problems do
not pass uncaught in the future.

Differential Revision: https://reviews.llvm.org/D85347
The file was modifiedclang/lib/Headers/wasm_simd128.h
The file was addedclang/test/Headers/wasm.cpp
The file was addedclang/test/Headers/wasm.c
Commit 0315571a19bb27da1b68088b07f1368747dd9438 by spatel
[InstCombine] add tests for icmp with mul nsw/nuw; NFC
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
Commit c66169136fe667d653ff40ba4bd9f6047702e93c by spatel
[InstCombine] fold icmp with 'mul nsw/nuw' and constant operands

This also removes a more specific fold that only handled icmp with 0.

https://rise4fun.com/Alive/sdM9

  Name: mul nsw with icmp eq
  Pre: (C1 != 0) && (C2 % C1) == 0
  %a = mul nsw i8 %x, C1
  %r = icmp eq i8 %a, C2
    =>
  %r = icmp eq i8 %x, C2 / C1

  Name: mul nuw with icmp eq
  Pre: (C1 != 0) && (C2 %u C1) == 0
  %a = mul nuw i8 %x, C1
  %r = icmp eq i8 %a, C2
    =>
  %r = icmp eq i8 %x, C2 /u C1

  Name: mul nsw with icmp ne
  Pre: (C1 != 0) && (C2 % C1) == 0
  %a = mul nsw i8 %x, C1
  %r = icmp ne i8 %a, C2
    =>
  %r = icmp ne i8 %x, C2 / C1

  Name: mul nuw with icmp ne
  Pre: (C1 != 0) && (C2 %u C1) == 0
  %a = mul nuw i8 %x, C1
  %r = icmp ne i8 %a, C2
    =>
  %r = icmp ne i8 %x, C2 /u C1
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
Commit 076b120bebfd727b502208601012a44ab2e1028e by richard
CFG: Destroy temporaries in (a,b) expression in the correct order.
The file was modifiedclang/lib/Analysis/CFG.cpp
The file was modifiedclang/test/Analysis/cfg.cpp
Commit df46f174db5bbedb66d77041308d48e701c77e96 by Jonas Devlieghere
[lldb] Modify the `skipIfRemote` decorator so we can skip all PExpect tests.

This patch modifies the skipIfRemote decorator so it can apply to a
whole class, which allows us to skip all PExpect tests as a whole.

Differential revision: https://reviews.llvm.org/D85365
The file was modifiedlldb/packages/Python/lldbsuite/test/decorators.py
The file was modifiedlldb/test/API/commands/gui/basic/TestGuiBasic.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbpexpect.py
The file was modifiedlldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py
The file was modifiedlldb/test/API/driver/batch_mode/TestBatchMode.py
The file was modifiedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
The file was modifiedlldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py
Commit 31137b87efc12b1d8cdd8307bcddb986e5c23c61 by Jonas Devlieghere
[lldb] Skip TestProcessConnect when running remotely

This test doesn't make much sense when already running remotely.
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
Commit e1de85f9f4dae68b2c83d8821515c1f5db765baa by gclayton
Add verification for DW_AT_decl_file and DW_AT_call_file.

LTO builds have been creating invalid DWARF and one of the errors was a file index that was out of bounds. "llvm-dwarfdump --verify" will check all file indexes for line tables already, but there are no checks for the validity of file indexes in attributes.

The verification will verify if there is a DW_AT_decl_file/DW_AT_call_file that:
- there is a line table for the compile unit
- the file index is valid
- the encoding is appropriate

Tests are added that test all of the above conditions.

Differential Revision: https://reviews.llvm.org/D84817
The file was addedllvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes.yaml
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/verify_debug_info.s
The file was addedllvm/test/tools/llvm-dwarfdump/X86/verify_file_encoding.yaml
The file was addedllvm/test/tools/llvm-dwarfdump/X86/verify_attr_file_indexes_no_files.yaml
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
Commit b2ab375d1f08ab0faecc20f0340cb972f31010a7 by zinenko
[mlir] use the new stateful LLVM type translator by default

Previous type model in the LLVM dialect did not support identified structure
types properly and therefore could use stateless translations implemented as
free functions. The new model supports identified structs and must keep track
of the identified structure types present in the target context (LLVMContext or
MLIRContext) to avoid creating duplicate structs due to LLVM's type
auto-renaming. Expose the stateful type translation classes and use them during
translation, storing the state as part of ModuleTranslation.

Drop the test type translation mechanism that is no longer necessary and update
the tests to exercise type translation as part of the main translation flow.

Update the code in vector-to-LLVM dialect conversion that relied on stateless
translation to use the new class in a stateless manner.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85297
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
The file was removedmlir/test/lib/Target/TestLLVMTypeTranslation.cpp
The file was removedmlir/test/lib/Target/CMakeLists.txt
The file was modifiedmlir/test/Target/import.ll
The file was modifiedmlir/tools/mlir-translate/mlir-translate.cpp
The file was modifiedmlir/test/Target/llvmir-types.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Target/LLVMIR/TypeTranslation.cpp
The file was modifiedmlir/test/lib/CMakeLists.txt
The file was modifiedmlir/include/mlir/Target/LLVMIR/TypeTranslation.h
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
Commit 927afdffbb1deebd83b86d024b67687d758521d0 by Jonas Devlieghere
[lldb] Skip test_launch_simple on Windows

Because stdio manipulation unsupported on Windows.
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
Commit 13796d14238baabff972e15ceddb4ae61b1584b8 by craig.topper
[X86] Add test case for PR47000. NFC
The file was addedllvm/test/CodeGen/X86/pr47000.ll
Commit 08b2d0a963dbbf54317a137d69f430b347d1bfae by craig.topper
[X86] Disable copy elision in LowerMemArgument for scalarized vectors when the loc VT is a different size than the original element.

For example a v4f16 argument is scalarized to 4 i32 values. So
the values are spread out instead of being packed tightly like
in the original vector.

Fixes PR47000.
The file was modifiedllvm/test/CodeGen/X86/pr47000.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 4103f4a936ae6eb060d84d007b1d64c17ddf1a91 by aeubanks
[MSSA][NewPM] Handle tests with -print-memoryssa

-print-memoryssa in legacy PM is print<memoryssa> in NPM.
Pin tests with -print-memoryssa to legacy PM.
Add corresponding tests for NPM where missing.
This fixes "unknown pass name 'print-memoryssa'".

Some tests still fail in Analysis/MemorySSA due to other passes that
haven't been ported.

pr43427.ll and pr43438.ll required adding -aa-pipeline=basic-aa,
-loop-simplify (since it doesn't run on legacy PM by default), and
decrementing some of the MemoryPhi numbers.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D85333
The file was modifiedllvm/test/Analysis/MemorySSA/atomic-clobber.ll
The file was modifiedllvm/test/Analysis/MemorySSA/scalable-vec.ll
The file was modifiedllvm/test/Analysis/MemorySSA/load-invariant.ll
The file was modifiedllvm/test/Analysis/MemorySSA/phi-translation.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr43438.ll
The file was modifiedllvm/test/Analysis/MemorySSA/debugvalue2.ll
The file was modifiedllvm/test/Analysis/MemorySSA/optimize-use.ll
The file was modifiedllvm/test/Analysis/MemorySSA/function-clobber.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr43317.ll
The file was modifiedllvm/test/Analysis/MemorySSA/invariant-groups.ll
The file was modifiedllvm/test/Analysis/MemorySSA/loop-rotate-disablebasicaa.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr41640.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr36883.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr28880.ll
The file was modifiedllvm/test/Analysis/MemorySSA/basicaa-memcpy.ll
The file was modifiedllvm/test/Analysis/MemorySSA/multiple-backedges-hal.ll
The file was modifiedllvm/test/Analysis/MemorySSA/many-dom-backedge.ll
The file was modifiedllvm/test/Analysis/MemorySSA/loop_rotate_remove_trivial_phis.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr43427.ll
The file was modifiedllvm/test/Analysis/MemorySSA/ptr-const-mem.ll
The file was modifiedllvm/test/Analysis/MemorySSA/many-doms.ll
The file was modifiedllvm/test/Analysis/MemorySSA/update_unroll.ll
The file was modifiedllvm/test/Analysis/MemorySSA/multi-edges.ll
The file was modifiedllvm/test/Analysis/MemorySSA/no-disconnected.ll
The file was modifiedllvm/test/Analysis/MemorySSA/function-mem-attrs.ll
The file was modifiedllvm/test/Analysis/MemorySSA/assume.ll
The file was modifiedllvm/test/Analysis/MemorySSA/constant-memory.ll
The file was modifiedllvm/test/Analysis/MemorySSA/cyclicphi.ll
The file was modifiedllvm/test/Analysis/MemorySSA/volatile-clobber.ll
The file was modifiedllvm/test/Analysis/MemorySSA/lifetime-simple.ll
The file was modifiedllvm/test/Analysis/MemorySSA/multiple-locations.ll
Commit 978165bf02776a2b957c795a5c1d94f9f208fc8e by craig.topper
[X86] Rename mod128.ll to divmod128.ll and add test cases for sdiv/udiv/urem.

This improves code coverage on the switch in LowerWin64_i128OP.
The file was addedllvm/test/CodeGen/X86/divmod128.ll
The file was removedllvm/test/CodeGen/X86/mod128.ll
Commit 1adc494bce44f6004994deed61b30d4b71fe1d05 by phosek
[CMake] Simplify CMake handling for zlib

Rather than handling zlib handling manually, use find_package from CMake
to find zlib properly. Use this to normalize the LLVM_ENABLE_ZLIB,
HAVE_ZLIB, HAVE_ZLIB_H. Furthermore, require zlib if LLVM_ENABLE_ZLIB is
set to YES, which requires the distributor to explicitly select whether
zlib is enabled or not. This simplifies the CMake handling and usage in
the rest of the tooling.

This is a reland of abb0075 with all followup changes and fixes that
should address issues that were reported in PR44780.

Differential Revision: https://reviews.llvm.org/D79219
The file was modifiedcompiler-rt/test/lit.common.configured.in
The file was modifiedllvm/test/lit.site.cfg.py.in
The file was modifiedlldb/cmake/modules/LLDBStandalone.cmake
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
The file was modifiedlld/test/CMakeLists.txt
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedllvm/cmake/config-ix.cmake
The file was modifiedllvm/lib/Support/Compression.cpp
The file was modifiedllvm/include/llvm/Config/config.h.cmake
The file was modifiedllvm/unittests/Support/CompressionTest.cpp
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
The file was modifiedllvm/utils/gn/secondary/lld/test/BUILD.gn
The file was modifiedllvm/test/CMakeLists.txt
The file was modifiedclang/test/CMakeLists.txt
The file was modifiedllvm/lib/Support/CRC.cpp
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
The file was modifiedlld/test/lit.site.cfg.py.in
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
Commit b216c80cc2496b87bf827260ce7e24dc62247d71 by i
[ELF] Allow SHF_LINK_ORDER sections to have sh_link=0

Part of https://bugs.llvm.org/show_bug.cgi?id=41734

The semantics of SHF_LINK_ORDER have been extended to represent metadata
sections associated with some other sections (usually text).

The associated text section may be discarded (e.g. LTO) and we want the
metadata section to have sh_link=0 (D72899, D76802).

Normally the metadata section is only referenced by the associated text
section. sh_link=0 means the associated text section is discarded, and
the metadata section will be garbage collected. If there is another
section (.gc_root) referencing the metadata section, the metadata
section will be retained. It's the .gc_root consumer's job to validate
the metadata sections.

  # This creates a SHF_LINK_ORDER .meta with sh_link=0
  .section .meta,"awo",@progbits,0
  1:
  .section .meta,"awo",@progbits,foo
  2:

  .section .gc_root,"a",@progbits
  .quad 1b
  .quad 2b

Reviewed By: pcc, jhenderson

Differential Revision: https://reviews.llvm.org/D72904
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedlld/ELF/Writer.cpp
The file was addedlld/test/ELF/linkorder-mixed.s
The file was removedlld/test/ELF/invalid/linkorder-invalid-sec2.test
The file was modifiedlld/ELF/InputFiles.cpp
Commit 820e8d8656ecf65ba29ea27c794c833f230c2698 by Jan Korous
[Analyzer][WebKit] UncountedLambdaCaptureChecker

Differential Revision: https://reviews.llvm.org/D82837
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was addedclang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp
The file was modifiedclang/docs/analyzer/checkers.rst
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
Commit eb45b978b7d646a7fb96a2734e44d03b2a066dfa by i
[ELF][test] Add REQUIES: x86 and -triple=x86_64 to linkorder-mixed.s
The file was modifiedlld/test/ELF/linkorder-mixed.s
Commit 279e4cf78262dfef560631d643b85aa2032ac566 by i
[ELF] Fix type of ciesWithLSDA after D84610
The file was modifiedlld/ELF/SyntheticSections.cpp
Commit dd892a33e1ec28ff430c74b67d076344c51e4acb by llvmgnsyncbot
[gn build] Port 820e8d8656e
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Commit 39379916a7f01d907562c1b70114568dac1778a2 by ajcbik
[mlir] [VectorOps] Add masked load/store operations to Vector dialect

The intrinsics were already supported and vector.transfer_read/write lowered
direclty into these operations. By providing them as individual ops, however,
clients can used them directly, and it opens up progressively lowering transfer
operations at higher levels (rather than direct lowering to LLVM IR as done now).

Reviewed By: bkramer

Differential Revision: https://reviews.llvm.org/D85357
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-maskedload.mlir
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-maskedstore.mlir
Commit beb9993d960bebc14f25538fa4b596f2d8ca75ac by asbirlea
[MSSA] Update test with more detailed and resilient checks. [NFC]
The file was modifiedllvm/test/Analysis/MemorySSA/pr43427.ll
Commit 8b9e86fea66fb626173bd62e1f8775fcfea69a6b by smeenai
[lld-macho] Fix errant search and replace. NFC
The file was modifiedlld/test/MachO/framework.s
Commit 3af4039876a148a841aecfae89d356033d022c74 by i
[ELF][test] Add another -triple=x86_64 to linkorder-mixed.s

Fixes an error on macOS:
error: mach-o section specifier uses an unknown section type
The file was modifiedlld/test/ELF/linkorder-mixed.s
Commit fd86d67b82830f1365e1e25fd138832b475bc1e7 by aqjune
[JumpThreading] Add a test that duplicates insts of a basic block with cond br to preds; NFC
The file was addedllvm/test/Transforms/JumpThreading/phi-copy-to-pred.ll
Commit 9f717d7b941fbc42bef017b84c4dd0f65ce06e7a by aqjune
[JumpThreading] Allow duplicating a basic block into preds when its branch condition is freeze(phi)

This is the last JumpThreading patch for getting the performance numbers shown at
https://reviews.llvm.org/D84940#2184653 .

This patch makes ProcessBlock call ProcessBranchOnPHI when the branch condition
is freeze(phi) as well (originally it calls the function when the condition is
phi only).

Since what ProcessBranchOnPHI does is to duplicate the basic block into
predecessors if profitable, it is still valid when the condition is freeze(phi)
too.

```
    p = phi [a, pred1] [b, pred2]
    p.fr = freeze p
    br p.fr, ...
=>
  pred1:
    p.fr = freeze a
    br p.fr, ...
  pred2:
    p.fr2 = freeze b
    br p.fr2, ...
```

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85029
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/test/Transforms/JumpThreading/phi-copy-to-pred.ll
Commit 6d2d73059fda5a63f2b34a9482acc0445e0956a4 by tkeith
[flang] Fix compilation warning in check-directive-structure.h

Clang 9 gets the following warning after revision `D85104`.
```
../../flang/lib/Semantics/check-directive-structure.h:36:7: error: 'Fortran::semantics::DirectiveStructureChecker<llvm::omp::Directive, llvm::omp::Clause, Fortran::parser::OmpClause, 77>' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
```

The fix is the make the destructor virtual. Neither it nor the
constructor need to be public, so make them protected.

Differential Revision: https://reviews.llvm.org/D85383
The file was modifiedflang/lib/Semantics/check-directive-structure.h
Commit 3a538de653607b7602a870d63b13dd51638c1424 by Jonas Devlieghere
[lldb] Make UBSan tests remote ready

Add missing call to registerSanitizerLibrariesWithTarget.
The file was modifiedlldb/test/API/functionalities/ubsan/basic/TestUbsanBasic.py
The file was modifiedlldb/test/API/functionalities/ubsan/user-expression/TestUbsanUserExpression.py
Commit 5ddc8b49babbbad8b00de6bd410b77c9ade8b325 by ruiling.song
[AMDGPU] add buffer_atomic_swap for float

The functionality is used when calling imageAtomicExhange() on float
type imageBuffer in Graphics shaders.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D85187
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.atomic.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.atomic.ll
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
Commit ada4ee7cb8ffff844ade2611aa0475728c1fd17a by aeubanks
[NewPM][opt] Add more codegen passes

Reduces number of failures by 92.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85381
The file was modifiedllvm/tools/opt/opt.cpp
Commit 0ee1eba58114d4cbe9d2c976e39887b6df4508f7 by Matthew.Arsenault
AMDGPU: Remove ATOMIC_PK_FADD

The f32 and v2f16 cases should be handled the same way.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
Commit 08063f85a7eadb1e54d0a03e0307bf15319513e8 by jingham
"|" used when "||" was meant in SBTarget::FindFunctions
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
The file was modifiedlldb/source/API/SBTarget.cpp
Commit 1c1ffa6a300a60c81be41a3e08a4e9da7499adc1 by jingham
GetPath() returns a std::string temporary.  You can't reference just the c_str.

Found by the static analyzer.
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Commit 633e3dacf27ea4950b7067803502490597ba96e0 by phosek
[CMake] Print the autodetected host linker version

There's no easy way to find out what the autodetected version is, but
sometimes it may be useful to confirm that the right version is being
used. Print it as CMake status message.

Differential Revision: https://reviews.llvm.org/D85362
The file was modifiedclang/CMakeLists.txt
Commit 4fccdd5c85d05b3b03d029f533762e233259573c by Jonas Devlieghere
[lldb] Fix bug in skipIfRosetta decorator

Currently, the skipIfRosetta decorator will skip tests with the message
"not on macOS" on all platforms that are not `darwin` or `macosx`.
Instead, it should only check the platform and architecture when running
on these platforms.

This triggers for example when running the test suite on device.

Differential revision: https://reviews.llvm.org/D85388
The file was modifiedlldb/packages/Python/lldbsuite/test/decorators.py
Commit ba8683f29290f9ccc16b9403d537241c1e25c4f9 by Lang Hames
[JITLink][MachO][AArch64] More PAGEOFF12 relocation fixes.

Correctly sign extend the addend, and fix implicit shift operand decoding
(it incorrectly returned 0 for some cases), and check that the initial
encoded immediate is 0.
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_relocations.s
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
Commit 9097ef84ce590dd002c972522d08c1de1329a7ce by Jonas Devlieghere
[lldb] Remove pointless assign to found_suffix (NFC)
The file was modifiedlldb/source/Utility/Args.cpp
Commit bac1a0839f34dc3c1c43ca7efc58a5f1bc2f9978 by douglas.yung
Fix typo in test. Thanks to Andrew Ng for spotting this!
The file was modifiedllvm/test/Transforms/NewGVN/todo-pr42422-phi-of-ops.ll
Commit 0215ae9735376ab527f32a68b2fcc9eb540f48c8 by craig.topper
[X86] Remove incomplete custom handling of i128 sdivrem/udivrem on Windows.

We need to have special handling of i128 div/rem on Windows due
to a weird calling convention needed for the libcall. There was
also some code that made it look like we do the same for sdivrem/udiv,
but the code didn't account for multiple return values of those
functions so couldn't possibly work. I think this code never
triggers because we don't have libcall names defined for those
functions by default so DAGCombine never creates DIVREM nodes.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 92f1f1e40d4c99c36754a9e527f071d80c276770 by yedeng.yd
[Coroutines] Use  to collect lifetime marker of  in CoroFrame Differential Revision: https://reviews.llvm.org/D85279
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was addedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll
The file was addedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll
Commit 5eedc01a82436f3c4cc9da1db62d850fec35d62b by martin
[ARM, AArch64] Fix a comment typo. NFC.
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h
The file was modifiedllvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
Commit f5e6fbac24f198d075a7c4bc0879426e79040bcf by martin
[AArch64] [Windows] Error out on unsupported symbol locations

These might occur in seemingly generic assembly. Previously when
targeting COFF, they were silently ignored, which certainly won't
give the right result. Instead clearly error out, to make it clear
that the assembly needs to be adjusted for this target.

Also change a preexisting report_fatal_error into a proper error
message, pointing out the offending source instruction. This isn't
strictly an internal error, as it can be triggered by user input.

Differential Revision: https://reviews.llvm.org/D85242
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
The file was addedllvm/test/MC/AArch64/coff-relocations-diags.s
Commit fc0e8fb7874a73277b221e3f940b749cdd0a99d7 by l.lunak
[lldb][gui] truncate long lines/names if needed

Without this, sources with long lines or variable names may overwrite
panel frames, or even overrun to the following line. There's currently
no way to scroll left/right in the views, so that should be added
to handle these cases.
This commit includes fixing constness of some Window functions,
and also makes PutCStringTruncated() consistent with the added
printf-like variant to take the padding as the first argument (can't
add it after the format to the printf-like function).

Differential Revision: https://reviews.llvm.org/D85123
The file was addedlldb/test/API/commands/gui/viewlarge/main.c
The file was addedlldb/test/API/commands/gui/viewlarge/Makefile
The file was addedlldb/test/API/commands/gui/viewlarge/TestGuiViewLarge.py
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 14406ca01fd3f401742b0f78f3780f62f3934468 by l.lunak
[lldb][gui] use syntax highlighting also in gui mode

Use the same functionality as the non-gui mode, the colors just
need translating to curses colors.

Differential Revision: https://reviews.llvm.org/D85145
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 4a8e4b5c744791da629ec4a282acdf536f4471dd by l.lunak
[lldb][gui] use names for color pairs, instead of magic numbers

Differential Revision: https://reviews.llvm.org/D85286
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 504a197fe54de83be791ea0aa2ed290f6b9285b0 by craig.topper
[X86] Rename X86::getImpliedFeatures to X86::updateImpliedFeatures and pass clang's StringMap directly to it.

No point in building a vector of StringRefs for clang to apply to the
StringMap. Just pass the StringMap and modify it directly.
The file was modifiedllvm/include/llvm/Support/X86TargetParser.h
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedclang/lib/Basic/Targets/X86.cpp
Commit 86711668330cf48325a5e960f30d33f6a7364db2 by platonov.aleksandr
[clang-tidy] Fix bugprone-bad-signal-to-kill-thread crash when `SIGTERM` was undefined after definition.

`PP->getMacroInfo()` returns nullptr for undefined macro, which leads to null-dereference at `MI->tockens().back()`.
Stack dump:
```
#0 0x000000000217d15a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/llvm-project/build/bin/clang-tidy+0x217d15a)
#1 0x000000000217b17c llvm::sys::RunSignalHandlers() (/llvm-project/build/bin/clang-tidy+0x217b17c)
#2 0x000000000217b2e3 SignalHandler(int) (/llvm-project/build/bin/clang-tidy+0x217b2e3)
#3 0x00007f39be5b1390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x0000000000593532 clang::tidy::bugprone::BadSignalToKillThreadCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/llvm-project/build/bin/clang-tidy+0x593532)
```

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D85401
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-bad-signal-to-kill-thread-undef-sigterm.cpp
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp
Commit 216ad2da74f0e952af8f1c8ac84e19146d739ff2 by platonov.aleksandr
[clang-tidy] Fix bugprone-bad-signal-to-kill-thread crash when `SIGTERM` is not a literal.

If `SIGTERM` is not a literal (e.g. `#define SIGTERM ((unsigned)15)`) bugprone-bad-signal-to-kill-thread check crashes.
Stack dump:
```
#0 0x000000000217d15a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/llvm-project/build/bin/clang-tidy+0x217d15a)
#1 0x000000000217b17c llvm::sys::RunSignalHandlers() (/llvm-project/build/bin/clang-tidy+0x217b17c)
#2 0x000000000217b2e3 SignalHandler(int) (/llvm-project/build/bin/clang-tidy+0x217b2e3)
#3 0x00007f6a7efb1390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x000000000212ac9b llvm::StringRef::getAsInteger(unsigned int, llvm::APInt&) const (/llvm-project/build/bin/clang-tidy+0x212ac9b)
#5 0x0000000000593501 clang::tidy::bugprone::BadSignalToKillThreadCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/llvm-project/build/bin/clang-tidy+0x593501)
```

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D85398
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-bad-signal-to-kill-thread-sigterm-not-a-literal.cpp
Commit e150d2cab8688a2b3b7d395bfbbc152b08df9033 by Alexander.Richardson
[update_cc_test_checks.py] Add test for D84511

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D85115
The file was modifiedclang/test/utils/update_cc_test_checks/basic-cplusplus.test
The file was modifiedclang/test/utils/update_cc_test_checks/lit.local.cfg
Commit 8803ebcf3b562172687321318c423f39f22b2e5b by Alexander.Richardson
Fix qsort() interceptor for FreeBSD

When the FreeBSD qsort() implementation recurses, it does so using an
interposable function call, so we end up calling the interceptor again
and set the saved comparator to wrapped_qsort_compar. This results in an
infinite loop and a eventually a stack overflow since wrapped_qsort_compar
ends up calling itself. This means that ASAN is completely broken on
FreeBSD for programs that call qsort(). I found this while running
check-all on a FreeBSD system a ASAN-instrumented LLVM.

Fix this by checking whether we are recursing inside qsort before writing
to qsort_compar. The same bug exists in the qsort_r interceptor, so use the
same approach there. I did not test the latter since the qsort_r function
signature does not match and therefore it's not intercepted on FreeBSD/macOS.

Fixes https://llvm.org/PR46832

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D84509
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
The file was addedcompiler-rt/test/sanitizer_common/TestCases/Posix/recursion-in-qsort.cpp
Commit 3b3cdcc7a557a7dbd53e9e8cc311247d6df46c5c by Alexander.Richardson
[lit] Remove ANSI control characters from xunit output

Failing test output sometimes contains control characters like \x1b (e.g.
if there was some -fcolor-diagnostics output) which are not allowed inside
XML files. This causes problems with CI systems: for example, the Jenkins
JUnit XML will throw an exception when ecountering those characters and
similar problems also occur with GitLab CI.

Reviewed By: yln, jdenny

Differential Revision: https://reviews.llvm.org/D84233
The file was addedllvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py
The file was modifiedllvm/utils/lit/tests/shtest-format.py
The file was modifiedllvm/utils/lit/lit/reports.py
The file was addedllvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_control_chars.txt
Commit 6148cca70888ead020a808279043fd013ca72a2a by Alexander.Richardson
[compiler-rt] Fix build of Sanitizer-Test_Nolibc after D80648

Running ninja check-sanitizer fails for after that patch (commit
058f5f6fd813d1ee1480497394d6fd44e65ec62b) with the following error:

libRTSanitizerCommon.test.nolibc.x86_64.a(sanitizer_posix.cpp.o): In
function `__sanitizer::GetNamedMappingFd(char const*, unsigned long,
int*)':
..../llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp:358:
undefined reference to `fcntl'
clang-12: error: linker command failed with exit code 1 (use -v to see
invocation)

This patch works around the problem by only calling fcntl if O_CLOEXEC
is not defined.

Reviewed By: plopresti

Differential Revision: https://reviews.llvm.org/D85114
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
Commit 4357986b411dd164932c66ebfe4a9cf96a7d74cd by Xing
[DWARFYAML][debug_info] Pull out dwarf::FormParams from DWARFYAML::Unit.

Unit.Format, Unit.Version and Unit.AddrSize are replaced with
dwarf::FormParams in D84496 to get rid of unnecessary functions
getOffsetSize() and getRefSize(). However, that change makes it
difficult to make AddrSize optional (Optional<uint8_t>). This change
pulls out dwarf::FormParams from DWARFYAML::Unit and use it as a helper
struct in DWARFYAML::emitDebugInfo().

Reviewed By: jhenderson, MaskRay

Differential Revision: https://reviews.llvm.org/D85296
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h
Commit 710949482edb96a329104317164909979f2387aa by ro
[clang][Driver] Don't hardcode --as-needed/--no-as-needed on Illumos

`ninja check-all` currently fails on Illumos:

  [84/716] Generating default/Asan-i386-inline-Test
  FAILED: projects/compiler-rt/lib/asan/tests/default/Asan-i386-inline-Test
  cd /var/llvm/dist-amd64-release/projects/compiler-rt/lib/asan/tests && /var/llvm/dist-amd64-release/./bin/clang ASAN_INST_TEST_OBJECTS.gtest-all.cc.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_globals_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_interface_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_internal_interface_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_oob_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_mem_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_str_test.cpp.i386-inline.o ASAN_INST_TEST_OBJECTS.asan_test_main.cpp.i386-inline.o -o /var/llvm/dist-amd64-release/projects/compiler-rt/lib/asan/tests/default/./Asan-i386-inline-Test -g --driver-mode=g++ -fsanitize=address -m32
  ld: fatal: unrecognized option '--no-as-needed'
  ld: fatal: use the -z help option for usage information
  clang-11: error: linker command failed with exit code 1 (use -v to see invocation)

`clang` unconditionally passes `--as-needed`/`--no-as-needed` to the
linker.  This works on Solaris 11.[34] which added a couple of option
aliases to the native linker to improve compatibility with GNU `ld`.
Illumos `ld` didn't do this, so one needs to use the corresponding
native options `-z ignore`/`-z record` instead.

Because this works on both Solaris and Illumos, the current patch always
passes the native options on Solaris.  This isn't fully correct, however:
when using GNU `ld` on Solaris (not yet supported; I'm working on that),
one still needs `--as-needed` instead.

I'm hardcoding this decision because a generic detection via a `cmake` test
is hard: many systems have their own implementation of `getDefaultLinker`
and `cmake` would have to duplicate the information encoded there.
Besides, it would still break when `-fuse-ld` is used.

Tested on `amd64-pc-solaris2.11` (Solaris 11.4 and OpenIndiana 2020.04),
`sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`.

Differential Revision: https://reviews.llvm.org/D84412
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
Commit 664e1784cd5ee742d74a95a018986e02d66908eb by lebedev.ri
[NFC][InstCombine] Add tests for comparisons between x and negation of x (PR39480)
The file was addedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 5060f5682b011d2a8c708b3c1b16bd4e0c408afb by lebedev.ri
[InstCombine] (-NSW x) s> x  --> x s< 0  (PR39480)

Name: (-x) s> x  -->  x s< 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp sgt i8 %neg_x, %x
  =>
%r = icmp slt i8 %x, 0

https://rise4fun.com/Alive/ZslD

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/include/llvm/IR/PatternMatch.h
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 8878b79cfe99e1ef36a265539329cd323e05a40d by lebedev.ri
[InstCombine] (-NSW x) ==/!= x  --> x ==/!= 0  (PR39480)

Name: (-x) == x  -->  x == 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp eq i8 %neg_x, %x
  =>
%r = icmp eq i8 %x, 0

Name: (-x) != x  -->  x != 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp ne i8 %neg_x, %x
  =>
%r = icmp ne i8 %x, 0

https://rise4fun.com/Alive/4slH

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 388520765157f1ce7e48e49179dc58781ae61f56 by lebedev.ri
[InstCombine] (-NSW x) s>= x  --> x s<= 0  (PR39480)

Name: (-x) s>= x  -->  x s<= 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp sge i8 %neg_x, %x
  =>
%r = icmp sle i8 %x, 0

https://rise4fun.com/Alive/Hdip

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 01a6c4bd26a599e877301568f77eb835d0a6e812 by lebedev.ri
[InstCombine] (-NSW x) s< x  --> x s> 0  (PR39480)

Name: (-x) s< x  -->  x > 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp slt i8 %neg_x, %x
  =>
%r = icmp sgt i8 %x, 0

https://rise4fun.com/Alive/3IXb

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 59387c0dd742be037a0393e8fef7fdffdbb84ec4 by lebedev.ri
[InstCombine] (-NSW x) s<= x  --> x s>= 0  (PR39480)

Name: (-x) s<= x  -->  x >= 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp sle i8 %neg_x, %x
  =>
%r = icmp sge i8 %x, 0

https://rise4fun.com/Alive/91k

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 16c642fa39d50dd066e364e0f258140a3dbaa64b by lebedev.ri
[InstCombine] (-NSW x) u> x  --> x s> 0  (PR39480)

Name: (-x) u> x  -->  x s> 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp ugt i8 %neg_x, %x
  =>
%r = icmp sgt i8 %x, 0

https://rise4fun.com/Alive/Raea

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 0e1241a3c9881d5cb3280bdb0c36712fae957694 by lebedev.ri
[InstCombine] (-NSW x) u>= x  --> x s>= 0  (PR39480)

Name: (-x) u>= x  -->  x s>= 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp uge i8 %neg_x, %x
  =>
%r = icmp sge i8 %x, 0

https://rise4fun.com/Alive/LLHd

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 132be1f502778ea8abd5f214908fc19d8535d786 by lebedev.ri
[InstCombine] (-NSW x) u< x  --> x s< 0  (PR39480)

Name: (-x) u< x  -->  x s< 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp ult i8 %neg_x, %x
  =>
%r = icmp slt i8 %x, 0

https://rise4fun.com/Alive/zSuf

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit 141357663e671636392c9973025ea723f423a9c4 by lebedev.ri
[InstCombine] (-NSW x) u<= x  --> x s<=0  (PR39480)

Name: (-x) u<= x  -->  x s<= 0
%neg_x = sub nsw i8 0, %x ; %x must not be INT_MIN
%r = icmp ule i8 %neg_x, %x
  =>
%r = icmp sle i8 %x, 0

https://rise4fun.com/Alive/V22

https://bugs.llvm.org/show_bug.cgi?id=39480
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cmp-x-vs-neg-x.ll
Commit a512c894768ba681721cb2fc5159294cec810f0a by lebedev.ri
[NFC][InstCombine] Refactor '(-NSW x) pred x' fold
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit d40c44e89e11659439072a4b57d2c0c191d5cae5 by Raphael Isemann
[lldb] Fix LLDB compilation with ncurses 6.2 due to wattr_set/get being a macro

My ncurses 6.2 arch defines those two functions as macros, so the scope operator
doesn't work here.
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit d3a9807674c1d7000bd5ec4028be399c81cbd098 by zinenko
[mlir] Remove most uses of LLVMDialect::getModule

This prepares for the removal of llvm::Module and LLVMContext from the
mlir::LLVMDialect.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85371
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
Commit 5446ec8507080ac075274a30c7cf25652d9a860f by zinenko
[mlir] take MLIRContext instead of LLVMDialect in getters of LLVMType's

Historical modeling of the LLVM dialect types had been wrapping LLVM IR types
and therefore needed access to the instance of LLVMContext stored in the
LLVMDialect. The new modeling does not rely on that and only needs the
MLIRContext that is used for uniquing, similarly to other MLIR types. Change
LLVMType::get<Kind>Ty functions to take `MLIRContext *` instead of
`LLVMDialect *` as first argument. This brings the code base closer to
completely removing the dependence on LLVMContext from the LLVMDialect,
together with additional support for thread-safety of its use.

Depends On D85371

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85372
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/GPUOpsLowering.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h
Commit 745bf6cf447110ae025e1c77338020f0c5d5ca80 by david.green
[LoopVectorizer] Inloop vector reductions

Arm MVE has multiple instructions such as VMLAVA.s8, which (in this
case) can take two 128bit vectors, sign extend the inputs to i32,
multiplying them together and sum the result into a 32bit general
purpose register. So taking 16 i8's as inputs, they can multiply and
accumulate the result into a single i32 without any rounding/truncating
along the way. There are also reduction instructions for plain integer
add and min/max, and operations that sum into a pair of 32bit registers
together treated as a 64bit integer (even though MVE does not have a
plain 64bit addition instruction). So giving the vectorizer the ability
to use these instructions both enables us to vectorize at higher
bitwidths, and to vectorize things we previously could not.

In order to do that we need a way to represent that the reduction
operation, specified with a llvm.experimental.vector.reduce when
vectorizing for Arm, occurs inside the loop not after it like most
reductions. This patch attempts to do that, teaching the vectorizer
about in-loop reductions. It does this through a vplan recipe
representing the reductions that the original chain of reduction
operations is replaced by. Cost modelling is currently just done through
a prefersInloopReduction TTI hook (which follows in a later patch).

Differential Revision: https://reviews.llvm.org/D75069
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
Commit 54a1097b8373ea609babb3cac5ba5708c9b26150 by aqjune
[InstCombine] Add tests for D84948; NFC
The file was modifiedllvm/test/Transforms/InstCombine/freeze.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit c771087161f4948a4d56d64e433f6bbc9dbfad90 by aqjune
[InstCombine] Fold freeze(undef) into a proper constant

This is a simple patch that folds freeze(undef) into a proper constant after inspecting its uses.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D84948
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/freeze.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/freeze-phi.ll
Commit e355f85bdf9e36a0f17428b281b7879051ed2867 by andrzej.warzynski
[flang] Add parser support for OpenMP allocate clause

Differential Revision: https://reviews.llvm.org/D85212
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
Commit 3effc35015ce0163579943ba1c86c35d0a3ba752 by pifon
[mlir] Lower DimOp to LLVM for unranked memrefs.

Differential Revision: https://reviews.llvm.org/D85361
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/test/mlir-cpu-runner/unranked_memref.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit c6eb76093c3b749ea903cde210ad125f6b94853a by a.v.lapshin
[dsymutil] Disable dsymutil/X86/reproducer.test on windows.

The dsymutil/X86/reproducer.test test could create paths
longer than MAX_PATH:

C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win
\build\test\tools\dsymutil\X86\Output\reproducer.test.tmp.repro
\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build
\test\tools\dsymutil\X86\Output\reproducer.test.tmp\Inputs\
basic1.macho.x86_64.o

Disable this test on windows.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85294
The file was modifiedllvm/test/tools/dsymutil/X86/reproducer.test
Commit 6ddef92474583ef3c183da9bdc8c8e81ec578fd8 by vsavchenko
[analyzer][tests] Understand when diagnostics change between builds

Before the patch `SATest compare`, produced quite obscure results
when something about the diagnostic have changed (i.e. its description
or the name of the corresponding checker) because it was simply two
lists of warnings, ADDED and REMOVED.  It was up to the developer
to match those warnings, understand that they are essentially the
same, and figure out what caused the difference.

This patch introduces another category of results: MODIFIED.
It tries to match new warnings against the old ones and prints out
clues on what is different between two builds.

Differential Revision: https://reviews.llvm.org/D85311
The file was modifiedclang/utils/analyzer/CmpRuns.py
Commit 45676a8936124e734177f1360e7af05a7ada7d99 by csigg
[MLIR] Change GpuLaunchFuncToGpuRuntimeCallsPass to wrap a RewritePattern with the same functionality.

The RewritePattern will become one of several, and will be part of the LLVM conversion pass (instead of a separate pass following LLVM conversion).

Reviewed By: herhut

Differential Revision: https://reviews.llvm.org/D84946
The file was modifiedmlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/CMakeLists.txt
The file was modifiedmlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp
The file was modifiedmlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
Commit 3ed59b775d7ce54ef8e881b31ce8917b84470dfb by paul.walker
[SVE] Implement lowering for fixed length vector multiplication.

NOTE: Also uses SVE code generation for NEON size vectors, instead
of expanding i64 based vector multiplications.

Differential Revision: https://reviews.llvm.org/D85327
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 54fafd17a728f3dd33b3cf999b6dfd3cd1d49f12 by ntv
[mlir][Linalg] Introduce canonicalization to remove dead LinalgOps

When any of the memrefs in a structured linalg op has a zero dimension, it becomes dead.
This is consistent with the fact that linalg ops deduce their loop bounds from their operands.

Note however that this is not the case for the `tensor<0xelt_type>` which is a special convention
that must be lowered away into either `memref<elt_type>` or just `elt_type` before this
canonicalization can kick in.

Differential Revision: https://reviews.llvm.org/D85413
The file was modifiedmlir/lib/IR/StandardTypes.cpp
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
Commit 0d33a8ef5bb640ec8b09a41bdc146a556d59c0b7 by paul.walker
[SVE] Lower scalable vector mul operations.

This allows us to remove extra patterns from AArch64SVEInstrInfo.td
because we can reuse those required for fixed length vectors.

Differential Revision: https://reviews.llvm.org/D85328
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 13b4db4ec20649e2c32f9bee426c2fc555275d25 by llvm-dev
[X86][SSE] Expose all memory offsets in expand load tests

Since we're messing with individual element loads we need to expose this to show whats going on.

Part of the work to fix the masked_expandload.ll regressions in D66004
The file was modifiedllvm/test/CodeGen/X86/masked_expandload.ll
The file was modifiedllvm/test/CodeGen/X86/pr39666.ll
Commit 87c5437afd273e909e0fed3389de7531d5452ea5 by llvm-dev
PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI.

We already need to include raw_ostream.h, also add missing StringRef.h and cstdint implicit dependencies.

Remove unnecessary includes from PDBExtras.cpp
The file was modifiedllvm/include/llvm/DebugInfo/PDB/PDBExtras.h
The file was modifiedllvm/lib/DebugInfo/PDB/PDBExtras.cpp
Commit 807467009d6faa5beb732d49ec4575fa1409abd7 by llvm-dev
[X86] getX86MaskVec - replace mask limit from NumElts < 8 with NumElts <= 4

As noted on PR46885, the number of mask elements should always be a power of 2, so to fix the static analyzer warning we are better off replacing the condition to <= 4, and I've added a pow2 assertion as well.
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
Commit 55ead5bfffdc00e84cff347ee98471b5616a9f48 by llvm-dev
Fix include sorting order. NFC
The file was modifiedllvm/include/llvm/DebugInfo/PDB/PDBExtras.h
Commit d9e191cb178afd0ab06f4bc932522ddf2e15ac9e by omair.javaid
Revert "[ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD"

This reverts commit 030ddc0a0bb9e2b25319eb681d520a9cee32b761.

This breaks http://lab.llvm.org:8011/builders/lldb-arm-ubuntu
and http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu

Differential Revision: https://reviews.llvm.org/D85100
The file was modifiedlld/test/ELF/linkerscript/compress-debug-sections-custom.s
The file was modifiedlld/test/ELF/linkerscript/sections.s
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/linkerscript/symbols-non-alloc.test
The file was modifiedlld/ELF/LinkerScript.cpp
Commit 3d10050e3748a9f40b8872f0f49a661020949bfe by llvm-dev
BitstreamRemarkParser.h - remove unnecessary includes. NFCI.

Remove unused includes, moving to the lib header or cpp file as necessary.
The file was modifiedllvm/lib/Remarks/BitstreamRemarkParser.cpp
The file was modifiedllvm/include/llvm/Remarks/BitstreamRemarkParser.h
The file was modifiedllvm/lib/Remarks/BitstreamRemarkParser.h
Commit 5a07490d7611088277dca4c1c06c2002403b7039 by atrosinenko
[ABI][NFC] Fix the confusion of ByVal and ByRef argument names

The second argument of getNaturalAlignIndirect() was `bool ByRef`, but
the implementation was just delegating to getIndirect() with `ByRef`
passed unchanged to `bool ByVal` parameter of getIndirect().

Fix a couple of /*ByRef=*/ comments as well.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D85113
The file was modifiedclang/lib/CodeGen/ABIInfo.h
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit d893278bba01b0e1209e8b8accbdd5cfa75a0932 by petar.avramovic
[GlobalISel][InlineAsm] Fix matching input constraint to physreg

Add given input and mark it as tied.
Doesn't create additional copy compared to
matching input constraint to virtual register.

Differential Revision: https://reviews.llvm.org/D85122
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
Commit 94a5919946a0a6b87720d9d1dfd15071ae3a5a49 by omair.javaid
[LLDB] Skip test_launch_simple from TestTargetAPI.py on Arm/AArch64 Linux

Recently added TestTargetAPI.py test "test_launch_simple" is failing on
Arm/AArch64 Linux targets. Putting them to skip until fixed.

Differential Revision: https://reviews.llvm.org/D85235
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
Commit e82866d5d9eef913252833789acda04ef8389e52 by david.spickett
[lldb][AArch64] Correct compile options for Neon corefile

SVE is not required, it has its own test. Note that
there is no "+neon" so "+simd" is used instead.

Also rename the file to match the name of the corefile
it produces.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D85134
The file was addedlldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-neon.c
The file was removedlldb/test/API/functionalities/postmortem/elf-core/aarch64-neon.c
Commit 6616d84ceed9869a8044c590ff12865ef2ea74d6 by Xing
[obj2yaml] Test dumping an empty .debug_aranges section.

This patch adds one test case that tests dumping an empty .debug_aranges
section.

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D85405
The file was modifiedllvm/test/tools/obj2yaml/ELF/DWARF/debug-aranges.yaml
Commit 40506d5e2fc5fb47badcb79a8ad9242c3bce60f3 by Xing
[DWARFYAML][debug_info] Make the 'Values' field optional.

This patch makes the 'Values' field optional. This is useful when we
handcraft the terminating entry of DIEs.

```
debug_info:
  - Version:  4
    ...
    Entries:
      - AbbrCode: 1
        Values:
          - Value: 0x1234
      - AbbrCode: 0 ## Termination
```

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D85397
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
Commit 839d974ee0e45f09b9665b4eed734ca1ba174d25 by peter.smith
[DOCS] Add more detail to stack protector documentation

The Clang -fstack-protector documentation mentions what functions are considered
vulnerable but does not mention the details of the implementation such as the use
of a global variable for the guard value. This brings the documentation more in
line with the GCC documentation at:
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html
and gives someone using the option more idea about what is protected.

This partly addresses https://bugs.llvm.org/show_bug.cgi?id=42764

Differential Revision: https://reviews.llvm.org/D85239
The file was modifiedclang/docs/ClangCommandLineReference.rst
The file was modifiedclang/include/clang/Driver/Options.td
Commit 1353cbc2570b2fe4b418a9acea9778eca5625fb7 by ntv
[mlir][Vector] NFC - Use matchAndRewrite in ContractionOp lowering patterns

Replace the use of separate match and rewrite which unnecessarily duplicates logic.

Differential Revision: https://reviews.llvm.org/D85421
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
Commit 1de43bd6df74fb4cd8c25020afa1dd14ecf08527 by Raphael Isemann
Revert "PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI."

This reverts commit 87c5437afd273e909e0fed3389de7531d5452ea5.

The commit includes several headers in the middle of a function, which
breaks pretty much everything.
The file was modifiedllvm/lib/DebugInfo/PDB/PDBExtras.cpp
The file was modifiedllvm/include/llvm/DebugInfo/PDB/PDBExtras.h
Commit 53162567090251e98b14f979ee2f69669cec3ddd by Matthew.Arsenault
AMDGPU/GlobalISel: Fix assert on copy to vcc

This was trying to constrain a physical register. By the verifier's
understanding, it's impossible to have a 1-bit copy to vcc/vcc_lo so
don't try to handle physregs.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy.mir
Commit 37894ba6612bf24060f38001122946108a770bc8 by Matthew.Arsenault
AMDGPU/GlobalISel: Make s16 phi legal

If we were to have an operation with an s16 def that needs to be
executed in a waterfall loop, not having s16 legal would place an
avoidable burden on RegBankSelect to widen it.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit 08c7d570d30bb9568fb2219db7b1b8a9532559dd by tkeith
[flang] Add options to control IMPLICIT NONE

Add `-fimplicit-none-type-always` to treat each specification-part
like it has `IMPLICIT NONE`. This is helpful for enforcing good Fortran
programming practices. We might consider something similar for
`IMPLICIT NONE(EXTERNAL)` as well.

Add `-fimplicit-none-type-never` to ignore occurrences of `IMPLICIT NONE`
and `IMPLICIT NONE(TYPE)`. This is to handle cases like the one below,
which violates the standard but it accepted by some compilers:
```
subroutine s(a, n)
  implicit none
  real :: a(n)
  integer :: n
end
```

Differential Revision: https://reviews.llvm.org/D85363
The file was modifiedflang/documentation/Extensions.md
The file was addedflang/test/Semantics/implicit09.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was addedflang/test/Semantics/implicit10.f90
The file was modifiedflang/tools/f18/f18.cpp
The file was modifiedflang/include/flang/Common/Fortran-features.h
Commit 6c7f640bf7ae4bffc460c6af66f3ecd93c3156ed by Matthew.Arsenault
AMDGPU/GlobalISel: Implement LLT version of allowsMisalignedMemoryAccesses
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 28124a0a636b6218f5439a1ddf87ec09a8a3c1a2 by Matthew.Arsenault
AMDGPU/GlobalISel: Stop using G_EXTRACT in argument lowering

We really need to put this undef padding stuff into a helper
somewhere, but leave that for when this is moved to generic code.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.load.2d.d16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
Commit c015cbc68b80e02b651988855b61b588f5069ef6 by Matthew.Arsenault
AMDGPU/GlobalISel: Fix trying to widen <3 x s1> boolean ops
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-freeze.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
Commit 5a503521e7b757bda70325f4c01bdbc0f4e3128e by Matthew.Arsenault
AMDGPU/GlobalISel: Implement expansion for rsq.clamp

Not sure why we handle this removed instruction on newer subtargets
for this one and no others, but maintain compatibility with the DAG.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-amdgcn.rsq.clamp.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit e5062a6caf754de30b4ecba5bf670ee250f78554 by jasonliu
[XCOFF][AIX] Put each jump table in an independent section if -ffunction-sections is specified

If a function is in a unique section, putting all jump tables in
.rodata will prevent functions that have a jump table to get
garbage collect by the linker.
Therefore, we need to put jump table into a unique section as well.

Reviewed By: Xiangling_L

Differential Revision: https://reviews.llvm.org/D84761
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-jump-table.ll
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
Commit d188a608bd89f4792215c6d699f5076fb547685c by Matthew.Arsenault
AMDGPU: Fix code duplication between the selectors

Not sure this is the right place for this helper.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
Commit dcf3ffb0a856264bba56b7fe5b5128537903e50a by Matthew.Arsenault
AMDGPU/GlobalISel: Move frame index selection to patterns

Doesn't really save any code until global value is handled too.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
Commit 60f2c6a94cdff51fb8906030bbb73ba1c90da1c4 by spatel
[PatternMatch] allow intrinsic form of min/max with existing matchers

I skimmed the existing users of these matchers and don't see any problems
(eg, the caller assumes the matched value was a select instruction without checking).

So I think we can generalize the matching to allow the new intrinsics or the cmp+select idioms.

I did not find any unit tests for the matchers, so added some basics there. The instsimplify
tests are adapted from existing tests for the cmp+select pattern and cover the folds in
simplifyICmpWithMinMax().

Differential Revision: https://reviews.llvm.org/D85230
The file was modifiedllvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll
The file was modifiedllvm/unittests/IR/PatternMatch.cpp
The file was modifiedllvm/include/llvm/IR/PatternMatch.h
Commit 63c4be53cf5569369e67b5cd7958e5eb1bfcd85a by Matthew.Arsenault
AMDGPU/GlobalISel: Try to promote to use packed saturating add/sub

This produces worse results right now for i8 vectors, but that should
be addressed when we actually try to optimize packed vectors.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddsat.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
Commit 63cdc9a49f1fdd7df80dc964bf647f89982a2569 by Matthew.Arsenault
AMDGPU/GlobalISel: Handle llvm.amdgcn.ds.{fadd|fmin|fmax}

These intrinsics are missing mangling for both the pointer and data
type.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was removedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.fmin.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was removedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.fmax.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ds.fadd.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ds.fmax.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ds.fmin.ll
Commit a6db64ef4a9906c96ef5652739ac15aefaa7827c by i
[ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD

GNU ld allows sections after a non-SHF_ALLOC section to be covered by PT_LOAD
(PR37607) and assigns addresses to non-SHF_ALLOC output sections (similar to
SHF_ALLOC NOBITS sections. The location counter is not advanced).

This patch tries to fix PR37607 (remove a special case in
`Writer<ELFT>::createPhdrs`). To make the created PT_LOAD meaningful, we cannot
reset dot to 0 for a middle non-SHF_ALLOC output section. This results in
removal of two special cases in LinkerScript::assignOffsets. Non-SHF_ALLOC
non-orphan sections can have non-zero addresses like in GNU ld.

The zero address rule for non-SHF_ALLOC sections is weakened to apply to orphan
only. This results in a special case in createSection and findOrphanPos, respectively.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D85100
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/test/ELF/linkerscript/compress-debug-sections-custom.s
The file was modifiedlld/test/ELF/linkerscript/sections.s
The file was modifiedlld/test/ELF/linkerscript/symbols-non-alloc.test
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/Inputs/debug-line-basic.script
Commit b7b1a38d41ca3fc07894c48f050c32d49199972d by llvm-dev
PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI.

We already need to include raw_ostream.h, also add missing StringRef.h implicit dependency.
The file was modifiedllvm/include/llvm/DebugInfo/PDB/PDBExtras.h
Commit d1a91d947f49548cf17b21671f9c6ea806e40116 by llvm-dev
[InstCombine] Add tests for mul(sub(x,y),negpow2) -> mul(sub(y,x),pow2) fold

Add full vector coverage (that currently are not folded).
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit f6913e74400aa932b3edc7cc765495247799fcb0 by Raphael Isemann
[lldb][NFC] Document and encapsulate OriginMap in ASTContextMetadata

Just adds the respective accessor functions to ASTContextMetadata instead
of directly exposing the OriginMap to the whole world.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
Commit 518a27e5591c211ceeef3091edc59012e6ace2b2 by jdenny.ornl
[OpenMP] Fix ref count dec for implicit map of partial data

D85342 broke this case.  The new test case presents an example.

Reviewed By: grokos

Differential Revision: https://reviews.llvm.org/D85369
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
The file was addedopenmp/libomptarget/test/mapping/target_implicit_partial_map.c
Commit 87fb7aa137eaf389359d14bb73de5b72ec5e9bdf by mtrofin
[llvm][MLInliner] Don't log 'mandatory' events

We don't want mandatory events in the training log. We do want to handle
them, to keep the native size accounting accurate, but that's all.

Fixed the code, also expanded the test to capture this.

Differential Revision: https://reviews.llvm.org/D85373
The file was modifiedllvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
The file was modifiedllvm/test/Transforms/Inline/ML/bounds-checks-rewards.ll
Commit 8f5b2cb828074e685f8a40569524d8c93536202a by llvm-dev
[InstCombine] Add tests for mul(add(x,c),negpow2) -> mul(sub(-c,x),pow2) fold

Also fix some undef vector elements in the similar vector tests that I missed.
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 0af7835eae698330f6362220ff1fcbfe92516de8 by a.bataev
[OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective representation.

Summary:
Introduced OMPChildren class to handle all associated clauses, statement
and child expressions/statements. It allows to represent some directives
more correctly (like flush, depobj etc. with pseudo clauses, ordered
depend directives, which are standalone, and target data directives).
Also, it will make easier to avoid using of CapturedStmt in directives,
if required (atomic, tile etc. directives).
Also, it simplifies serialization/deserialization of the
executable/declarative directives.
Reduces number of allocation operations for mapper declarations.

Reviewers: jdoerfert

Subscribers: yaxunl, guansong, jfb, cfe-commits, sstefan1, aaron.ballman, caomhin

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83261
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/declare_mapper_messages.c
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/test/OpenMP/declare_mapper_messages.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/include/clang/AST/OpenMPClause.h
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/include/clang/Serialization/ASTRecordReader.h
The file was modifiedclang/include/clang/Serialization/ASTRecordWriter.h
The file was modifiedclang/lib/AST/DeclOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/include/clang/AST/DeclOpenMP.h
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/AST/ast-dump-openmp-ordered.c
Commit 8d072a4405213623a1b13dbac2e451df81457343 by a.bataev
[OPENMP]Fix for Windows buildbots, NFC.
The file was modifiedclang/include/clang/AST/OpenMPClause.h
Commit 34040a4f61fecaa8e901ca2e5e587df13d7097ac by Matthew.Arsenault
GlobalISel: Define InvalidRegBankID enum value
The file was modifiedllvm/utils/TableGen/RegisterBankEmitter.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit 56270d1d421e00c98be169d9734c84350660781c by Matthew.Arsenault
AMDGPU/GlobalISel: Start trying to handle AGPR bank

Try to use AGPR banks for the various merge/unmerge type
operations. Previously these would introduce copies to VGPR.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-unmerge-values.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-insert.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-extract.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-phi.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-build-vector.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-concat-vector.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-merge-values.mir
Commit 90eb7d5283df7655188142d8e0c064bd4a688e00 by Matthew.Arsenault
AMDGPU: Fix spilling of 96-bit AGPRs
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-agpr.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
Commit ca7973cf18207b7d501c852852257c0b02be3b6c by mtrofin
[NFC]{MLInliner] Point out the tests' model dependencies
The file was addedllvm/lib/Analysis/models/inliner/README.txt
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp
Commit 3b93464dcf2f4bcaa4a8fe3d888fee027aa2100b by llvm-dev
[SLP][X86] Regenerate sdiv test noticed in D83779. NFC.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
Commit eae9c541484b75e4b3514ed47344adf3352f5d40 by Matthew.Arsenault
AArch64/GlobalISel: Fix verifier error after selecting returnaddress

This was caching the wrong register to re-use later.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 9dbdaea9a0e6f58417b5bd8980e7ea6723fd1783 by saugustine
Remove unused variable "saved_opts".

wattr_get is a macro, and the documentation states:
"The parameter opts is reserved for  future use,
applications must supply a null pointer."

In practice, passing a variable there is harmless, except
that it is unused inside the macro, which causes unused
variable warnings.

The various places where
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 1a0c0944c62576632a390b11c654e92ea0c9014d by Matthew.Arsenault
AMDGPU: Define raw/struct variants of buffer atomic fadd

Somehow the new FP atomic buffer intrinsics ended up using the legacy
style for buffer intrinsics.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.atomic.fadd.ll
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.atomic.fadd.ll
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit 5bb6b8250ad9b61c548a1fb29d36f705ecfbe2ee by aeubanks
[NewPM] Pin -assumption-cache-tracker tests to legacy PM

All tests have corresponding NPM RUN lines.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85395
The file was modifiedllvm/test/Transforms/Util/assume-builder.ll
The file was modifiedllvm/test/Transforms/Util/assume-simplify.ll
Commit 99298c7fc540c74c89c92f0e5d617e00cb87cf19 by Fred Riss
[lldb/testsuite] Change get_debugserver_exe to support Rosetta

In order to be able to run the debugserver tests against the Rosetta
debugserver, detect the Rosetta run configuration and return the
system Rosetta debugserver.
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
Commit 96c2d5e99e32340be1379959977f2d6247788db6 by enye.shi
[HIP] Ignore invalid ar linker options

Instead of accepting the same arguments as regular linker,
the static linker will only accept input files.

Reviewed By: yaxunl

Differential Revision: https://reviews.llvm.org/D85442
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedclang/test/Driver/hip-link-static-library.hip
Commit d0acd97c68eceada71a96173bdff745dd4307038 by aeubanks
[NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch

As mentioned in
http://lists.llvm.org/pipermail/llvm-dev/2020-July/143395.html,
loop-unswitch has not been ported to the NPM. Instead people are using
simple-loop-unswitch.

Pin all tests in Transforms/LoopUnswitch to legacy PM and replace all
other uses of loop-unswitch with simple-loop-unswitch.

One test that didn't fit into the above was
2014-06-21-congruent-constant.ll which seems to only pass with
loop-unswitch. That is also pinned to legacy PM.

Now all tests containing "-loop-unswitch" anywhere in the test succeed with
NPM turned on by default.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85360
The file was modifiedllvm/test/Transforms/LoopUnswitch/pr32818.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-06-02-CritSwitch.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-07-12-ExitDomInfo.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-09-26-EHCrash.ll
The file was modifiedllvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2010-11-18-LCSSA.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-05-09-tl.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/crash.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/2014-06-21-congruent-constant.ll
The file was modifiedllvm/test/Transforms/LICM/pr32129.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2015-06-17-Metadata.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/exponential-behavior.ll
The file was modifiedllvm/test/Analysis/Dominators/2007-07-11-SplitBlock.ll
The file was modifiedllvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/infinite-loop.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2012-04-02-IndirectBr.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2008-06-17-DomFrontier.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/basictest.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/unswitch-equality-undef.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/cleanuppad.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2012-04-30-LoopUnswitch-LPad-Crash.ll
The file was modifiedllvm/test/Transforms/LICM/2007-07-30-AliasSet.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2012-05-20-Phi.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/simplify-with-nonvalness.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/trivial-unswitch.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches-Threshold.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2015-09-18-Addrspace.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/guards.ll
The file was modifiedllvm/test/Analysis/Dominators/2007-07-12-SplitBlock.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/callbr.ll
The file was modifiedllvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-07-13-DomInfo.ll
The file was modifiedllvm/test/Analysis/AliasSet/unknown-inst-tracking.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/msan.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/elseif-non-exponential-behavior.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/copy-metadata.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/unswitch-select.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2008-06-02-DomInfo.ll
The file was modifiedllvm/test/Transforms/LICM/Preserve-LCSSA.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr39197.ll
The file was modifiedllvm/test/Other/2007-09-10-PassManager.ll
The file was modifiedllvm/test/Analysis/MemorySSA/pr40749_2.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2007-05-09-Unreachable.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/LIV-loop-condtion.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/preserve-analyses.ll
The file was modifiedllvm/test/Analysis/MemorySSA/loop-unswitch.ll
The file was modifiedllvm/test/Transforms/LoopUnswitch/invalidate-scev.ll
Commit e00201539f9c5c540a037add790eb31032aaea8f by Matthew.Arsenault
GlobalISel: Implement fewerElementsVector for G_EXTRACT_VECTOR_ELT

Use the same basic strategy as LegalizeVectorTypes. Try to index into
smaller pieces if there's a constant index, and otherwise fall back to
a stack temporary.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
Commit 4ccc38813eb76c7984f2700df527c643abeb9a58 by dfukalov
[AMDGPU][CostModel] Add f16, f64 and contract cases to fused costs estimation.

Add cases of fused fmul+fadd/fsub with f16 and f64 operands to cost model.
Also added operations with contract attribute.

Fixed line endings in test.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D84995
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
The file was modifiedllvm/test/Analysis/CostModel/AMDGPU/fused_costs.ll
Commit 9f24148b212698aca220ac923d215c2073e443ce by platonov.aleksandr
[clangd] Fix crash in bugprone-bad-signal-to-kill-thread clang-tidy check.

Inside clangd, clang-tidy checks don't see preprocessor events in the preamble.
This leads to `Token::PtrData == nullptr` for tokens that the macro is defined to.
E.g. `#define SIGTERM 15`:
- Token::Kind == tok::numeric_constant (Token::isLiteral() == true)
- Token::UintData == 2
- Token::PtrData == nullptr

As the result of this, bugprone-bad-signal-to-kill-thread check crashes at null-dereference inside clangd.

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D85417
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp
The file was modifiedclang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Commit 86aa8e6363c7e00f211de62ccb3236556e9841df by Jonas Devlieghere
[lldb] Use target.GetLaunchInfo() instead of creating an empty one.

Update tests that were creating an empty LaunchInfo instead of using the
one coming from the target. This ensures target properties are honored.
The file was modifiedlldb/test/API/functionalities/breakpoint/address_breakpoints/TestAddressBreakpoints.py
The file was modifiedlldb/test/API/python_api/process/TestProcessAPI.py
The file was modifiedlldb/test/API/functionalities/breakpoint/auto_continue/TestBreakpointAutoContinue.py
The file was modifiedlldb/test/API/functionalities/signal/TestSendSignal.py
The file was modifiedlldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
The file was modifiedlldb/test/API/commands/frame/language/TestGuessLanguage.py
The file was modifiedlldb/test/API/python_api/process/io/TestProcessIO.py
The file was modifiedlldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
The file was modifiedlldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
The file was modifiedlldb/test/API/commands/frame/var/TestFrameVar.py
The file was modifiedlldb/test/API/commands/disassemble/basic/TestFrameDisassemble.py
The file was modifiedlldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
Commit 25e8668e88bb1fa7bfa359b56ba7c663ebec5d3b by ravishankarm
[mlir][SPIR-V] Fix wrongly placed Rationale section.

Differential Revision: https://reviews.llvm.org/D85461
The file was modifiedmlir/docs/Dialects/SPIR-V.md
Commit 87ce06e3155775f63ce8b6693282c130e7dff21d by Matthew.Arsenault
Add freeze keyword to IR emacs mode
The file was modifiedllvm/utils/emacs/llvm-mode.el
Commit 189ba3db8653eaefc191599dd60d9aa6b0127c44 by eugenis
Fix CFI issues in <future>

This change fixes errors reported by Control Flow Integrity (CFI) checking when using `std::packaged_task`.  The errors mostly stem from casting the underlying storage (`__buf_`) to `__base*`, even if it is uninitialized.  The solution is to wrap `__base*` access to `__buf_` behind a getter marked with _LIBCPP_NO_CFI.

Differential Revision: https://reviews.llvm.org/D82627
The file was modifiedlibcxx/include/future
Commit a7478fab6ce82532c1545614362a3688e8a4ed36 by anton.a.afanasyev
[SLP] Fix order of `insertelement`/`insertvalue` seed operands

Summary:
This patch takes the indices operands of `insertelement`/`insertvalue`
into account while generation of seed elements for `findBuildAggregate()`.
This function has kept the original order of `insert`s before.
Also this patch optimizes `findBuildAggregate()` preventing it from
redundant temporary vector allocations and its multiple reversing.

Fixes llvm.org/pr44067

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83779
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr42022.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr44067.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/horiz-math.ll
Commit 128bf458ab8c5bdbb02e5b13769a618b357d5ae2 by gyurgyikcp
[libc] Add tolower, toupper implementation.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85326
The file was modifiedlibc/src/ctype/islower.cpp
The file was addedlibc/src/ctype/tolower.h
The file was modifiedlibc/config/linux/api.td
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/src/ctype/isupper.cpp
The file was modifiedlibc/src/ctype/ctype_utils.h
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was modifiedlibc/src/ctype/CMakeLists.txt
The file was modifiedlibc/test/src/ctype/CMakeLists.txt
The file was addedlibc/test/src/ctype/tolower_test.cpp
The file was addedlibc/test/src/ctype/toupper_test.cpp
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/src/ctype/toupper.cpp
The file was addedlibc/src/ctype/tolower.cpp
The file was addedlibc/src/ctype/toupper.h
Commit 05df9cc70367a60cb34bee773389ab2522984f8b by Adrian Prantl
Correctly detect legacy iOS simulator Mach-O objectfiles

The code in ObjectFileMachO didn't disambiguate between ios and
ios-simulator object files for Mach-O objects using the legacy
ambiguous LC_VERSION_MIN load commands. This used to not matter before
taught ArchSpec that ios and ios-simulator are no longer compatible.

rdar://problem/66545307

Differential Revision: https://reviews.llvm.org/D85358
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was modifiedlldb/unittests/Utility/ArchSpecTest.cpp
The file was modifiedlldb/source/Utility/ArchSpec.cpp
Commit c9bcc237a284af16d25ae89e5e3178ed210a840f by spatel
[VectorCombine] add tests for load+insert; NFC
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll
Commit 30eeb742f1d11d7a7036e3b8a3bffc1dfd252082 by Matthew.Arsenault
clang: Use byref for aggregate kernel arguments

Add address space to indirect abi info and use it for kernels.

Previously, indirect arguments assumed assumed a stack passed object
in the alloca address space using byval. A stack pointer is unsuitable
for kernel arguments, which are passed in a separate, constant buffer
with a different address space.

Start using the new byref for aggregate kernel arguments. Previously
these were emitted as raw struct arguments, and turned into loads in
the backend. These will lower identically, although with byref you now
have the option of applying an explicit alignment. In the future, a
reasonable implementation would use byref for all kernel arguments
(this would be a practical problem at the moment due to losing things
like noalias on pointer arguments).

This is mostly to avoid fighting the optimizer's treatment of
aggregate load/store. SROA and instcombine both turn aggregate loads
and stores into a long sequence of element loads and stores, rather
than the optimizable memcpy I would expect in this situation. Now an
explicit memcpy will be introduced up-front which is better understood
and helps eliminate the alloca in more situations.

This skips using byref in the case where HIP kernel pointer arguments
in structs are promoted to global pointers. At minimum an additional
patch is needed to allow coercion with indirect arguments. This also
skips using it for OpenCL due to the current workaround used to
support kernels calling kernels. Distinct function bodies would need
to be generated up front instead of emitting an illegal call.
The file was modifiedclang/test/CodeGenCUDA/kernel-args.cu
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
The file was modifiedclang/include/clang/CodeGen/CGFunctionInfo.h
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit ba37b144e6cf7ecaa7e6eb5bb34c02aeaa8a9e3c by Jonas Devlieghere
[LLDB] Skip test_launch_simple from TestTargetAPI.py when remote
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
Commit 250a167c41819aa5cedd290a29e4d3af4a9bafbe by spatel
[InstSimplify] avoid crashing by trying to rem-by-zero

Bug was noted in the post-commit comments for:
rGe8760bb9a8a3
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit f406a90a08c3993cd5bfd5e6a546165e55fec9b4 by Adrian Prantl
Add missing override to Makefile
The file was modifiedlldb/test/API/macosx/macCatalyst/Makefile
The file was modifiedlldb/test/API/macosx/macCatalystAppMacOSFramework/Makefile
Commit 8d943a928d254a25caa5a6d2f92f8719c92a9694 by snehasishk
[NFC] Rename BBSectionsPrepare -> BasicBlockSections.

Rename the BBSectionsPrepare pass as suggested by the review comment in
https://reviews.llvm.org/D85368.

Differential Revision: https://reviews.llvm.org/D85380
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was removedllvm/lib/CodeGen/BBSectionsPrepare.cpp
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was addedllvm/lib/CodeGen/BasicBlockSections.cpp
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 87cba434027bf6ad370629f5b924ebd4543ddabc by yhs
BPF: add a SimplifyCFG IR pass during generic Scalar/IPO optimization

The following bpf linux kernel selftest failed with latest
llvm:
  $ ./test_progs -n 7/10
  ...
  The sequence of 8193 jumps is too complex.
  verification time 126272 usec
  stack depth 320
  processed 114799 insns (limit 1000000)
  ...
  libbpf: failed to load object 'pyperf600_nounroll.o'
  test_bpf_verif_scale:FAIL:110
  #7/10 pyperf600_nounroll.o:FAIL
  #7 bpf_verif_scale:FAIL

After some investigation, I found the following llvm patch
  https://reviews.llvm.org/D84108
is responsible. The patch disabled hoisting common instructions
in SimplifyCFG by default. Later on, the code changes and a
SimplifyCFG phase with hoisting on cannot do the work any more.

A test is provided to demonstrate the problem.
The IR before simplifyCFG looks like:
  for.cond:
    %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
    %cmp = icmp ult i32 %i.0, 6
    br i1 %cmp, label %for.body, label %for.cond.cleanup

  for.cond.cleanup:
    %2 = load i8*, i8** %frame_ptr, align 8, !tbaa !2
    %cmp2 = icmp eq i8* %2, null
    %conv = zext i1 %cmp2 to i32
    call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1) #3
    call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %0) #3
    ret i32 %conv

  for.body:
    %3 = load i8*, i8** %frame_ptr, align 8, !tbaa !2
    %tobool.not = icmp eq i8* %3, null
    br i1 %tobool.not, label %for.inc, label %land.lhs.true

The first two insns of `for.cond.cleanup` and `for.body`, load and
icmp, can be hoisted to `for.cond` block. With Patch D84108, the
optimization is delayed. But unfortunately, later on loop rotation
added addition phi nodes to `for.body` and hoisting cannot
be done any more.

Note such a hoisting is beneficial to bpf programs as
bpf verifier does path sensitive analysis and verification.
The hoisting preverts reloading from stack which will assume
conservative value and increase exploited insns. In this case,
it caused verifier failure.

To fix this problem, I added an IR pass from bpf target
to performance additional simplifycfg with hoisting common inst
enabled.

Differential Revision: https://reviews.llvm.org/D85434
The file was modifiedllvm/lib/Target/BPF/BPFTargetMachine.h
The file was addedllvm/test/CodeGen/BPF/simplifycfg.ll
The file was modifiedllvm/lib/Target/BPF/LLVMBuild.txt
The file was modifiedllvm/lib/Target/BPF/BPFTargetMachine.cpp
Commit e1cad4234cf3a3d0747c140e135e413ece22cf63 by craig.topper
[X86] Make getX86TargetCPU return std::string instead of const char *. Remove call to MakeArgString. NFCI

I believe this function used to be called directly from X86
specific code and was used to immediately create -target-cpu
command line. A later refactoring changed it to to be called from
a generic getCPU function that returns std::string. So on some
paths we created a string using MakeArgString converted that to
std::string then called MakeArgString again from that.

Instead just return std::string directly like the other targets.
The file was modifiedclang/lib/Driver/ToolChains/Arch/X86.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/X86.h
Commit 4df38a5589f6fa23e161a76bdaa3180ad053791e by craig.topper
[X86] Optimize out a few extra strlen calls in getX86TargetCPU. NFCI

We had a conversion from const char * to StringRef and const char *
to std::string conversion. These both do their own
strlen call if the compiler doens't figure out how to share them.
By adding the temporary StringRef we can convert it to std::string
instead.

The other case is to use a StringSwitch<StringRef> instead of
StringSwitch<const char *> since the output values of the switch
are string literals. This allows the length to be computed at
compile time. Otherwise we have to convert from const char *
to std::string after the StringSwitch.
The file was modifiedclang/lib/Driver/ToolChains/Arch/X86.cpp
Commit ffc248f3b88cd6a0153d23660727b45dde8f27b5 by craig.topper
[LegalTypes] Move VSELECT node creation out of WidenVSELECTAndMask and push to 2 of the 3 callers.

One of the callers only wants the condition, but the vselect can
be simplified by getNode making it hard or impossible to retrieve
the condition.

Instead, return the condition and make the other 2 callers
responsible for creating the vselect node using the condition.
Rename the function to WidenVSELECTMask accordingly.

Differential Revision: https://reviews.llvm.org/D85468
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was addedllvm/test/CodeGen/SystemZ/pr47019.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit d6492d874478b1d3b1ce3adb4c3044618bec29e9 by richard
Add -Wtautological-value-range-compare warning.

This warning diagnoses cases where an expression is compared to a
constant, and the comparison is tautological due to the form of the
expression (but not merely due to its type). This applies in cases such
as comparisons of bit-fields and the result of bit-masks.

The new warning is added to the Clang diagnostic group
-Wtautological-constant-in-range-compare but not to the
formerly-equivalent GCC-compatibility diagnostic group -Wtype-limits,
which retains its old meaning of diagnosing only tautological
comparisons to extremal values of a type (eg, int > INT_MAX).

Reviewed By: rtrieu

Differential Revision: https://reviews.llvm.org/D85256
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/test/Sema/tautological-constant-compare.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaChecking.cpp
Commit 0fa520af6734c5f1fab80629337e3f08fd8770db by Adrian Prantl
Unify the code that updates the ArchSpec after finding a fat binary
with how it is done for a lean binary

In particular this affects how target create --arch is handled — it
allowed us to override the deployment target (a useful feature for the
expression evaluator), but the fat binary case didn't.

rdar://problem/66024437

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

(cherry picked from commit 470bdd3caaab0b6e0ffed4da304244be40b78668)
The file was modifiedlldb/source/Target/TargetList.cpp
The file was modifiedlldb/test/API/macosx/universal/TestUniversal.py
The file was modifiedlldb/test/API/macosx/universal/Makefile
Commit 1c21635c94df0e680cbb0797a64d09a63f619fc0 by lebedev.ri
[NFC][InstCombine] Tests for  x s/EXACT (-1 << y)  pattern
The file was addedllvm/test/Transforms/InstCombine/sdiv-exact-by-negative-power-of-two.ll
Commit 8633a0d985f1abc8f81dba5f699d5df627e6a9f1 by lebedev.ri
[NFC][InstCombine] Better tests for  x s/EXACT (1 << y)  pattern
The file was addedllvm/test/Transforms/InstCombine/sdiv-exact-by-power-of-two.ll
Commit 442cb88f5344560e49fab681a9c909654d85fcc7 by lebedev.ri
[InstCombine] Generalize  sdiv exact X, 1<<C  -->  ashr exact X, C  fold to handle non-splat vectors
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/sdiv-exact-by-power-of-two.ll
Commit 47aec80e4afc8e3746e09f4c9d309cf8941f68cc by lebedev.ri
[NFC][InstCombine] Negator: add a comment about negating exact arithmentic shift
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit 7ce76b06ec908a85205d4dc7af6e73d5ecc26251 by lebedev.ri
[InstCombine] Fold  sdiv exact X, -1<<C  -->  -(ashr exact X, C)

While that does increases instruction count,
shift is obviously better than a division.

Name: base
Pre: (1<<C1) >= 0
%o0 = shl i8 1, C1
%r = sdiv exact i8 C0, %o0
  =>
%r = ashr exact i8 C0, C1

Name: neg
%o0 = shl i8 -1, C1
%r = sdiv exact i8 C0, %o0
  =>
%t0 = ashr exact i8 C0, C1
%r = sub i8 0, %t0

Name: reverse
Pre: C1 != 0 && C1 u< 8
%t0 = ashr exact i8 C0, C1
%r = sub i8 0, %t0
  =>
%o0 = shl i8 -1, C1
%r = sdiv exact i8 C0, %o0

https://rise4fun.com/Alive/MRplf
The file was modifiedllvm/test/Transforms/InstCombine/sdiv-exact-by-negative-power-of-two.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit a404acb86af7d62390a2599bb86bba2c5f840f68 by lebedev.ri
[NFC][InstCombine] Add some more tests for negation sinking into mul
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 0c1c756a31536666a7b6f5bdb744dbce923a0c9e by lebedev.ri
[InstCombine] Generalize  %x * (-1<<C)  -->  (-%x) * (1<<C)  fold

Multiplication is commutative, and either of operands can be negative,
so if the RHS is a negated power-of-two, we should try to make it
true power-of-two (which will allow us to turn it into a left-shift),
by trying to sink the negation down into LHS op.

But, we shouldn't re-invent the logic for sinking negation,
let's just use Negator for that.

Tests and original patch by: Simon Pilgrim @RKSimon!

Differential Revision: https://reviews.llvm.org/D85446
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit be02adfad7acf8040ad025b58052b3838db7e23b by lebedev.ri
[InstCombine] Fold  (x + C1) * (-1<<C2)  -->  (-C1 - x) * (1<<C2)

Negator knows how to do this, but the one-use reasoning is getting
a bit muddy here, we don't really want to increase instruction count,
so we need to both lie that "IsNegation" and have an one-use check
on the outermost LHS value.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit f81bae9ff42f760ed4e3d8f7314a7aee2effe6aa by llvm-project
[flang][msvc] Do not use gcc/clang command line options for msvc.

The command line options `-Wno-error` and `-Wno-unused-parameter` are specific to gcc/clang, do not use them when compiling with other compilers.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: isuruf

Differential Revision: https://reviews.llvm.org/D85355
The file was modifiedflang/lib/Lower/CMakeLists.txt
The file was modifiedflang/lib/Optimizer/CMakeLists.txt
Commit aa57cabae2fc5abc08ab3e17b45f2890fc7c9e42 by eugenis
[msan] Support %ms in scanf.

Differential Revision: https://reviews.llvm.org/D85350
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc
The file was addedcompiler-rt/test/msan/scanf-allocate.cpp
Commit 87b2af814078d319dd823eb9c0a279a96ae5f349 by Matthew.Arsenault
AMDGPU/GlobalISel: Enable s_{and|or}n2_{b32|b64} patterns
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td
Commit ce74e97d9b15514020bd7ffa1917291240b4e693 by Tony.Tye
[AMDGPU] Correct missing sram-ecc target feature for gfx906

Differential Revision: https://reviews.llvm.org/D85476
The file was modifiedllvm/docs/AMDGPUUsage.rst
Commit c50f5dece9728c377e6f77cb3874de2e406c4268 by yhs
BPF: fix libLLVMBPFCodeGen.so build failure

Buildbot reported a build failure when building shared
library libLLVMBPFCodeGen.so with unknown reference to
"createCFGSimplificationPass".

Commit 87cba434027b ("BPF: add a SimplifyCFG IR pass during
generic Scalar/IPO optimization") added an IR pass SimplifyCFG
by BPF target. The commit called function
createCFGSimplificationPass() defined in "Scalar" library.
Add this library in Target/BPF/LLVMBuild.txt so
shared library build can succeed.
The file was modifiedllvm/lib/Target/BPF/LLVMBuild.txt
Commit 004be4037e1e9c6092323c5c9268acb3ecf9176c by maskray
[ELF] Change tombstone values to (.debug_ranges/.debug_loc) 1 and (other .debug_*) 0

tl;dr See D81784 for the 'tombstone value' concept. This patch changes our behavior to be almost the same as GNU ld (except that we also use 1 for .debug_loc):

* .debug_ranges & .debug_loc: 1 (LLD<11: 0+addend; GNU ld uses 1 for .debug_ranges)
* .debug_*: 0 (LLD<11: 0+addend; GNU ld uses 0; future LLD: -1)

We make the tweaks because:

1) The new tombstone is novel and needs more time to be adopted by consumers before it's the default.
2) The old (gold) strategy had problems with zero-length functions - so rather than going back that, we're going to the GNU ld strategy which doesn't have that problem.
3) One slight tweak to (2) is to apply the .debug_ranges workaround to .debug_loc for the same reasons it applies to debug_ranges - to avoid terminating lists early.

-----

http://lists.llvm.org/pipermail/llvm-dev/2020-July/143482.html

The tombstone value -1 in .debug_line caused problems to lldb (fixed by D83957;
will be included in 11.0.0) and breakpad (fixed by
https://crrev.com/c/2321300). It may potentially affects other DWARF consumers.

For .debug_ranges & .debug_loc: 1, an argument preferring 1 (GNU ld for .debug_ranges) over -2 is that:
```
{-1, -2}    <<< base address selection entry
{0, length} <<< address range
```
may create a situation where low_pc is greater than high_pc. So we use
1, the GNU ld behavior for .debug_ranges

For other .debug_* sections, there haven't been many reports. One issue is that
bloaty (src/dwarf.cc) can incorrectly count address ranges in .debug_ranges . To
reduce similar disruption, this patch changes the tombstone values to be similar to GNU ld.

This does mean another behavior change to the default trunk behavior. Sorry
about it. The default trunk behavior will be similar to release/11.x while we work on a transition plan for LLD users.

Reviewed By: dblaikie, echristo

Differential Revision: https://reviews.llvm.org/D84825
The file was modifiedlld/test/ELF/debug-dead-reloc-32.s
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedlld/test/ELF/debug-dead-reloc.s
The file was modifiedlld/test/ELF/dead-reloc-in-nonalloc.s
The file was modifiedlld/test/ELF/debug-dead-reloc-tls-arm.s
The file was modifiedlld/test/ELF/debug-dead-reloc-icf.s
The file was modifiedlld/test/ELF/debug-dead-reloc-tls.s
Commit 039fb7f68af9f89f8116d769a9e4cae458baca38 by aeubanks
[NewPM][GuardWidening] Fix loop guard widening tests under NPM

Reviewed By: ychen, asbirlea

Differential Revision: https://reviews.llvm.org/D85394
The file was modifiedllvm/test/Transforms/GuardWidening/loop-schedule.ll
The file was modifiedllvm/test/Transforms/GuardWidening/basic-loop.ll
Commit 92d58392975b908055e22c9f24dcf8e84cc58a1b by thakis
[gn build] mac: use frameworks instead of libs where appropriate

As of GN 3028c6a426a4, the hack that transformed "libs" ending in
".framework" from -l arguments to -framework arguments has been removed.
Instead, "frameworks" must be used, and the toolchain must provide
support.

Differential Revision: https://reviews.llvm.org/D84219
The file was modifiedllvm/utils/gn/secondary/llvm/tools/dsymutil/BUILD.gn
The file was modifiedllvm/utils/gn/build/toolchain/BUILD.gn
Commit 1ad051dd8c86d62f60e62295daa670c5cfb7d8fb by Matthew.Arsenault
GlobalISel: Implement lower for G_INSERT_VECTOR_ELT
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert-vector-elt.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 243903f3262d0e1727fe7d473da741c4a742a937 by Adrian Prantl
Factor out common code from the iPhone/AppleTV/WatchOS simulator platform plugins. (NFC)

The implementation of these classes was copied & pasted from the
iPhone simulator plugin with only a handful of configuration
parameters substituted. This patch moves the redundant implementations
into the base class PlatformAppleSimulator.

Differential Revision: https://reviews.llvm.org/D85243
The file was modifiedlldb/unittests/Platform/PlatformAppleSimulatorTest.cpp
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.h
The file was removedlldb/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp
Commit c8a282bcf7b6304e99f65bf22eea4553e240fb40 by Jessica Paquette
[GlobalISel] Fix computing known bits for loads with range metadata

In GlobalISel, if you have a load into a small type with a range, you'll hit
an assert if you try to compute known bits on it starting at a larger type.

e.g.

```
%x:_(s8) = G_LOAD %whatever(p0) :: (load 1 ... !range !n)
...
%y:_(s32) = G_SOMETHING %x
```

When we walk through G_SOMETHING and hit the load, the width of our known bits
is 32. However, the width of the range is going to be 8. This will cause us
to hit an assert.

To fix this, make computeKnownBitsFromRangeMetadata zero extend or truncate
the range type to match the bitwidth of the known bits we're calculating.

Add a testcase in CodeGen/GlobalISel/KnownBitsTest.cpp to reflect that this
works now.

https://reviews.llvm.org/D85375
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
Commit ed5a18fc0399dce994aa354a33e6f981f9828647 by richard
PR30738: Implement two-phase name lookup for fold-expressions.
The file was modifiedclang/include/clang/Sema/Sema.h
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/test/AST/ast-dump-expr.cpp
The file was modifiedclang/lib/Sema/SemaTemplateVariadic.cpp
The file was modifiedclang/lib/Parse/ParseExpr.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaLookup.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/test/AST/ast-dump-expr-json.cpp
The file was modifiedclang/include/clang/AST/ExprCXX.h
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/test/SemaTemplate/cxx1z-fold-expressions.cpp
Commit f92e0d9384763913a745cbe9c757fbb40691dcd1 by marukawa
[VE] Optimize trunc related instructions

Change to not generate truncate instructions if all use of a truncate
operation don't care about higher bits.  For example, an i32 add
instruction doesn't care about higher 32 bits in 64 bit registers.
Updates regression tests also.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D85418
The file was modifiedllvm/test/CodeGen/VE/max.ll
The file was modifiedllvm/test/CodeGen/VE/selectccf32c.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was modifiedllvm/test/CodeGen/VE/setcci32i.ll
The file was modifiedllvm/test/CodeGen/VE/bitcast.ll
The file was modifiedllvm/test/CodeGen/VE/rem.ll
The file was modifiedllvm/test/CodeGen/VE/right_shift.ll
The file was modifiedllvm/test/CodeGen/VE/selectcci32.ll
The file was modifiedllvm/test/CodeGen/VE/selectcci32i.ll
The file was modifiedllvm/test/CodeGen/VE/selectcci64c.ll
The file was modifiedllvm/test/CodeGen/VE/int_to_fp.ll
The file was modifiedllvm/test/CodeGen/VE/subtraction.ll
The file was modifiedllvm/test/CodeGen/VE/rotr.ll
The file was modifiedllvm/test/CodeGen/VE/addition.ll
The file was modifiedllvm/test/CodeGen/VE/selectccf64c.ll
The file was modifiedllvm/test/CodeGen/VE/multiply.ll
The file was modifiedllvm/test/CodeGen/VE/rotl.ll
The file was modifiedllvm/test/CodeGen/VE/setcci32.ll
The file was modifiedllvm/test/CodeGen/VE/bswap.ll
The file was modifiedllvm/test/CodeGen/VE/div.ll
The file was modifiedllvm/test/CodeGen/VE/select.ll
The file was modifiedllvm/test/CodeGen/VE/cast.ll
The file was modifiedllvm/test/CodeGen/VE/selectcci32c.ll
The file was modifiedllvm/test/CodeGen/VE/left_shift.ll
The file was modifiedllvm/test/CodeGen/VE/branch1.ll
The file was modifiedllvm/test/CodeGen/VE/min.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.h
Commit ecbf2b3496cb708ea854278e3efe16e0244bcbf2 by thakis
fix doc typo to cycle bots
The file was modifiedllvm/docs/CommandGuide/lit.rst
Commit f4ba7a100a56b63f9b3eac709ecea9f514d90c00 by zeratul976
[clangd] Semantic highlighting for dependent template name in template argument

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

Differential Revision: https://reviews.llvm.org/D85272
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
Commit 72c95b22137da97b0c573113771d7bd159fff230 by aeubanks
[NewPM] Add callback for skipped passes

Parallel to https://reviews.llvm.org/D84772.

Will use this for printing when a pass is skipped.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85478
The file was modifiedllvm/unittests/IR/PassBuilderCallbacksTest.cpp
The file was modifiedllvm/include/llvm/IR/PassInstrumentation.h
Commit 5c6d9b2bbfafb47363b31ad06f2c21a9cc93e6ad by Vitaly Buka
[LTO,NFC] Skip generateParamAccessSummary when empty

addGlobalValueSummary can check newly added FunctionSummary
and set HasParamAccess to mark that generateParamAccessSummary
is needed.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D85182
The file was modifiedllvm/include/llvm/IR/ModuleSummaryIndex.h
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 2f1fffab73f83e6a729cb4d68a99f930e44bc7a8 by richard
Disable clang-tidy test that started failing after clang commit ed5a18f.

This checker appears to be intentionally not diagnosing cases where an
operator appearing in a duplicated expression might have side-effects;
Clang is now modeling fold-expressions as having an unresolved operator
name within them, so they now trip up this check.
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
Commit b2847671b83f6acb71a78d4e37bd57967c858f4e by richard
Reinstate check that we don't crash.
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
Commit 0b2616a8045cb776ea1514c3401d0a8577de1060 by Vitaly Buka
[StackSafety] Skip ambiguous lifetime analysis

If we can't identify alloca used in lifetime marker we
need to assume to worst case scenario.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D84630
The file was modifiedllvm/include/llvm/Analysis/StackLifetime.h
The file was modifiedllvm/test/CodeGen/AArch64/stack-tagging.ll
The file was modifiedllvm/lib/Analysis/StackLifetime.cpp
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/lifetime.ll
Commit 1139d899d58916a0662c76e1847b3b12c5a4a5dc by llvm-project
[polly] Unbreak buildbot.

The test failed since commit
bc10888dc "DomTree: Make PostDomTree indifferent to block successors swap"
which is a re-commit of
c35585e20 "DomTree: Make PostDomTree immune to block successors swap"
The file was modifiedpolly/test/Isl/Ast/alias_checks_with_empty_context.ll
Commit faeeed6f52455c872431d7173a00e72660d11a11 by Vitaly Buka
[LLParser,NFC] Simplify forward GV refs update

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D85238
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
Commit 92dcf12b2f2011b0ecc1610281209e554a5047a8 by Vitaly Buka
[StackSafety,NFC] Use CHECK-EMPTY in tests
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/memintrin.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa-alias.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/local.ll
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll
Commit 58b95c9b2bb7d3a1422f79e6d53f5e0c5a4a0387 by Vitaly Buka
[StackSafety,NFC] Add debug counters
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit d97636196af1835d16c75a4786b6ebede2bf4cfc by Vitaly Buka
[StackSafety,NFC] Sort llvm-lto2 resolutions in tests
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa-alias.ll
Commit 39cbcbe1b1e58cbc51755522f69d1c9d43fc709f by Vitaly Buka
[StackSafety,NFC] Add more tests
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/Inputs/ipa.ll
Commit f13f2e16f00e8d23b49b0dfc58d63adc052d0222 by okuraofvegetable
[Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior

This patch is a follow up of D84733.
If a function has noundef attribute in returned position, instructions that return undef or poison value cause UB.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D85178
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll
Commit d8713523a2f5847ca69c8ef172578a915c129fe8 by tkeith
[flang] Improve message for assignment to subprogram

In the example below we were producing the error message
"Assignment to constant 'f' is not allowed":
```
function f() result(r)
  f = 1.0
end
```

This changes it to a more helpful message when the LHS is a subprogram
name and also mentions the function result name when it's a function.

Differential Revision: https://reviews.llvm.org/D85483
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/assign04.f90
Commit 7fb9de2c6f575d807e614ed6021736ba701876a8 by Vitaly Buka
[StackSafety,NFC] Fix tests in debug
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll
Commit c530539badd58e11eb5c1aa426d8e3eba96f07d3 by sameer.sahasrabuddhe
[AArch64][NFC] require aarch64 support for hwasan test

This was breaking builds where the target is not enabled.

Reviewed By: danielkiss, eugenis

Differential Revision: https://reviews.llvm.org/D85412
The file was modifiedcompiler-rt/test/hwasan/TestCases/exported-tagged-global.c
Commit 96b02808afa7eb043b9968b07424cc96bc8d94a6 by mgorny
[Polly] Support linking ScopPassManager against LLVM dylib

Link ScopPassManager to LLVM dylib target if LLVM_LINK_LLVM_DYLIB
is enabled.  This fixes build failures on systems where static LLVM
libraries are not installed.

Differential Revision: https://reviews.llvm.org/D85281
The file was modifiedpolly/unittests/ScopPassManager/CMakeLists.txt
Commit 3359ea62edcc5f1d5831bebc2075746031cd22c5 by qshanz
[Scheduling] Create the missing dependency edges for store cluster

If it is load cluster, we don't need to create the dependency edges(SUb->reg) from SUb to SUa
as they both depend on the base register "reg"

     +-------+
+---->  reg  |
|    +---+---+
|        ^
|        |
|        |
|        |
|    +---+---+
|    |  SUa  |  Load 0(reg)
|    +---+---+
|        ^
|        |
|        |
|    +---+---+
+----+  SUb  |  Load 4(reg)
     +-------+

But if it is store cluster, we need to create it as follow shows to avoid the instruction store
depend on scheduled in-between SUb and SUa.

     +-------+
+---->  reg  |
|    +---+---+
|        ^
|        |         Missing       +-------+
|        | +-------------------->+   y   |
|        | |                     +---+---+
|    +---+-+-+                       ^
|    |  SUa  |  Store x 0(reg)       |
|    +---+---+                       |
|        ^                           |
|        |  +------------------------+
|        |  |
|    +---+--++
+----+  SUb  |  Store y 4(reg)
     +-------+

Reviewed By: evandro, arsenm, rampitec, foad, fhahn

Differential Revision: https://reviews.llvm.org/D72031
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/half.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/stack-realign.ll
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-stp-cluster.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/store-weird-sizes.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fshr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
Commit 55de46f3b2c5651b06e4739209907f14ab781d89 by qshanz
[PowerPC] Support constrained fp operation for setcc

The constrained fp operation fcmp was added by https://reviews.llvm.org/D69281.
This patch is trying to add the support for PowerPC backend.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D81727
The file was modifiedllvm/lib/Target/PowerPC/P9InstrResources.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/fp-strict-fcmp.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
Commit cce1b0e8919e9b0036f5debe60865575520df1c7 by biplmish
[PowerPC] Implement Vector Extract Low/High Order Builtins in LLVM/Clang

This patch implements the function prototypes vec_extractl and vec_extracth in altivec.h to utilize the vector extract double element instructions introduced in Power10.

Differential Revision: https://reviews.llvm.org/D84622
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
Commit dbf44b833067cfe59056d07130e7afcb8fc149c7 by Jonas Devlieghere
[LLDB] Mark test_launch_simple as a no-debug-info test

No need to run this test with the multiple variants.
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
Commit 0905d9f31ead399d054c5d2a2c353e690f5c8daa by david.sherwood
[SVE][CodeGen] Fix bug with store of unpacked FP scalable vectors

Fixed an incorrect pattern in lib/Target/AArch64/AArch64SVEInstrInfo.td
for storing out <vscale x 2 x f32> unpacked scalable vectors. Added
a couple of tests to

  test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll

Differential Revision: https://reviews.llvm.org/D85441
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
Commit 2b2bfdb474da0bf070a8e5a06f704a37a06500d6 by qshanz
[NFC] Add the stats for load/store cluster

We have the stats for MacroFusion but miss it for load/store cluster.
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
Commit 57f9518bf032d773c35c86ec99983a47849fd322 by zeratul976
[clangd] Highlight structured bindings at local scope as LocalVariable

Differential Revision: https://reviews.llvm.org/D85500
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
Commit 9b49a4d30120801aca5962504fc039c3fd6b2007 by mkazantsev
[Test] Add one more test on IndVars that was failing on one of older builds
The file was addedllvm/test/Transforms/IndVarSimplify/sentinel.ll
Commit f3cc4df51da4331b170065e01a6a80ee05ed0c23 by kuhnel
Revert "[CMake] Simplify CMake handling for zlib"

This reverts commit 1adc494bce44f6004994deed61b30d4b71fe1d05.
This patch broke the Windows compilation on buildbot and pre-merge testing:
http://lab.llvm.org:8011/builders/mlir-windows/builds/5945
https://buildkite.com/llvm-project/llvm-master-build/builds/780
The file was modifiedllvm/utils/gn/secondary/lld/test/BUILD.gn
The file was modifiedllvm/test/CMakeLists.txt
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/lib/Support/Compression.cpp
The file was modifiedllvm/lib/Support/CRC.cpp
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedllvm/include/llvm/Config/config.h.cmake
The file was modifiedlld/test/CMakeLists.txt
The file was modifiedllvm/unittests/Support/CompressionTest.cpp
The file was modifiedclang/test/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
The file was modifiedllvm/test/lit.site.cfg.py.in
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
The file was modifiedcompiler-rt/test/lit.common.configured.in
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in
The file was modifiedlldb/cmake/modules/LLDBStandalone.cmake
The file was modifiedlld/test/lit.site.cfg.py.in
The file was modifiedllvm/cmake/config-ix.cmake
Commit 6dc863cd858f32ef0060c46edda2ab56a3cf76b4 by thomasp
[clang, test, Darwin] Fix tests expecting Darwin target

Clang tests Driver/apple-arm64-arch.c and
Driver/darwin-warning-options.c test Darwin driver functionality but
only require the host system to be Darwin. This leads the tests to fail
when building a cross-compiler on Darwin and to be marked unsupported
when cross-compiling to Darwin from another system. This commit changes
the requirements for those tests to require the target to be Darwin.

Reviewed By: steven_wu

Differential Revision: https://reviews.llvm.org/D85367
The file was modifiedclang/test/Driver/apple-arm64-arch.c
The file was modifiedclang/test/Driver/darwin-warning-options.c
Commit c575ba28de2f24cb2fd602780029bdaa8e0ce4a5 by okuraofvegetable
[Attributor] AAPotentialValues Interface

This is a split patch of D80991.
This patch introduces AAPotentialValues and its interface only.
For more detail of AAPotentialValues abstract attribute, see the original patch.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D83283
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was addedllvm/test/Transforms/Attributor/potential.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit ba41a0f7339c8cbd065f032cc5f8c1d87a74e124 by ecaldas
[SyntaxTree][NFC] remove redundant namespace-specifiers

Differential Revision: https://reviews.llvm.org/D85427
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/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit b6b0ff18a3126500361223088aabafa8ea74d779 by ikudrin
[DebugInfo] Clean up DIEUnit. NFC.

This removes members of the DIEUnit class which were used only in unit
tests. Note also that child classes shadowed some of these methods,
namely, getDwarfVersion() was overridden in DwartfUnit and getLength()
was overridden in DwarfCompileUnit.

Differential Revision: https://reviews.llvm.org/D85436
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
The file was modifiedllvm/include/llvm/CodeGen/DIE.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
The file was modifiedllvm/unittests/DebugInfo/DWARF/DwarfGenerator.h
Commit 1eade73d8b0d8a08e7f3a62856a1f2004a046efb by ikudrin
[DebugInfo] Remove DwarfUnit::getDwarfVersion(). NFC.

This helper method was used only in one place, which can easily use the
direct call.

Differential revision: https://reviews.llvm.org/D85438
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
Commit 67174765db527ed1911f33109a34026f3913601d by hokein.wu
[AST][RecoveryExpr] Fix the missing type when rebuilding RecoveryExpr in TreeTransform.

Differential Revision: https://reviews.llvm.org/D85423
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was addedclang/test/SemaTemplate/recovery-tree-transform-crash.cpp
Commit 3ac1eb6358b172f54788def4125f80ddd9170d8e by marukawa
[VE] Remove obsoleted getVEAsmModeForCPU function

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D85507
The file was modifiedclang/lib/Driver/ToolChains/Arch/VE.h
The file was modifiedclang/lib/Driver/ToolChains/Arch/VE.cpp
Commit 63bc5d7863296acbf4a824b0178e80c073c08726 by marukawa
[VE] Change to expand multiply related instructions

Change to expand MULHU/MULHS/UMUL_LOHI/SMUL_LOHI for i32 and i64 since
those instructions are not available on Aurora SX VE.  Some of them
are used in expansion of i128 multiply, so need to modify them to
support i128.  Then, update basic arithmetic regression tests of
i128 and signed/unsigned i32 typed integer values.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D85490
The file was modifiedllvm/test/CodeGen/VE/addition.ll
The file was modifiedllvm/test/CodeGen/VE/div.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was modifiedllvm/test/CodeGen/VE/rem.ll
The file was modifiedllvm/test/CodeGen/VE/multiply.ll
The file was modifiedllvm/test/CodeGen/VE/subtraction.ll
Commit 01bc708126c55c94495d0b55cb2003f67b9b24bf by n.james93
[NFC] Replace hasName in loop for hasAnyName
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
Commit a70161808bcd6560e268aecf90138ff68f41fe54 by hokein.wu
[clangd] Include the underlying decls in go-to-definition.

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

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D74054
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
Commit be8b3f0c22048519f8a226e46f6a616806a8e558 by oliver.stannard
[AArch64] Disable waitid.cpp test for AArch64

This test is failing intermittently on the AArch64 build bots, disable
it for now to keep the bots green while we investigate it.
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/waitid.cpp
Commit da9e7b1ab03be92b0c3060cf149ab882d61e634f by mkazantsev
[Test] Added test showing missing range check elimination opportunity in IndVars

Seems that SCEV is not powerful enough to handle this.
The file was addedllvm/test/Analysis/ScalarEvolution/predicated_ranges.ll
Commit 3f906c54a2def26ba0c407a309c7c30ce0e0cc83 by ntv
[mlir][Vector] Add 2-D vector contract lowering to ReduceOp

This new pattern mixes vector.transpose and direct lowering to vector.reduce.
This allows more progressive lowering than immediately going to insert/extract and
composes more nicely with other canonicalizations.
This has 2 use cases:
1. for very wide vectors the generated IR may be much smaller
2. when we have a custom lowering for transpose ops we can target it directly
rather than rely LLVM

Differential Revision: https://reviews.llvm.org/D85428
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was modifiedmlir/include/mlir/Interfaces/VectorInterfaces.td
The file was modifiedmlir/test/Dialect/Vector/vector-contract-transforms.mlir
Commit 1ffb468369607e0ccf6e6790965471019dbb7357 by qshanz
[NFC][Test] Format the test with script update_llc_test_checks.py
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.round.f64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll
Commit aa38e97ad5e44a933760a026e7a5239bb400d72b by llvm-dev
[SLP][X86] Add abs/smax/smin/umax/umin intrinsic vectorization tests
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-abs.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
Commit 24cca30f7f0de49e77af7e8c7719680daec2418e by llvm-dev
Remove unreachable return (PR47026)
The file was modifiedclang/lib/Basic/Targets/Mips.cpp
Commit 1d782942500b2cbc9765ccf16264bb498850cefb by simon.tatham
[Sema][BFloat] Forbid arithmetic on vectors of bfloat.

Vectors of bfloat are a storage format only; you're supposed to
explicitly convert them to a wider type to do arithmetic on them.
But currently, if you write something like

  bfloat16x4_t test(bfloat16x4_t a, bfloat16x4_t b) { return a + b; }

then the clang frontend accepts it without error, and (ARM or AArch64)
isel fails to generate code for it.

Added a rule in Sema that forbids the attempt from even being made,
and tests that check it. In particular, we also outlaw arithmetic
between vectors of bfloat and any other vector type.

Patch by Luke Cheeseman.

Reviewed By: LukeGeeson

Differential Revision: https://reviews.llvm.org/D85009
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/Sema/arm-bfloat.cpp
Commit ffd258f7bbba2a65800970fcea6648fb285d95f4 by llvm-dev
Remove unreachable return (PR47028)
The file was modifiedclang/lib/Driver/ToolChains/Arch/Mips.cpp
Commit f35992b75b4e437fc34a008bbf7b9cacf042a5bc by llvm-dev
[SLP][X86] Add smax intrinsic reduction tests

SLP currently only matches the ICMP+SELECT patterns for min/max reductions
The file was addedllvm/test/Transforms/SLPVectorizer/X86/horizontal-smax.ll
Commit 18212cbcdadd130e5b2d1bc2bb38e4396ef8a46f by llvm-dev
Remove duplicate/unreachable break (PR47029)
The file was modifiedclang/lib/Sema/SemaType.cpp
Commit fcefb532225110be5e73ba0f6285cb869bb56148 by llvm-dev
Remove unreachable break. NFC
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 66a163f32817faa63e3717eb8ff1fe4188626c75 by llvm-dev
[DAG] GetDemandedBits - remove custom AND handling.

As mentioned on D85463, we should be using SimplifyMultipleUseDemandedBits (which is the default fallback).

The minor regression in illegal-bitfield-loadstore.ll will be addressed properly by D77804.
The file was modifiedllvm/test/CodeGen/ARM/illegal-bitfield-loadstore.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit db1c197bf8247d8dced41ae2f579168c7b54d9ef by zinenko
[mlir] take LLVMContext in MLIR-to-LLVM-IR translation

Due to the original type system implementation, LLVMDialect in MLIR contains an
LLVMContext in which the relevant objects (types, metadata) are created. When
an MLIR module using the LLVM dialect (and related intrinsic-based dialects
NVVM, ROCDL, AVX512) is converted to LLVM IR, it could only live in the
LLVMContext owned by the dialect. The type system no longer relies on the
LLVMContext, so this limitation can be removed. Instead, translation functions
now take a reference to an LLVMContext in which the LLVM IR module should be
constructed. The caller of the translation functions is responsible for
ensuring the same LLVMContext is not used concurrently as the translation no
longer uses a dialect-wide context lock.

As an additional bonus, this change removes the need to recreate the LLVM IR
module in a different LLVMContext through printing and parsing back, decreasing
the compilation overhead in JIT and GPU-kernel-to-blob passes.

Reviewed By: rriddle, mehdi_amini

Differential Revision: https://reviews.llvm.org/D85443
The file was modifiedmlir/include/mlir/Target/ROCDLIR.h
The file was modifiedmlir/include/mlir/Target/LLVMIR.h
The file was modifiedmlir/examples/toy/Ch6/toyc.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp
The file was modifiedmlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertKernelFuncToBlob.cpp
The file was modifiedmlir/docs/Tutorials/Toy/Ch-6.md
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp
The file was modifiedmlir/include/mlir/Target/NVVMIR.h
The file was modifiedmlir/lib/Target/LLVMIR/LLVMAVX512Intr.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/examples/toy/Ch7/toyc.cpp
The file was modifiedmlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToNVVMIR.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
Commit 16b02253778caf1723b63c8ee482bb68ccae0a90 by zinenko
[mlir] do not require LLVMDialect in conversion from LLVM IR

Historically, LLVMDialect has been required in the conversion from LLVM IR in
order to be able to construct types. This is no longer necessary with the new
type model and the dialect can be replaced with a local LLVM context.

Reviewed By: rriddle, mehdi_amini

Differential Revision: https://reviews.llvm.org/D85444
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
Commit 87a89e0f7753711ef5f2741a1494e7a44da99d21 by zinenko
[mlir] Remove llvm::LLVMContext and llvm::Module from mlir::LLVMDialectImpl

Original modeling of LLVM IR types in the MLIR LLVM dialect had been wrapping
LLVM IR types and therefore required the LLVMContext in which they were created
to outlive them, which was solved by placing the LLVMContext inside the dialect
and thus having the lifetime of MLIRContext. This has led to numerous issues
caused by the lack of thread-safety of LLVMContext and the need to re-create
LLVM IR modules, obtained by translating from MLIR, in different LLVM contexts
to enable parallel compilation. Similarly, llvm::Module had been introduced to
keep track of identified structure types that could not be modeled properly.

A recent series of commits changed the modeling of LLVM IR types in the MLIR
LLVM dialect so that it no longer wraps LLVM IR types and has no dependence on
LLVMContext and changed the ownership model of the translated LLVM IR modules.
Remove LLVMContext and LLVM modules from the implementation of MLIR LLVM
dialect and clean up the remaining uses.

The only part of LLVM IR that remains necessary for the LLVM dialect is the
data layout. It should be moved from the dialect level to the module level and
replaced with an MLIR-based representation to remove the dependency of the
LLVMDialect on LLVM IR library.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85445
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
Commit 9c94908320549a1a2328c758d6bbb694466021e7 by pifon
BEGIN_PUBLIC
[mlir] Add support for unranked case for `tensor_store` and `tensor_load` ops.
END_PUBLIC

Differential Revision: https://reviews.llvm.org/D85518
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/IR/core-ops.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 100e1f911c0e80360af2fa676f832a6f2b52c59d by Xing
[macho2yaml] Remove unused functions. NFC.

dumpDebugStrings() and dumpDebugAbbrev() are no longer used in
macho2yaml. This patch helps remove them.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D85496
The file was modifiedllvm/tools/obj2yaml/macho2yaml.cpp
Commit 351aac09854399dfb3abb581ef1762a9cd2e4991 by vince.a.bridgers
[Sema] Add casting check for fixed to fixed point conversions

This change squelches the warning for a cast from fixed to fixed point
conversions when -Wbad-function-cast is enabled.

Fixes:

cast from function call of type '_Fract' to non-matching type '_Fract'
[-Wbad-function-cast]

Reviewed By: bjope

Differential Revision: https://reviews.llvm.org/D85157
The file was modifiedclang/test/Sema/warn-bad-function-cast.c
The file was modifiedclang/lib/Sema/SemaCast.cpp
Commit 90d1c66c7ce48fdaabd842786034e301fdd40fff by hokein.wu
[clangd] Fix a typo, NFC.
The file was modifiedclang-tools-extra/clangd/ParsedAST.h
Commit 177735aac7fcac2b1085bfcdcf589681248b5ec8 by bevin.hansson
[LangRef] Minor fixes to intrinsic headers and descriptions. NFC.
The file was modifiedllvm/docs/LangRef.rst
Commit 5de6c56f7e862958cfc6de1abae49c07f6e8c7ed by bevin.hansson
[Intrinsic] Add sshl.sat/ushl.sat, saturated shift intrinsics.

Summary:
This patch adds two intrinsics, llvm.sshl.sat and llvm.ushl.sat,
which perform signed and unsigned saturating left shift,
respectively.

These are useful for implementing the Embedded-C fixed point
support in Clang, originally discussed in
http://lists.llvm.org/pipermail/llvm-dev/2018-August/125433.html
and
http://lists.llvm.org/pipermail/cfe-dev/2018-May/058019.html

Reviewers: leonardchan, craig.topper, bjope, jdoerfert

Subscribers: hiraditya, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83216
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-sat.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was addedllvm/test/CodeGen/X86/ushl_sat.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ushlsat.mir
The file was addedllvm/test/CodeGen/X86/sshl_sat_vec.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sshlsat.mir
The file was addedllvm/test/CodeGen/X86/ushl_sat_vec.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td
The file was addedllvm/test/CodeGen/X86/sshl_sat.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/docs/GlobalISel/GenericOpcode.rst
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
Commit aa0d19a0c8f5ebccb5768411dfc4feddff7bed08 by bevin.hansson
[Fixed Point] Add fixed-point shift operations and consteval.

Reviewers: rjmccall, leonardchan, bjope

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83212
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Basic/FixedPoint.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was addedclang/test/Frontend/fixed_point_shift.c
The file was modifiedclang/include/clang/Basic/FixedPoint.h
The file was modifiedclang/test/Frontend/fixed_point_errors.c
Commit ffe1edfc53d81aa7d3721365cbeedef029f36577 by jay.foad
[NFC][GVN] Fix "avaliable" typos

Differential Revision: https://reviews.llvm.org/D85520
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
Commit 6c64f05b905effa3ebd56bf8b7e678c4340d1e95 by wei.huang
[PowerPC] Add compatibility check for PPC PLT stubs

Compatibility checks for PPC64PltCallStub and PPC64PCRelPLTStub are
added in this patch to prevent the usage of incompatible thunk/stub.

Reviewed By: sfertile, nemanjai, stefanp

Differential Revision: https://reviews.llvm.org/D85459
The file was modifiedlld/ELF/Thunks.cpp
The file was addedlld/test/ELF/ppc64-plt-stub-compatible.s
Commit 4a7aedb843a591900b419e86dcf46d9bec4c5526 by a.bataev
[OPENMP]Simplify representation for atomic, critical, master and section
constrcut.

Several constructs may be represented wityout relying on CapturedStmt.
It saves memory and improves compilation speed.
The file was modifiedclang/test/AST/ast-dump-openmp-atomic.c
The file was modifiedclang/lib/AST/StmtPrinter.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/test/OpenMP/atomic_messages.c
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/critical_codegen.cpp
The file was modifiedclang/lib/Sema/JumpDiagnostics.cpp
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/test/OpenMP/master_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_sections_misc_messages.c
The file was modifiedclang/lib/Analysis/CFG.cpp
The file was modifiedclang/test/AST/ast-dump-openmp-master.c
The file was modifiedclang/test/OpenMP/atomic_messages.cpp
The file was modifiedclang/test/AST/ast-dump-openmp-section.c
The file was modifiedclang/test/OpenMP/sections_misc_messages.c
The file was modifiedclang/test/AST/ast-dump-openmp-critical.c
The file was modifiedclang/test/OpenMP/critical_messages.cpp
Commit d8c6d083c954b03855700e16c81b483d2ae654d0 by kamau.bridgeman
[PowerPC][PCRelative] Set TLS unsupported with PC relative memops

Introduce a fatal error if any thread local storage code is compiled
using pc relative memory operations as well as a hidden override
option `-enable-ppc-pcrel-tls` so that this support can be incrementally
added if possible.

Reviewed By: #powerpc, nemanjai

Differential Revision: https://reviews.llvm.org/D85448
The file was addedllvm/test/CodeGen/PowerPC/pcrel-tls.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 575b22b5d11bc4c4eb85dde456d9ac7f3cfa3924 by joker.eph
Revisit Dialect registration: require and store a TypeID on dialects

This patch moves the registration to a method in the MLIRContext: getOrCreateDialect<ConcreteDialect>()

This method requires dialect to provide a static getDialectNamespace()
and store a TypeID on the Dialect itself, which allows to lazyily
create a dialect when not yet loaded in the context.
As a side effect, it means that duplicated registration of the same
dialect is not an issue anymore.

To limit the boilerplate, TableGen dialect generation is modified to
emit the constructor entirely and invoke separately a "init()" method
that the user implements.

Differential Revision: https://reviews.llvm.org/D85495
The file was modifiedmlir/examples/toy/Ch3/mlir/Dialect.cpp
The file was modifiedmlir/include/mlir/IR/MLIRContext.h
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/IR/Dialect.cpp
The file was modifiedmlir/examples/toy/Ch6/mlir/Dialect.cpp
The file was modifiedmlir/unittests/IR/DialectTest.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMAVX512Dialect.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/examples/toy/Ch4/mlir/Dialect.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/examples/standalone/lib/Standalone/StandaloneDialect.cpp
The file was modifiedmlir/include/mlir/IR/Dialect.h
The file was modifiedmlir/lib/Dialect/Quant/IR/QuantOps.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/SDBM/SDBMDialect.h
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/Dialect.cpp
The file was modifiedmlir/examples/toy/Ch2/mlir/Dialect.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
The file was modifiedmlir/examples/toy/Ch5/mlir/Dialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp
The file was modifiedmlir/lib/Dialect/AVX512/IR/AVX512Dialect.cpp
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
Commit 98eccec3ae3e6bd9b6ecd7a132d936c9d70893d1 by amy.kwan1
[PowerPC] Add Vector Extract/Expand/Count with Mask, Move to VSR Mask Instruction Definitions and MC Tests

This patch adds the instruction definitions and assembly/disassembly tests for
the following set of instructions:

Vector Extract [byte | half | word | doubleword | quad] with mask
Vector Expand [byte | half | word | doubleword | quad] with mask
Move to VSR [byte | byte immediate | half | word | doubleword | quad] with mask
Vector Count Mask Bits [byte | half | word | doubleword]

Differential Revision: https://reviews.llvm.org/D83724
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding-ISA31.s
Commit 25e38c3f3c2a814797f53d0f08a687b3b4a028e4 by david.green
[ARM] Extra reduction plus tailpredication tests. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll
Commit c3c95b9c808519662afe8b9053aa88b5be451d1d by ajcbik
[mlir] [VectorOps] Improve lowering of extract_strided_slice (and friends like shape_cast)

Using a shuffle for the last recursive step in progressive lowering not only
results in much more compact IR, but also more efficient code (since the
backend is no longer confused on subvector aliasing for longer vectors).

E.g. the following

  %f = vector.shape_cast %v0: vector<1024xf32> to vector<32x32xf32>

yields much better x86-64 code that runs 3x faster than the original.

Reviewed By: bkramer, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D85482
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
Commit 7d0f69118e61a86f4565ae372d6125cae4bc8d83 by tyker
[NFC] Add utility to sum/merge stats files

Add a small script to sum *.stats file given as input and output the totals
usage example:
    merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D83505
The file was addedllvm/utils/merge-stats.py
Commit cf03bcf92922c483e1ecd4691263e01d14557c3e by tkeith
[flang] Remove extra CMAKE_CXX_FLAGS in Lower and Optimizer

`-Wno-error` and `-Wno-unused-parameter` appear to no longer be needed
for Lower and Optimizer.

Differential Revision: https://reviews.llvm.org/D85465
The file was modifiedflang/lib/Lower/CMakeLists.txt
The file was modifiedflang/lib/Optimizer/CMakeLists.txt
Commit 47cadd6106c0a9218f653760dd045cbd16df0fd6 by Artem Dergachev
[analyzer] pr47030: MoveChecker: Unforget a comma in the suppression list.
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator-cxx.h
The file was modifiedclang/test/Analysis/use-after-move.cpp
Commit ac3e720dc1af9555c5591017bd2b6c7f6641a34d by Yaxun.Liu
Make clang HIP headers compatible with C++98

Automation to detect compiler features, such as CMake's target_compile_features,
would attempt to detect compiler features by explicitly using langugage flags.
This change ensures that the HIP headers would still work with C++98.

Patch by Siu Chi Chan

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

Change-Id: I304e964b18a525b0fde55efd841da74b6c4dc8ed
The file was modifiedclang/lib/Headers/__clang_hip_runtime_wrapper.h
The file was modifiedclang/lib/Headers/__clang_hip_math.h
The file was modifiedclang/lib/Headers/__clang_hip_libdevice_declares.h
Commit 382df1c6744d09e9f3362f9743788574913980b4 by 31459023+hctim
Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets"

This reverts commit b497665d98ad5026b1d3d67d5793a28fefe27bea.

Spent some time trying to reproduce this locally, reverting in a
desparate attempt to fix the sanitizer buildbot:
- http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/28828

I don't know exactly why or how this patch breaks the bots, but it seems
pretty concrete that it's the culprit.
The file was modifiedllvm/test/MC/Mips/elf-relsym.s
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp
The file was modifiedllvm/test/MC/ELF/relocation-386.s
The file was modifiedllvm/test/MC/ELF/basic-elf-32.s
The file was modifiedllvm/test/MC/ELF/compression.s
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
The file was modifiedllvm/test/MC/Mips/xgot.s
Commit 954bd9c861218357977f88b9678c7b1df515e14a by Yuanfang Chen
[NewPM] Only verify loop for nonskipped user loop pass

No verification for pass mangers since it is not needed.
No verification for skipped loop pass since the asserted condition is not used.

Add a BeforeNonSkippedPass callback for this. The callback needs more
inputs than its parameters to work so the callback is added on-the-fly.

Reviewed By: aeubanks, asbirlea

Differential Revision: https://reviews.llvm.org/D84977
The file was modifiedllvm/test/Feature/optnone-opt.ll
The file was modifiedllvm/include/llvm/IR/PassInstrumentation.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopPassManager.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h
Commit 911565d1085d9447363fe8ad041817436c4998fe by Yuanfang Chen
[NewPM][CodeGen] Introduce machine pass and machine pass manager

machine pass could define four methods:
- `PreservedAnalyses run(MachineFunction &, MachineFunctionAnalysisManager &)`
- `Error doInitialization(Module &, MachineFunctionAnalysisManager &)`
- `Error doFinalization(Module &, MachineFunctionAnalysisManager &)`
- `Error run(Module &, MachineFunctionAnalysisManager &)`

machine pass manger:
- MachineFunctionAnalysisManager:
  Basically an AnalysisManager<MachineFunction> augmented with the ability to
  register and query IR analyses
- MachineFunctionPassManager: support only two methods, `addPass` and `run`

Reviewed By: arsenm, asbirlea, aeubanks

Differential Revision: https://reviews.llvm.org/D67687
The file was modifiedllvm/include/llvm/IR/PassManager.h
The file was addedllvm/include/llvm/CodeGen/MachinePassManager.h
The file was addedllvm/lib/CodeGen/MachinePassManager.cpp
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/LLVMBuild.txt
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt
The file was addedllvm/unittests/CodeGen/PassManagerTest.cpp
Commit 4e43f1804817b36fee62aeb7e1eb1602245efdb6 by jezng
[lld-macho] Ensure .tbss sections are also considered as ZeroFilled

This diff makes the behavior in {D80859} and {D81888} apply to
thread-local ZeroFill sections too. I realized this was necessary whie
trying to implement thread-local variables.

Reviewed By: #lld-macho, compnerd, MaskRay

Differential Revision: https://reviews.llvm.org/D85079
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/test/MachO/bss.s
Commit ca85e3733816ce444b86dd4598c1a98a54464b10 by jezng
[lld-macho] Support static linking of thread-locals

Note: What ELF refers to as "TLS", Mach-O seems to refer to as "TLV", i.e.
thread-local variables.

This diff implements support for TLV relocations that reference defined
symbols. On x86_64, TLV relocations are always used with movq opcodes, so for
defined TLVs, we don't need to create a synthetic section to store the
addresses of the symbols -- we can just convert the `movq` to a `leaq`.

One notable quirk of Mach-O's TLVs is that absolute-address relocations
inside TLV-defining sections behave differently -- their addresses are
no longer absolute, but relative to the start of the target section.
(AFAICT, RIP-relative relocations are not allowed in these sections.)

Reviewed By: #lld-macho, compnerd, smeenai

Differential Revision: https://reviews.llvm.org/D85080
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
The file was modifiedlld/MachO/InputSection.h
The file was addedlld/test/MachO/invalid/bad-tlv-def.s
The file was modifiedlld/MachO/Arch/X86_64.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/MachO/InputSection.cpp
The file was addedlld/test/MachO/tlv.s
The file was addedlld/test/MachO/invalid/bad-tlv-opcode.s
The file was modifiedlld/MachO/SyntheticSections.cpp
Commit 25367dfefb7ba5cc35dc56bf5063562695f1dd04 by jezng
[lld-macho] Add .tbd support for frameworks

Required for e.g. linking iOS apps since they don't have a platform-native
SDK

Reviewed By: #lld-macho, compnerd, smeenai

Differential Revision: https://reviews.llvm.org/D85153
The file was addedlld/test/MachO/Inputs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd
The file was addedlld/test/MachO/stub-framework.s
The file was modifiedlld/MachO/Driver.cpp
Commit 8abb5fb68f81b0e42d824bf080b1cef9a61559d6 by ecaldas
[SyntaxTree] Use simplified grammar rule for `NestedNameSpecifier` grammar nodes

This is our grammar rule for nested-name-specifiers:
globalbal-specifier:
  /*empty*/
simple-template-specifier:
  template_opt simple-template-id
name-specifier:
  global-specifier
  decltype-specifier
  identifier
  simple-template-specifier
nested-name-specifier:
  list(name-specifier, ::, non-empty, terminated)

It is a relaxed version of C++ [expr.prim.id] and quite simpler to map to our API.

TODO: refine name specifiers, `simple-template-name-specifier` and
decltype-name-specifier` are token soup for now.
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit c354b2e3bfe6709ffd78d0fcd017b7e5be7a7a23 by zequanwu
[Clang] Add note for bad conversion when expression is pointer to forward-declared type

Differential Revision: https://reviews.llvm.org/D85390
The file was addedclang/test/SemaCXX/pointer-forward-declared-class-conversion.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Modules/namespaces.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/test/SemaCXX/elaborated-type-specifier.cpp
Commit f1d525734f86ac4b1a7bf80f3a82291864026de0 by Jonas Devlieghere
[lldb] Store the Apple SDK in dotest's configuration.

This patch stores the --apple-sdk argument in the dotest configuration.
When it's set, use it instead of the triple to determine the current
platform.

Differential revision: https://reviews.llvm.org/D85537
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbplatformutil.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
Commit 04bd5b52862098945a8bb9449d6accc120304cb5 by Austin.Kerbow
[AMDGPU] Fix not rescheduling without clustering

Regions are sometimes skipped which should be rescheduled without memory op
clustering. RegionIdx is not incremented when iterating over regions that
are flagged to be skipped, causing the index to be incorrect.

Thanks to Vang Thao for discovering this bug!

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D85498
The file was modifiedllvm/test/CodeGen/AMDGPU/schedule-regpressure-limit-clustering.ll
The file was modifiedllvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
Commit 2b5502c3503ececff3b3da1026cd635b026eced6 by aeubanks
[NFC] Use value initializer for OVERLAPPED

To fix
../llvm/lib/Support/Windows/Path.inc(1265,21): warning: missing field
'InternalHigh' initializer [-Wmissing-field-initializers]
  OVERLAPPED OV = {0};

Differential Revision: https://reviews.llvm.org/D85480
The file was modifiedllvm/lib/Support/Windows/Path.inc
Commit cc5f6252c7a9bc5eac14d346cf63381e4b26f0f7 by llvmgnsyncbot
[gn build] Port 911565d1085
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 1bf4629f1112f28a97d048f8b3dbf483ba6604b8 by aeubanks
[PPC] Rename bool-ret-to-int -> ppc-bool-ret-to-int

Reviewed By: #powerpc, nemanjai

Differential Revision: https://reviews.llvm.org/D85391
The file was modifiedllvm/test/CodeGen/PowerPC/BoolRetToIntTest.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
Commit 3110e7b077d0031e8743614f742a500ccc522c77 by ntv
[mlir] Introduce AffineMinSCF folding as a pattern

This revision adds a folding pattern to replace affine.min ops by the actual min value, when it can be determined statically from the strides and bounds of enclosing scf loop .

This matches the type of expressions that Linalg produces during tiling and simplifies boundary checks. For now Linalg depends both on Affine and SCF but they do not depend on each other, so the pattern is added there.
In the future this will move to a more appropriate place when it is determined.

The canonicalization of AffineMinOp operations in the context of enclosing scf.for and scf.parallel proceeds by:
  1. building an affine map where uses of the induction variable of a loop
  are replaced by `%lb + %step * floordiv(%iv - %lb, %step)` expressions.
  2. checking if any of the results of this affine map divides all the other
  results (in which case it is also guaranteed to be the min).
  3. replacing the AffineMinOp by the result of (2).

The algorithm is functional in simple parametric tiling cases by using semi-affine maps. However simplifications of such semi-affine maps are not yet available and the canonicalization does not succeed yet.

Differential Revision: https://reviews.llvm.org/D82009
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was addedmlir/test/Dialect/Linalg/fold-affine-min-scf.mlir
The file was modifiedmlir/lib/IR/AffineExpr.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/include/mlir/IR/AffineExpr.h
Commit aedaa077f58df48f6777711e2a79443a40df7f07 by tejohnson
Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4%

The history of dropTriviallyDeadConstantArrays is like this. Because the appending linkage uses too much memory (http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20150105/251381.html), dropTriviallyDeadConstantArrays was introduced (https://reviews.llvm.org/rG81f385b0c6ea37dd7195a65be162c75bbdef29d2) to release unused constant arrays. Recently, dropTriviallyDeadConstantArrays was improved (https://reviews.llvm.org/rG81f385b0c6ea37dd7195a65be162c75bbdef29d2) to reduce its quadratic cost.

Our recent LTO profiling shows that when a target is large, 15-20% of time cost is from the SetVector::insert called by dropTriviallyDeadConstantArrays.

A large application has hundreds or thousands of modules; each module calls dropTriviallyDeadConstantArrays once for cleaning up tens of thousands of ConstantArrays a module has. In those ConstantArrays, usually around 5 can be deleted; a very very few deleted ConstantArrays reference other ConstantArrays: less than 10 out of millions.

Given this, the cost of SetVector::insert is mainly from the construction of WorkList from ArrayConstants. This motivated the fix that iterates ArrayConstants directly, and uses WorkList only when necessary.

Our evaluation shows that
1) The cumulative time percentage of dropTriviallyDeadConstantArrays is reduced from 15-17% to 4-6%.
2) For targets with LTO time > 20min, the time reduction is about 20%.
3) No observable performance impact for build without using LTO.

{F12506218}
{F12506221}

Reviewed By: mehdi_amini, tejohnson, jdoerfert

Differential Revision: https://reviews.llvm.org/D85379
The file was modifiedllvm/lib/IR/LLVMContextImpl.cpp
Commit 2a01d7f7b6487b87bfb4722d53fcba30129ded13 by ntv
[mlir][SCF] Add utility to outline the then and else branches of an scf.IfOp

Differential Revision: https://reviews.llvm.org/D85449
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Utils.cpp
The file was removedmlir/test/Transforms/loop-utils.mlir
The file was addedmlir/test/Transforms/scf-loop-utils.mlir
The file was modifiedmlir/lib/Dialect/SCF/Transforms/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/SCF/Utils.h
The file was addedmlir/test/Transforms/scf-if-utils.mlir
The file was modifiedmlir/test/lib/Transforms/TestSCFUtils.cpp
Commit 320eab2d558fde0b61437e9b9075bfd301c2c474 by Yuanfang Chen
Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager"

This reverts commit 911565d1085d9447363fe8ad041817436c4998fe.

Broke some non-Linux bots.
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/include/llvm/IR/PassManager.h
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/LLVMBuild.txt
The file was removedllvm/unittests/CodeGen/PassManagerTest.cpp
The file was removedllvm/include/llvm/CodeGen/MachinePassManager.h
The file was removedllvm/lib/CodeGen/MachinePassManager.cpp
Commit 7764b52cbd413354cd62fa2afe62a2611181044c by llvmgnsyncbot
[gn build] Port 320eab2d558
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
Commit 0e9e06a6d4c5e0f267fffe7ec3e0c8e8b22ae46b by pklausler
[flang][NFC] Reformat files with current clang-format

Differential Revision: https://reviews.llvm.org/D85489
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was modifiedflang/include/flang/Parser/parse-state.h
The file was modifiedflang/lib/Semantics/pointer-assignment.cpp
The file was modifiedflang/unittests/Runtime/external-io.cpp
The file was modifiedflang/include/flang/Semantics/expression.h
The file was modifiedflang/lib/Parser/basic-parsers.h
The file was modifiedflang/lib/Parser/prescan.h
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/include/flang/Parser/message.h
The file was modifiedflang/include/flang/Evaluate/traverse.h
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/include/flang/Semantics/semantics.h
The file was modifiedflang/include/flang/Common/indirection.h
The file was modifiedflang/include/flang/Common/template.h
The file was modifiedflang/unittests/Evaluate/intrinsics.cpp
The file was modifiedflang/include/flang/Evaluate/expression.h
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Evaluate/intrinsics-library-templates.h
The file was modifiedflang/lib/Semantics/assignment.cpp
Commit 9414a71aaab8f04316ee4daba2a27086e3736fff by ravishankarm
[mlir][spirv] Add correct handling of Kernel and Addresses capabilities

This change adds initial support needed to generate OpenCL compliant SPIRV.
If Kernel capability is declared then memory model becomes OpenCL.
If Addresses capability is declared then addressing model becomes Physical64.
Additionally for Kernel capability interface variable ABI attributes are not
generated as entry point function is expected to have normal arguments.

Differential Revision: https://reviews.llvm.org/D85196
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/TargetAndABI.h
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
The file was addedmlir/test/Conversion/GPUToSPIRV/module-structure-opencl.mlir
The file was addedmlir/test/Dialect/SPIRV/Transforms/abi-interface-opencl.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVLowering.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/TargetAndABI.cpp
Commit b53fd9cdba4da51284941fdecfe3c7490d6013cc by timshen
[MLIR] Add getSizeInBits() for tensor of complex

Differential Revision: https://reviews.llvm.org/D85382
The file was modifiedmlir/test/mlir-tblgen/op-derived-attribute.mlir
The file was modifiedmlir/lib/IR/StandardTypes.cpp
Commit 17ff170e3a9b9381ca28d8c210bb567ec72f793d by guiand
Revert "[MSAN] Instrument libatomic load/store calls"

Problems with instrumenting atomic_load when the call has no successor,
blocking compiler roll

This reverts commit 33d239513c881d8c11c60d5710c55cf56cc309a5.
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was removedllvm/test/Instrumentation/MemorySanitizer/libatomic.ll
The file was removedcompiler-rt/test/msan/libatomic.c
Commit bb4b70f7921501165cf7dd7577de00feb1e588b2 by sameerarora101
[llvm-install-name-tool] Adds docs for llvm-install-name-tool

Adding documentation for llvm-install-name-tool.

Reviewed by smeenai, Ktwu

Differential Revision: https://reviews.llvm.org/D81944
The file was modifiedllvm/docs/CommandGuide/index.rst
The file was addedllvm/docs/CommandGuide/llvm-install-name-tool.rst
Commit e3eb3cf5501c6b97b5baa2d66193f2d610492be6 by Jonas Devlieghere
[lldb] Only check for --apple-sdk argument on Darwin
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit cc01194c2fac5ad400b862463c473f3ef924c932 by pklausler
[flang] Descriptor-based I/O data item transfers

Add support for OutputDescriptor() and InputDescriptor()
in the I/O runtime.  Change existing scalar formatted I/O
functions to drive descriptor-based I/O routines internally.

Differential Revision: https://reviews.llvm.org/D85491
The file was addedflang/runtime/descriptor-io.h
The file was modifiedflang/runtime/type-code.h
The file was modifiedflang/runtime/type-code.cpp
The file was modifiedflang/runtime/io-api.cpp
Commit dc13a9a7813768e01bddd03924d6cac6fa45cd7b by gyurgyikcp
[libc] Add strcpsn and strpbrk implementation.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85386
The file was addedlibc/src/string/strcspn.cpp
The file was addedlibc/src/string/strpbrk.cpp
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was addedlibc/src/string/string_utils.h
The file was addedlibc/src/string/strpbrk.h
The file was addedlibc/test/src/string/strpbrk_test.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/src/string/strcspn.h
The file was modifiedlibc/src/string/strspn.cpp
The file was addedlibc/test/src/string/strcspn_test.cpp
The file was modifiedlibc/src/string/CMakeLists.txt
The file was modifiedlibc/test/src/string/CMakeLists.txt
Commit 43b304b09f892c305861de3113967c2714ab0d02 by pklausler
[flang] Support DATA statement initialization of numeric with Hollerith/CHARACTER

This is a common Fortran language extension.

Differential Revision: https://reviews.llvm.org/D85492
The file was modifiedflang/lib/Semantics/check-data.cpp
The file was modifiedflang/test/Semantics/data06.f90
The file was addedflang/test/Semantics/data08.f90
Commit d6c00edf2eb8e6b1289d684e9f0fd1b576f081d6 by sameerarora101
[FileCheck] Add docs for --allow-empty

This diff adds documentation for `allow-empty` flag under FileCheck
docs.

Reviewed by jhenderson, smeenai, thopre

Differential Revision: https://reviews.llvm.org/D83682
The file was modifiedllvm/docs/CommandGuide/FileCheck.rst
Commit 968cba8e89f7226f325b04278d3b5dff7d4ebc36 by Adrian Prantl
lldbutil: add a retry mechanism for the ios simulator

We've been seeing this failure on green dragon when the system is
under high load. Unfortunately this is outside of LLDB's control.

Differential Revision: https://reviews.llvm.org/D85542
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbutil.py
Commit 5a0b1472c0e4e08071c688d03800f1b54983187d by Matthew.Arsenault
GlobalISel: Handle zext(sext x) in artifact combiner

This eliminates the illegal intermediate s8 value in the added test.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir
Commit 164a02d0fa461c623446bb5e3ee15516bcfad13c by maskray
[ELF]: --icf: don't fold sections referencing sections with LCDA after D84610
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/test/ELF/icf-eh-frame.s
Commit 86646be3158933330bf3342e9d7e4250945bb70c by riddleriver
[mlir] Refactor StorageUniquer to require registration of possible storage types

This allows for bucketing the different possible storage types, with each bucket having its own allocator/mutex/instance map. This greatly reduces the amount of lock contention when multi-threading is enabled. On some non-trivial .mlir modules (>300K operations), this led to a compile time decrease of a single conversion pass by around half a second(>25%).

Differential Revision: https://reviews.llvm.org/D82596
The file was modifiedmlir/lib/Support/StorageUniquer.cpp
The file was modifiedmlir/lib/IR/AffineExpr.cpp
The file was modifiedmlir/include/mlir/IR/StorageUniquerSupport.h
The file was modifiedmlir/include/mlir/Dialect/SDBM/SDBMDialect.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h
The file was modifiedmlir/include/mlir/Support/StorageUniquer.h
The file was modifiedmlir/include/mlir/IR/TypeSupport.h
The file was modifiedmlir/lib/Dialect/SDBM/SDBMDialect.cpp
The file was modifiedmlir/lib/Dialect/SDBM/SDBMExpr.cpp
Commit 9f24640b7e6e61b0f293c724155a90a5e446dd7a by riddleriver
[mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects.

This class allows for defining thread local objects that have a set non-static lifetime. This internals of the cache use a static thread_local map between the various different non-static objects and the desired value type. When a non-static object destructs, it simply nulls out the entry in the static map. This will leave an entry in the map, but erase any of the data for the associated value. The current use cases for this are in the MLIRContext, meaning that the number of items in the static map is ~1-2 which aren't particularly costly enough to warrant the complexity of pruning. If a use case arises that requires pruning of the map, the functionality can be added.

This is especially useful in the context of MLIR for implementing thread-local caching of context level objects that would otherwise have very high lock contention. This revision adds a thread local cache in the MLIRContext for attributes, identifiers, and types to reduce some of the locking burden. This led to a speedup of several hundred miliseconds when compiling a conversion pass on a very large mlir module(>300K operations).

Differential Revision: https://reviews.llvm.org/D82597
The file was modifiedmlir/lib/Support/StorageUniquer.cpp
The file was addedmlir/include/mlir/Support/ThreadLocalCache.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/test/EDSC/builder-api-test.cpp
Commit dd48773396f77fd7b19adc43b23d41aef356809a by riddleriver
[mlir][Types] Remove the subclass data from Type

Subclass data is useful when a certain amount of memory is allocated, but not all of it is used. In the case of Type, that hasn't been the case for a while and the subclass is just taking up a full `unsigned`. Removing this frees up ~8 bytes for almost every type instance.

Differential Revision: https://reviews.llvm.org/D85348
The file was modifiedmlir/include/mlir/IR/StandardTypes.h
The file was modifiedmlir/lib/IR/Types.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
The file was modifiedmlir/include/mlir/IR/Types.h
The file was modifiedmlir/lib/IR/TypeDetail.h
The file was modifiedmlir/lib/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir/IR/TypeSupport.h
Commit 1d6a8deb41221f73c57b57fe9add180da34af77f by riddleriver
[mlir] Remove the need to define `kindof` on attribute and type classes.

This revision refactors the default definition of the attribute and type `classof` methods to use the TypeID of the concrete class instead of invoking the `kindof` method. The TypeID is already used as part of uniquing, and this allows for removing the need for users to define any of the type casting utilities themselves.

Differential Revision: https://reviews.llvm.org/D85356
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRType.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRAttr.h
The file was modifiedmlir/include/mlir/IR/Attributes.h
The file was modifiedmlir/include/mlir/IR/Types.h
The file was modifiedmlir/docs/Tutorials/DefiningAttributesAndTypes.md
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
The file was modifiedmlir/include/mlir/IR/Location.h
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantTypes.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
The file was modifiedmlir/include/mlir/IR/StorageUniquerSupport.h
The file was modifiedmlir/docs/Tutorials/Toy/Ch-7.md
The file was modifiedmlir/examples/toy/Ch7/include/toy/Dialect.h
The file was modifiedmlir/include/mlir/IR/TypeSupport.h
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.h
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/IR/StandardTypes.h
Commit fff39b62bb4078ce78813f25c04e0da435a8feb3 by riddleriver
[mlir][Attribute] Remove usages of Attribute::getKind

This is in preparation for removing the use of "kinds" within attributes and types in MLIR.

Differential Revision: https://reviews.llvm.org/D85370
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/lib/Target/LLVMIR/DebugTranslation.cpp
The file was modifiedmlir/include/mlir/IR/Location.h
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
The file was modifiedmlir/include/mlir/IR/Attributes.h
The file was modifiedmlir/lib/IR/Attributes.cpp
The file was modifiedmlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp
The file was modifiedmlir/lib/IR/Location.cpp
The file was modifiedmlir/lib/IR/Diagnostics.cpp
Commit c8c45985fba935f28943d6218915d7fe5a5fc807 by riddleriver
[mlir][Type] Remove usages of Type::getKind

This is in preparation for removing the use of "kinds" within attributes and types in MLIR.

Differential Revision: https://reviews.llvm.org/D85475
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp
The file was modifiedmlir/include/mlir/IR/StandardTypes.h
The file was modifiedmlir/lib/Dialect/Traits.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
The file was modifiedmlir/lib/Dialect/Quant/IR/TypeParser.cpp
The file was modifiedmlir/lib/Dialect/Quant/Utils/UniformSupport.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/LayoutUtils.cpp
The file was modifiedmlir/lib/Dialect/Quant/IR/QuantTypes.cpp
The file was modifiedmlir/lib/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantTypes.h
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
Commit 82fd1392016984c81c6037e147ee2dd36cf91f4c by riddleriver
[flang] Update FirOpsDialect constructor to pass its TypeID
The file was modifiedflang/lib/Optimizer/Dialect/FIRDialect.cpp
Commit cf26a10517676b84ac18334a11ae70d15e9df001 by sameerarora101
Add symlinks for `libtool` and `install_name_tool`

Add symlinks for `llvm-libtool-darwin` and
`llvm-install-name-tool`.

Reviewed by jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D85054
The file was modifiedllvm/tools/llvm-libtool-darwin/CMakeLists.txt
The file was modifiedllvm/tools/llvm-objcopy/CMakeLists.txt
Commit cd01980f308a94c64f814052a5e522ac69982237 by tra
[OpenMP] Split OpenMP/target_map_codegen test [NFC]

The test file is the single longest test among clang's tests and ends up about
doubling the wall time of clang tests on machines with high number of cores.

The test appears to consist of multiple independent subtests and does not have
to be in one file. Splitting it into smaller parts reduces test time on my
machine from ~80s down to ~45.

Differential Revision: https://reviews.llvm.org/D85551
The file was addedclang/test/OpenMP/target_map_codegen_27.cpp
The file was addedclang/test/OpenMP/target_map_codegen_11.cpp
The file was addedclang/test/OpenMP/target_map_codegen_04.cpp
The file was removedclang/test/OpenMP/target_map_codegen.cpp
The file was addedclang/test/OpenMP/target_map_codegen_02.cpp
The file was addedclang/test/OpenMP/target_map_codegen_32.cpp
The file was addedclang/test/OpenMP/target_map_codegen_00.cpp
The file was addedclang/test/OpenMP/target_map_codegen_09.cpp
The file was addedclang/test/OpenMP/target_map_codegen_31.cpp
The file was addedclang/test/OpenMP/target_map_codegen_07.cpp
The file was addedclang/test/OpenMP/target_map_codegen_19.cpp
The file was addedclang/test/OpenMP/target_map_codegen_28.cpp
The file was addedclang/test/OpenMP/target_map_codegen_13.cpp
The file was addedclang/test/OpenMP/target_map_codegen_14.cpp
The file was addedclang/test/OpenMP/target_map_codegen_33.cpp
The file was addedclang/test/OpenMP/target_map_codegen_10.cpp
The file was addedclang/test/OpenMP/target_map_codegen_18.cpp
The file was addedclang/test/OpenMP/target_map_codegen_16.cpp
The file was addedclang/test/OpenMP/target_map_codegen_29.cpp
The file was addedclang/test/OpenMP/target_map_codegen_21.cpp
The file was addedclang/test/OpenMP/target_map_codegen_23.cpp
The file was addedclang/test/OpenMP/target_map_codegen_30.cpp
The file was addedclang/test/OpenMP/target_map_codegen_26.cpp
The file was addedclang/test/OpenMP/target_map_codegen_17.cpp
The file was addedclang/test/OpenMP/target_map_codegen_03.cpp
The file was addedclang/test/OpenMP/target_map_codegen_24.cpp
The file was addedclang/test/OpenMP/target_map_codegen_01.cpp
The file was addedclang/test/OpenMP/target_map_codegen_12.cpp
The file was addedclang/test/OpenMP/target_map_codegen_06.cpp
The file was addedclang/test/OpenMP/target_map_codegen_15.cpp
The file was addedclang/test/OpenMP/target_map_codegen_20.cpp
The file was addedclang/test/OpenMP/target_map_codegen_05.cpp
The file was addedclang/test/OpenMP/target_map_codegen_22.cpp
The file was addedclang/test/OpenMP/target_map_codegen_25.cpp
The file was addedclang/test/OpenMP/target_map_codegen_08.cpp
Commit 660832c4e744108ecb45b697e51be72482cacd42 by kiran.chandramohan
[OpenMP,MLIR] Translation of parallel operation: num_threads, if clauses 3/n

This simple patch translates the num_threads and if clauses of the parallel
operation. Also includes test cases.
A minor change was made to parsing of the if clause to parse AnyType and
return the parsed type. Updates to test cases also.

Reviewed by: SouraVX
Differential Revision: https://reviews.llvm.org/D84798
The file was modifiedmlir/test/Target/openmp-llvm.mlir
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/test/Dialect/OpenMP/ops.mlir
The file was modifiedmlir/test/Dialect/OpenMP/invalid.mlir
Commit 7d4996033bc57c5fa4153a0191ed48f4d287f48c by Vitaly Buka
[StackSafety,NFC] Add Stats counters
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 7547508b7ae0985bde2b2cbba953f87e5c30e242 by Vitaly Buka
Revert "[StackSafety] Skip ambiguous lifetime analysis"

This reverts commit 0b2616a8045cb776ea1514c3401d0a8577de1060.

Crashes with safe-stack.
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/lifetime.ll
The file was modifiedllvm/test/CodeGen/AArch64/stack-tagging.ll
The file was modifiedllvm/include/llvm/Analysis/StackLifetime.h
The file was modifiedllvm/lib/Analysis/StackLifetime.cpp
Commit 645de3664a6b85c0f7ac56194fb2fe0e6a233c0b by sameerarora101
[llvm-libtool-darwin] Add constant CPU_SUBTYPE_ARM64_V8

Add support for constant MachO::CPU_SUBTYPE_ARM64_V8. This constant is
needed so as to match `llvm-libtool-darwin`'s behavior to that of
cctools' libtool when `-arch_only` flag is passed in on command line.

Reviewed by jhenderson, alexshap, smeenai

Differential Revision: https://reviews.llvm.org/D85041
The file was addedllvm/test/tools/llvm-readobj/MachO/file-headers-arm64.test
The file was modifiedllvm/tools/llvm-readobj/MachODumper.cpp
The file was addedllvm/test/tools/llvm-objdump/MachO/AArch64/macho-arm64-subtypes.test
The file was modifiedllvm/tools/llvm-objdump/MachODump.cpp
The file was addedllvm/test/tools/llvm-objdump/MachO/universal-arm64.test
The file was modifiedllvm/include/llvm/BinaryFormat/MachO.h
The file was removedllvm/test/tools/llvm-objdump/MachO/AArch64/macho-arm64e.test
Commit e486921fd6cf96ae9114adac455f7c0b5c1088a7 by ndesaulniers
[Clang] implement -fno-eliminate-unused-debug-types

Fixes pr/11710.
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D80242
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/test/Driver/debug-options.c
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/docs/UsersManual.rst
The file was addedclang/test/CodeGen/debug-info-unused-types.cpp
The file was modifiedclang/include/clang/Basic/DebugInfoOptions.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/docs/CommandGuide/clang.rst
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/docs/ClangCommandLineReference.rst
The file was addedclang/test/CodeGen/debug-info-unused-types.c
Commit 38b419eb9330c1f1bcec31764f57e932c07fb42c by Adrian Prantl
Factor out reference-counting code from PlatformApple*

into PlatformAppleSimulator. This is legal because that is the only
entry point for the Terminate/Initialize functions.
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
Commit d9a9192984fafb6a81616aafcdcf388fba7b8e14 by sameerarora101
[llvm-libtool-darwin] Add support for -filelist option

Add support for `-filelist` option for llvm-libtool-darwin. `-filelist`
option allows for passing in a file containing a list of filenames.

Reviewed by jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D84206
The file was addedllvm/test/tools/llvm-libtool-darwin/filelist.test
The file was modifiedllvm/docs/CommandGuide/llvm-libtool-darwin.rst
The file was modifiedllvm/test/tools/llvm-libtool-darwin/invalid-input-output-args.test
The file was modifiedllvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
Commit 71a1f135e4ede2b03f5efb7e18dca1c3db7504ec by sameerarora101
[llvm-libtool-darwin] Add support for -D and -U options

Add support for `-D` and `-U` options for llvm-libtool-darwin. `-D`
allows for using zero for timestamps and UIDs/GIDs. `-U` allows for
using actual timestamps and UIDs/GIDs.

Reviewed by jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D84209
The file was addedllvm/test/tools/llvm-libtool-darwin/deterministic-library.test
The file was modifiedllvm/docs/CommandGuide/llvm-libtool-darwin.rst
The file was modifiedllvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
Commit d3dfd8cec44072302818c34193d898903dbaef8f by jingham
Add a setting to force stepping to always run all threads.
Also allow ScriptedThreadPlans to set & get their StopOthers
state.

<rdar://problem/64229484>

Differential Revision: https://reviews.llvm.org/D85265
The file was modifiedlldb/bindings/interface/SBThreadPlan.i
The file was modifiedlldb/test/API/functionalities/step_scripted/TestStepScripted.py
The file was modifiedlldb/include/lldb/Target/Process.h
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/include/lldb/API/SBThreadPlan.h
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp
The file was modifiedlldb/source/Target/TargetProperties.td
The file was modifiedlldb/test/API/functionalities/step_scripted/Steps.py
The file was modifiedlldb/source/API/SBThreadPlan.cpp
The file was modifiedlldb/source/Target/Thread.cpp
The file was modifiedlldb/include/lldb/Target/ThreadPlanPython.h
The file was modifiedlldb/source/Target/ThreadPlanPython.cpp
Commit 64372d93bc6441d355cda42511e142d1a6c94f21 by mtrofin
[NFC][MLInliner] Refactor logging implementation

This prepares it for logging externally-specified outputs.

Differential Revision: https://reviews.llvm.org/D85451
The file was modifiedllvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
Commit cbd8ec93709376fbf404c99f4eee399790e26db7 by ndesaulniers
fix windows build for D80242
The file was modifiedclang/test/CodeGen/debug-info-unused-types.cpp
Commit 7abef41674249cbc2e23a800762dc8f98013de66 by aeubanks
[NewPM] Print 'Skipping pass' as pass instrumentation

If OptNoneInstrumentation prints it instead, 'Skipping pass' will print for even required passes.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D85493
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
The file was modifiedllvm/test/Feature/optnone-opt.ll
Commit a97dfdc30b5bdec7d6cdcb9f421ef5a288495420 by Jonas Devlieghere
[lldb] Assert the process has exited before we gets its output.
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
Commit b0d76f454daad66482b1084b302ed252124b7bdd by silvasean
[mlir] Centralize handling of memref element types.

This also beefs up the test coverage:
- Make unranked memref testing consistent with ranked memrefs.
- Add testing for the invalid element type cases.

This is not quite NFC: index types are now allowed in unranked memrefs.

Differential Revision: https://reviews.llvm.org/D85541
The file was modifiedmlir/include/mlir/IR/StandardTypes.h
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/lib/IR/StandardTypes.cpp
The file was modifiedmlir/test/IR/parser.mlir
Commit 3adc9aeb250cb9a9d4e5abf7ee5752e142ffe9b8 by cchen
[OpenMP 5.0] Fix PR-45212: Shouldn't error out while using overloaded operator for map clause

LValue map checker should handle CXXOperatorCallExpr

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D85563
The file was modifiedclang/test/OpenMP/target_map_messages.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit 73413d266abc2436bd1993a4e21a9151bd102f17 by ndesaulniers
Revert "fix windows build for D80242"

This reverts commit cbd8ec93709376fbf404c99f4eee399790e26db7.
The file was modifiedclang/test/CodeGen/debug-info-unused-types.cpp
Commit abb9bf4bcf98a226d9350448e31411eb55e9efb0 by ndesaulniers
Revert "[Clang] implement -fno-eliminate-unused-debug-types"

This reverts commit e486921fd6cf96ae9114adac455f7c0b5c1088a7.

Breaks windows builds and osx builds.
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/Driver/debug-options.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/docs/CommandGuide/clang.rst
The file was modifiedclang/docs/ClangCommandLineReference.rst
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Basic/DebugInfoOptions.h
The file was removedclang/test/CodeGen/debug-info-unused-types.c
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was removedclang/test/CodeGen/debug-info-unused-types.cpp
Commit 27d0e14da9b4676a9d97b06618af248aadc21594 by sifontes
Create Reduction Tree Pass

Implement the Reduction Tree Pass framework as part of the MLIR Reduce tool. This is a parametarizable pass that allows for the implementation of custom reductions passes in the tool.
Implement the FunctionReducer class as an example of a Reducer class parameter for the instantiation of a Reduction Tree Pass.
Create a pass pipeline with a Reduction Tree Pass with the FunctionReducer class specified as parameter.

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D83969
The file was addedmlir/tools/mlir-reduce/ReductionNode.cpp
The file was addedmlir/test/mlir-reduce/reduction-tree-pass.mlir
The file was addedmlir/tools/mlir-reduce/ReductionTreePass.cpp
The file was modifiedmlir/tools/mlir-reduce/mlir-reduce.cpp
The file was modifiedmlir/include/mlir/Reducer/Tester.h
The file was addedmlir/include/mlir/Reducer/Passes/FunctionReducer.h
The file was addedmlir/test/mlir-reduce/failure-test.sh
The file was addedmlir/include/mlir/Reducer/ReductionTreePass.h
The file was addedmlir/include/mlir/Reducer/CMakeLists.txt
The file was addedmlir/tools/mlir-reduce/Passes/FunctionReducer.cpp
The file was modifiedmlir/include/mlir/CMakeLists.txt
The file was addedmlir/include/mlir/Reducer/Passes.td
The file was modifiedmlir/lib/Reducer/Tester.cpp
The file was addedmlir/include/mlir/Reducer/ReductionNode.h
The file was modifiedmlir/tools/mlir-reduce/CMakeLists.txt
The file was addedmlir/include/mlir/Reducer/PassDetail.h
Commit bb1456decf5e09947dfe8eee47b9736de7cd7f47 by tejohnson
[sanitizer] Fix comment (NFC)

As pointed out in D85387, part of the comment for MapDynamicShadow
refactored to sanitizer_common in D83247 was incorrect for non-Linux
versions. Update the comment to reflect that.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
Commit 648228bcc33ca414867f24e71ddf56cd0018ac5e by Vitaly Buka
[NFC][StackSafety] Fix statistics
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 3c0597a9e4dc0ff3350b6d721c26dba5a0e7f86a by Matthew.Arsenault
AMDGPU: Avoid explicitly listing all the memory nodes
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 4ac617f490cde190a893ebe24a60a4e1b1b468d1 by pklausler
[flang] Handle DATA initialization of EQUIVALENCE'd objects

Objects that are storage associated by EQUIVALENCE and
initialized with DATA are initialized by creating a
compiler temporary data object in the same scope,
assigning it an offset, type, and size that covers the
transitive closure of the associated initialized original
symbols, and combining their initializers into one common
initializer for the temporary.

Some problems with offset assignment of EQUIVALENCE'd objects
in COMMON were exposed and corrected, and some more error
cases are checked.

Remove obsolete function.
Small bugfix (nested implied dos).
Add a test.
Fix struct/class warning.

Differential Revision: https://reviews.llvm.org/D85560
The file was modifiedflang/include/flang/Semantics/type.h
The file was modifiedflang/include/flang/Evaluate/initial-image.h
The file was addedflang/test/Semantics/data09.f90
The file was modifiedflang/lib/Semantics/CMakeLists.txt
The file was modifiedflang/include/flang/Parser/parsing.h
The file was modifiedflang/include/flang/Semantics/semantics.h
The file was modifiedflang/lib/Semantics/check-data.h
The file was modifiedflang/lib/Evaluate/initial-image.cpp
The file was modifiedflang/lib/Semantics/check-data.cpp
The file was addedflang/lib/Semantics/data-to-inits.cpp
The file was modifiedflang/lib/Parser/parsing.cpp
The file was addedflang/lib/Semantics/data-to-inits.h
The file was modifiedflang/lib/Semantics/type.cpp
The file was modifiedflang/test/Semantics/block-data01.f90
The file was modifiedflang/lib/Semantics/compute-offsets.cpp
The file was modifiedflang/lib/Semantics/semantics.cpp
Commit f5b5ccf2a687aa53e06eac854b63977ad7c5c10d by Yuanfang Chen
Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager""

This relands commit 320eab2d558fde0b61437e9b9075bfd301c2c474.

The test failed because it was looking for x86-linux target
unconditionally. Now it gets the default target.
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt
The file was addedllvm/lib/CodeGen/MachinePassManager.cpp
The file was modifiedllvm/include/llvm/IR/PassManager.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/LLVMBuild.txt
The file was addedllvm/unittests/CodeGen/PassManagerTest.cpp
The file was addedllvm/include/llvm/CodeGen/MachinePassManager.h
Commit ca4bcfbf2ccd04f6ebe50aa02ea8d3bf4e4d5761 by llvmgnsyncbot
[gn build] Port f5b5ccf2a68
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
Commit c58674df147ac0e2777208376bfd2b0d9acbef48 by keno
[X86] Don't produce bad x86andp nodes for i1 vectors

In D85499, I attempted to fix this same issue by canonicalizing
andnp for i1 vectors, but since there was some opposition to such
a change, this commit just fixes the bug by using two different
forms depending on which kind of vector type is in use. We can
then always decide to switch the canonical forms later.

Description of the original bug:
We have a DAG combine that tries to fold (vselect cond, 0000..., X) -> (andnp cond, x).
However, it does so by attempting to create an i64 vector with the number
of elements obtained by truncating division by 64 from the bitwidth. This is
bad for mask vectors like v8i1, since that division is just zero. Besides,
we don't want i64 vectors anyway. For i1 vectors, switch the pattern
to (andnp (not cond), x), which is the canonical form for `kandn`
on mask registers.

Fixes https://github.com/JuliaLang/julia/issues/36955.

Differential Revision: https://reviews.llvm.org/D85553
The file was modifiedllvm/test/CodeGen/X86/avx512-select.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit fb943696cbc695b28d7deabf8ee0d1b1a6cc605a by richard
PR47025, PR47043: Diagnose unexpanded parameter packs in concept
declarations and requires-expressions.
The file was addedclang/test/SemaTemplate/concepts.cpp
The file was modifiedclang/lib/Sema/SemaTemplateVariadic.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
Commit 754e09f9cef13fb07328169354e38dd86d94a699 by uday
[MLIR] Add tiling validity check to loop tiling pass

This revision aims to provide a new API, `checkTilingLegality`, to
verify that the loop tiling result still satisifes the dependence
constraints of the original loop nest.

Previously, there was no check for the validity of tiling. For instance:

```
func @diagonal_dependence() {
  %A = alloc() : memref<64x64xf32>

  affine.for %i = 0 to 64 {
    affine.for %j = 0 to 64 {
      %0 = affine.load %A[%j, %i] : memref<64x64xf32>
      %1 = affine.load %A[%i, %j - 1] : memref<64x64xf32>
      %2 = addf %0, %1 : f32
      affine.store %2, %A[%i, %j] : memref<64x64xf32>
    }
  }

  return
}
```

You can find more information about this example from the Section 3.11
of [1].

In general, there are three types of dependences here: two flow
dependences, one in direction `(i, j) = (0, 1)` (notation that depicts a
vector in the 2D iteration space), one in `(i, j) = (1, -1)`; and one
anti dependence in the direction `(-1, 1)`.

Since two of them are along the diagonal in opposite directions, the
default tiling method in `affine`, which tiles the iteration space into
rectangles, will violate the legality condition proposed by Irigoin and
Triolet [2]. [2] implies two tiles cannot depend on each other, while in
the `affine` tiling case, two rectangles along the same diagonal are
indeed dependent, which simply violates the rule.

This diff attempts to put together a validator that checks whether the
rule from [2] is violated or not when applying the default tiling method
in `affine`.

The canonical way to perform such validation is by examining the effect
from adding the constraint from Irigoin and Triolet to the existing
dependence constraints.

Since we already have the prior knowlegde that `affine` tiles in a
hyper-rectangular way, and the resulting tiles will be scheduled in the
same order as their respective loop indices, we can simplify the
solution to just checking whether all dependence components are
non-negative along the tiling dimensions.

We put this algorithm into a new API called `checkTilingLegality` under
`LoopTiling.cpp`. This function iterates every `load`/`store` pair, and
if there is any dependence between them, we get the dependence component
  and check whether it has any negative component. This function returns
  `failure` if the legality condition is violated.

[1]. Bondhugula, Uday. Effective Automatic parallelization and locality optimization using the Polyhedral model. https://dl.acm.org/doi/book/10.5555/1559029
[2]. Irigoin, F. and Triolet, R. Supernode Partitioning. https://dl.acm.org/doi/10.1145/73560.73588

Differential Revision: https://reviews.llvm.org/D84882
The file was modifiedmlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
The file was modifiedmlir/lib/Analysis/AffineAnalysis.cpp
The file was addedmlir/test/Dialect/Affine/loop-tiling-validity.mlir
Commit d30d46193876102a6bc99b527dfaf79be4b09515 by maskray
[ELF] Support .cfi_signal_frame

glibc/sysdeps/unix/sysv/linux/x86_64/sigaction.c libc.a(sigaction.o) has a CIE
with the augmentation string "zRS". Support 'S' to allow --icf={safe,all}.
The file was modifiedlld/test/ELF/eh-frame-value-format7.s
The file was modifiedlld/test/ELF/icf-eh-frame.s
The file was modifiedlld/ELF/EhFrame.cpp
Commit 58acda1c16a9359c0b8c37e17a2df58c56250ed0 by joker.eph
Revert "[mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects."

This reverts commit 9f24640b7e6e61b0f293c724155a90a5e446dd7a.

We hit some dead-locks on thread exit in some configurations: TLS exit handler is taking a lock.
Temporarily reverting this change as we're debugging what is going on.
The file was removedmlir/include/mlir/Support/ThreadLocalCache.h
The file was modifiedmlir/lib/Support/StorageUniquer.cpp
The file was modifiedmlir/test/EDSC/builder-api-test.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
Commit eebd0a57fc9387689af393a28cd00105ae9549e8 by joker.eph
Remove unused class member (NFC)

Fix include/mlir/Reducer/ReductionNode.h:79:18: warning: private field 'parent' is not used [-Wunused-private-field]
The file was modifiedmlir/include/mlir/Reducer/ReductionNode.h
The file was modifiedmlir/tools/mlir-reduce/ReductionNode.cpp
Commit 872bdc0be7dd38a3c41965cdeca876e03ac3fd6c by joker.eph
Remove unused static helper getMemRefTypeFromTensorType() (NFC)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 514b00c43996221b90ce581bfb18b6af7caed5f6 by craig.topper
[X86] Limit the scope of the min/max canonicalization in combineSelect

Previously the transform was doing these two canonicalizations
(x > y) ? x : y -> (x >= y) ? x : y
(x < y) ? x : y -> (x <= y) ? x : y

But those don't seem to be useful generally. And they actively
pessimize the cases in PR47049.

This patch limits it to
(x > 0) ? x : 0 -> (x >= 0) ? x : 0
(x < -1) ? x : -1 -> (x <= -1) ? x : -1

These are the cases mentioned in the comments as the motivation
for the canonicalization. These allow the CMOV to use the S
flag from the compare thus improving opportunities to use a TEST
or the flags from an arithmetic instruction.
The file was modifiedllvm/test/CodeGen/X86/atomic-minmax-i6432.ll
The file was modifiedllvm/test/CodeGen/X86/atomic6432.ll
The file was modifiedllvm/test/CodeGen/X86/atomic128.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/8bit_cmov_of_trunc_promotion.ll
The file was modifiedllvm/test/CodeGen/X86/atomic32.ll
The file was modifiedllvm/test/CodeGen/X86/cmov.ll
The file was modifiedllvm/test/CodeGen/X86/pr5145.ll
The file was modifiedllvm/test/CodeGen/X86/atomic64.ll
Commit 595d3b5ecc59d1c89a8eefbfc37083b0d45f502f by aqjune
[InstCombine] Add tests for select(freeze(icmp x, y), x, y); NFC
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 5d59385ba67ec20dc4a3e13b9a7088ace970df4d by sivachandra
[libc] Setup TLS in x86_64 loader.

The new code added is still very x86_64 specific. AArch64 support will
be added very soon and refactoring of the loader code will be done as
part of the patches adding it.

Reviewed By: asteinhauser

Differential Revision: https://reviews.llvm.org/D82700
The file was modifiedlibc/loader/linux/x86_64/CMakeLists.txt
The file was modifiedlibc/test/loader/linux/CMakeLists.txt
The file was modifiedlibc/test/loader/CMakeLists.txt
The file was addedlibc/test/loader/linux/tls_test.cpp
The file was addedlibc/config/linux/app.h
The file was modifiedlibc/loader/linux/x86_64/start.cpp
The file was modifiedlibc/config/linux/CMakeLists.txt
Commit b6d9add71b1a7bc77ce504ed09a43288ca67c0cd by aqjune
[InstCombine] Optimize select(freeze(icmp eq/ne x, y), x, y)

This patch adds an optimizatio