FailedChanges

Summary

  1. [clang-tidy] Allows the prevailing include header guard in Flang to be recognized rather than flagged as a violation in phabricator. (details)
  2. [flang][openmp] Use common Directive and Clause enum from llvm/Frontend (details)
  3. [flang] Add the Runtime.h to prepare for more code being upstreamed. (details)
  4. [AMDGPU] Update DWARF proposal (details)
  5. [ELF] Don't resolve a relocation in .debug_line referencing an ICF folded symbol to the tombstone value (details)
  6. [libTooling] Fix `maybeExtendRange` to support `CharRange`s. (details)
  7. [CallGraph] Add support for callback call sites (details)
  8. [flang] Implement cross-set EQUIVALENCE impossibility checking (details)
  9. [compiler-rt][Android] Use correct builtins library name for tests (details)
  10. [InstSimplify] Move assume icmp test (NFC) (details)
  11. [lldb/API] Add missing LLDB_RECORD_RESULT (details)
  12. [RISCV][NFC] Pre-commit tests for D82660 (details)
  13. Revert "[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment." (details)
  14. [NFC][ScalarEvolution] Add udiv-disguised-as-sdiv test (details)
  15. Revert "[flang][openmp] Use common Directive and Clause enum from llvm/Frontend" (details)
  16. [AMDGPU] Limit promote alloca to vector with VGPR budget (details)
  17. AMDGPU: Fix missing tracksRegLiveness in tests (details)
  18. RegAllocGreedy: Use TargetInstrInfo already in the class (details)
  19. AMDGPU: Set more mov flags on V_ACCVGPR_{READ|WRITE}_B32 (details)
  20. [NFCI] Actually provide correct check lines in sdiv.ll (details)
  21. clang CoverageMapping tests bot cleanup (details)
  22. typo fixes to cycle bots (details)
  23. Update lto.ll test after 3367e9da enabled multibyte NOPs in 64-bit mode. (details)
  24. Revert "Update lto.ll test after 3367e9da enabled multibyte NOPs in 64-bit mode." (details)
  25. [gcov] Move llvm_writeout_files from atexit to a static destructor (details)
  26. [flang][NFC] Get formatting in sync with latest clang-format (details)
  27. [mlir][NFC] Move conversion of scf to spir-v ops in their own file (details)
  28. [mlir][spirv] Add support for lowering scf.for scf/if with return value (details)
  29. [PowerPC] Exploit xxspltiw and xxspltidp instructions (details)
  30. [flang] Add more support for alternate returns (details)
  31. [PowerPC][NFC] Update doc for FeatureISA3_1/FeatureISA3_0 definitions (details)
  32. [X86-64] Support Intel AMX instructions (details)
  33. [flang][openmp] Use common Directive and Clause enum from llvm/Frontend (details)
  34. [PowerPC]Implement Vector Shift Double Bit Immediate Builtins (details)
  35. [lld-macho] Make sure ZeroFill sections are at the end of their segments (details)
  36. [AMDGPU] Control num waves per EU for implicit work-group size (details)
  37. [lldb/ObjCRuntime] Implement support for small method lists (details)
  38. [lldb/ObjC] Add support for direct selector references (details)
  39. [lldb/build.py] Always pass an SDK to the compiler on Darwin (details)
  40. lld/MachO: Remove a useless temporary (details)
  41. ld64.lld: Add janky support for tbd files (details)
  42. [mlir][OpFormatGen] Add support for resolving variadic types from non-variadic (details)
  43. Add parenthesized expression to SyntaxTree (details)
  44. This patch adds basic debug info support with basic block sections. (details)
  45. [clang] Re-add deleted forward declaration. (details)
  46. [X86] Enable multibyte NOPs in 64-bit mode for padding/alignment. (details)
  47. [lldb][NFC] Fix a variable name in ClangDiagnosticManagerAdapter (details)
  48. Revert "[clang-tidy] For `run-clang-tidy.py` escape the paths that are used for analysis." (details)
  49. [CodeGen] Fix warnings in getCopyToPartsVector (details)
  50. Fix missing build dependency on omp_gen. (details)
  51. [ARM] Rearrange SizeReduction when using -Oz (details)
  52. [NFC] Fix typo in triples from unkown to unknown (details)
  53. [lldb][NFC] Don't pass around passthrough from ClangDiagnosticManagerAdapter (details)
  54. [SVE] ACLE: Fix builtins for svdup_lane_bf16 and svcvtnt_bf16_f32_x (details)
  55. [AArch64][SVE] Add unpred load/store patterns for bf16 types (details)
  56. [CodeGen][SVE] Don't drop scalable flag in DAGCombiner::visitEXTRACT_SUBVECTOR (details)
  57. [AMDGPU] Fix formatting in MIR tests (details)
  58. DSE: fix builtin function recognition to take decl into account (details)
  59. [Support][Windows] Prevent 2s delay when renaming a file that does not exist (details)
  60. [SVE] Add warnings checks in four more LLVM SVE tests (details)
  61. [VE] Rename VE toolchain source files (details)
  62. [gn build] Port 804d9687443 (details)
  63. [BasicAA] New basic-aa-recphi test. NFC (details)
  64. [ScalarEvolution] createSCEV(): recognize `udiv`/`urem` disguised as an `sdiv`/`srem` (details)
  65. Regenerate llvm/test/CodeGen/X86/optimize-max-0.ll (details)
  66. [LV] Enable the LoopVectorizer to create pointer inductions (details)
  67. Fix some typos (unkown -> unknown); NFC (details)
  68. Regenerate apint-shift tests and replace %tmp variable names to silence update_test_checks warnings (details)
  69. [InstCombine] Add some (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) tests for non-uniform vectors (details)
  70. [AArch64][SVE] Add reg+imm addressing mode for unpredicated stores (details)
  71. [Alignment][NFC] VectorLayout now uses Align internally (details)
  72. [Alignment][NFC] Transition and simplify calls to DL::getABITypeAlignment (details)
  73. [NFC][clang] Add missing VALIDATE_DIAG_SIZE() (details)
  74. [clangd] Switch FindSymbolsTests to use TestTU (details)
  75. [analyzer][StdLibraryFunctionsChecker] Add POSIX file handling functions (details)
  76. [lldb] Skip TestLimitDebugInfo on windows (details)
  77. [clang] Fix a null-NSS-access crash in DependentNameType. (details)
  78. [BasicAA] Fix recursive phi MustAlias calculations (details)
  79. [flang] Add changes to codegen to convert it to tablegen passes. (details)
  80. [flang] Add inliner pass. (details)
  81. [clang][Serialization] Don't duplicate the body of LambdaExpr during deserialization (details)
  82. [AArch64][SVE] Put zeroing pseudos and patterns under flag. (details)
  83. Regenerate sext/trunc tests and replace %tmp variable names to silence update_test_checks warnings (details)
  84. call ::pthread_detach on llvm_execute_on_thread_impl (details)
  85. [lldb] Add a host-independent test for handling -flimit-debug-info (details)
  86. [ASTMatchers] Enhanced support for matchers taking Regex arguments (details)
  87. Fix missing build dependencies on omp_gen (details)
  88. [AMDGPU][CODEGEN] Added support of new inline assembler constraints (details)
  89. [MLIR] Exact integer emptiness checks for FlatAffineConstraints (details)
  90. [ASTImporter] Add unittest case for friend decl import (details)
  91. Preserve GlobalsAA analysis result in LowerConstantIntrinsics (details)
  92. [ELF][test] Add some additional .eh_frame/.eh_frame_hdr testing (details)
  93. [InstCombine] Add some (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) tests for vectors with undef elements (details)
  94. [InstCombine] Add (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) support for non-uniform vectors (details)
  95. [AArch64][SVE] NFC: Rename isOrig -> isReverseInstr (details)
  96. [lldb] Fix type conversion in the Scalar getters (details)
  97. [InstCombine] Add some sext/trunc tests to show missing support for non-uniform vectors (details)
  98. [MLIR][SPIRVToLLVM] Implementation of spv.BitFieldInsert pattern (details)
  99. [MLIR][SPIRVToLLVM] SPIR-V function call conversion pattern (details)
  100. [MLIR][SPIRV] Support two memory access attributes in OpCopyMemory. (details)
  101. [PowerPC] Remove undefs from splat input when changing shuffle mask (details)
  102. [LLD] Add required dependency after shared libs break due to ba5087f13025 (details)
  103. [OpenMP][CMake] Fix version detection of testing compiler (details)
  104. [OpenMPOpt][Fix] Remove double initialization of omp::types. (details)
  105. [NewPM][LSR] Rename strength-reduce -> loop-reduce (details)
  106. [gn build] make building on an arm mac work (details)
  107. [MLIR][SPIRVToLLVM] Convert spv.constant scalars and vectors (details)
  108. [NewPM] Add -basic-aa to pr33196.ll (details)
  109. [clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper (details)
  110. [DebugInfo] Fix LineTest byteswap for cross-targeting builds (details)
  111. Revert "[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper" (details)
  112. [flang] Fix bug determining alternate return (details)
  113. [flang] Clean up binary dependences of runtime libraries (details)
  114. ld64.lld: Make janky support for tbd files actually work sometimes (details)
  115. [PowerPC]Implement Vector Permute Extended Builtin (details)
  116. Revert "[MLIR][SPIRV] Support two memory access attributes in OpCopyMemory." (details)
  117. [X86] Add test cases for v32i8 rotate with min-legal-vector-width=256 (details)
  118. [X86] Modify the conditions for when we stop making v16i8/v32i8 rotate Custom based on having avx512 features. (details)
  119. [x86] add tests for vector select with bit-test condition; NFC (details)
  120. [mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract (details)
  121. [InstSimplify] Add test for sext/zext comparisons (NFC) (details)
  122. [test] Deflake test/profile/ContinuousSyncMode/online-merging.c (details)
  123. [X86] Add test case for unfolding broadcast load from vpternlog. (details)
  124. [X86] Add vpternlog to the broadcast unfolding table. (details)
  125. [PowerPC]Add Vector Insert Instruction Definitions and MC Test (details)
  126. [SelectionDAG] don't split branch on logic-of-vector-compares (details)
  127. [x86] remove redundant tests with no check lines; NFC (details)
  128. Fix typo and check commit access. (details)
  129. [PowerPC] Implement Vector Blend Builtins in LLVM/Clang (details)
  130. [flang] External I/O runtime work, repackaged (part 1) (details)
  131. [X86] Teach lower512BitShuffle to try bitmask and bitblend before splitting v32i16/v64i8 on av512f only targets. (details)
  132. [gn build] get everything to build when llvm_targets_to_build is just AArch64 (details)
  133. [NFC][Scalarizer] Add some insertelement/extractelement tests (details)
  134. [NFC][Scalarizer] Also scalarize loads in newly-added tests (details)
  135. [flang] External I/O runtime work, repackaged (part 2) (details)
  136. [AMDGPU] Unify early PS termination blocks (details)
  137. [AMDGPU] Insert PS early exit at end of control flow (details)
  138. [PowerPC][NFC] Refactor lowerDynamicAlloc (details)
  139. Revert "[AMDGPU] Insert PS early exit at end of control flow" (details)
  140. [lld-macho] Support binding dysyms to any section (details)
  141. [PowerPC][NFC] Prevent unused error when assertion is disabled. (details)
  142. [AMDGPU] Insert PS early exit at end of control flow (details)
  143. [X86] Add back support for matching VPTERNLOG from back to back logic ops. (details)
  144. [PowerPC] Implement probing for dynamic stack allocation (details)
  145. [CostModel] Fix cast crash (details)
  146. [clang] Check ValueDependent instead of InstantiationDependent before executing the align expr for builtin align functions. (details)
  147. [X86] Remove MODRM_SPLITREGM from the disassembler tables. (details)
  148. [NFC] Use ADT/Bitfields in Instructions (details)
  149. Fix stack-clash probing for large static alloca (details)
  150. [Attributor] Create getName() method for abstract attribute (details)
  151. [OpenMP][OMPT]Add event callbacks for taskwait with depend (details)
  152. [Alignment][NFC] Use proper getter to retrieve alignment from ConstantInt and ConstantSDNode (details)
  153. [flang][NFC] Move and rework pgmath description used in folding (details)
  154. [Alignment][NFC] Use 5 bits to store Instructions Alignment (details)
  155. [llvm-readelf] - Do not error out when dumping symbols. (details)
  156. [llvm-readelf] - Do not report a misleading warning when there is no string table. (details)
  157. Regenerate PR19420 tests (details)
  158. [InstCombine] Add sext(ashr(shl(trunc(x),c),c)) folding support for vectors (details)
  159. [clangd] Improve hover on arguments to function call (details)
  160. Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. (details)
  161. [DWARFYAML][debug_gnu_*] Add the missing context `IsGNUStyle`. NFC. (details)
  162. [lldb] Fix missing characters when autocompleting LLDB commands in REPL (details)
  163. Regenerate mul-trunc tests, add vector variants and replace %tmp variable names to silence update_test_checks warnings (details)
  164. Add nonuniform vector trunc(or(shl(zext(x),c1),srl(zext(x),c2))) tests (details)
  165. Regenerate apint-cast tests and replace %tmp variable names to silence update_test_checks warnings (details)
  166. [DebugInfo] Use Cursor to detect errors in debug line prologue parser (details)
  167. [libcxx testing] Remove ALLOW_RETRIES from another test (details)
  168. Added tests for RecursiveASTVisitor for AST nodes that are special cased (details)
  169. RecursiveASTVisitor: don't call WalkUp unnecessarily in post-order traversal (details)
  170. Make RecursiveASTVisitor call WalkUpFrom for unary and binary operators in post-order traversal mode (details)
  171. Make RecursiveASTVisitor call WalkUpFrom for operators when the data recursion queue is absent (details)
  172. Revert RecursiveASTVisitor fixes. (details)
  173. [ARM] Add Cortex-A77 Support for Clang and LLVM (details)
  174. [AMDGPU] Don't combine DPP if DPP register is used more than once per instruction (details)
  175. [LLD][ELF][Windows] Allow LLD to overwrite existing output files that are in use (details)
  176. Add vector trunc(or(shl(zext(x),c1),zext(x))) tests (details)
  177. Add tests for trunc(shl/lshr/ashr(*ext(x),zext(and(y,c)))) patterns with variable shifts with clamped shift amounts (details)
  178. [clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper (details)
  179. [clang][NFC] Also test for serialization in test/AST/ast-dump-comment.cpp (details)
  180. [clang][NFC] Add a missing /dev/null in test/AST/ast-dump-lambda.cpp (details)
  181. [IR] Short-circuit comparison with itself for Attributes (details)
  182. [llvm-readobj] - Use cantFail() for all `Obj->sections()` calls. NFCI. (details)
  183. [NFC][SimplifyCFG] Move X86 tests into subdir (details)
  184. [mlir] Add redundant copy removal transform (details)
  185. [DWARFYAML][unittest] Use parseDWARFYAML() in unit test. NFC. (details)
  186. [lldb/Utility] Simplify more Scalar methods (details)
  187. [ObjectYAML][ELF] Add support for emitting the .debug_gnu_pubnames/pubtypes sections. (details)
  188. [mlir] Add check for ViewLikeOpInterface that creates additional aliases. (details)
  189. [lldb/DWARF] Look for complete member definitions in other modules (details)
  190. [ARM] Generate [SU]RHADD from (b - (~a)) >> 1 (details)
  191. [AMDGPU] Added support of new inline assembler constraints (details)
  192. [InstCombine] canEvaluateTruncated - use KnownBits to check for inrange shift amounts (details)
  193. [clang][NFC] Removed unused parameters in InitializeSourceManager (details)
  194. [flang] Improve API for runtime allocator (I/O runtime work part 3) (details)
  195. [DWARFYAML][test] Use --ignore-case to suppress errors. (details)
  196. [InstCombine] add tests to show missing one-use checks; NFC (details)
  197. [InstCombine] add one-use check to cast+select narrowing transform (details)
  198. Enable basepointer for AIX. (details)
  199. [InstCombine] Precommit tests for PR43580. (details)
  200. [SLP] Precommit test for which spill cost is computed incorrectly. (details)
  201. [ARM][HWLoops] Create hardware loops for sibling loops (details)
  202. [SLP] Make sure instructions are ordered when computing spill cost. (details)
  203. [ELF] Resolve R_DTPREL in .debug_* referencing discarded symbols to -1 (details)
  204. [InstSimplify] Fold icmp with dominating assume (details)
  205. [NFC][InstCombine] Add some more tests for select based on non-canonical bit-test (details)
  206. [InstCombine] add tests for mul of bools; NFC (details)
  207. [InstCombine] fold mul of zext bools to 'and' (details)
  208. [llvm-ar][test] Unsupport error-opening-directory.test on FreeBSD (details)
  209. [XCOFF][AIX] Use 'L..' instead of '.L' for getPrivateGlobalPrefix in DataLayout (details)
  210. [flang] Add FIRBuilder.cpp (details)
  211. [libc++/libc++abi] Automatically detect whether exceptions are enabled (details)
  212. [InstCombine] Try to narrow expr if trunc cannot be removed. (details)
  213. [flang] Define new runtime error IOSTAT values (I/O runtime work part 4) (details)
  214. [flang] Track known file size, add IsATerminal (ext. I/O work part 5) (details)
  215. Revert AST Matchers default to AsIs mode (details)
  216. [PowerPC] Implement Vector Insert Builtins in LLVM/Clang (details)
  217. [clangd] Fix hover crash on invalid decls (details)
  218. [libcxx] Put clang::trivial_abi on std::unique_ptr, std::shared_ptr, and std::weak_ptr (details)
  219. [InstCombine] add more tests for mul of bools; NFC (details)
  220. [InstCombine] fold mul of sext bools to 'and' (details)
  221. [x86] improve codegen for bit-masked vector compare and select (PR46531) (details)
  222. [NFCI][InstCombine] shift.ll: s/%tmp/%i/ to silence update script warning (details)
  223. [NFCI][LoopUnroll] s/%tmp/%i/ in one test to silence update script warning (details)
  224. [PowerPC][NFC] Fix indentation (details)
  225. [LoopDeletion] Emit a remark when a dead loop is deleted (details)
  226. [gcov][test] Reorganize some compiler-rt/test/profile tests (details)
  227. [gcov][test] Add `UNSUPPORTED: host-byteorder-big-endian` to gcov-fork.c (details)
  228. [WebAssembly] Do not omit range checks for i64 switches (details)
  229. [flang] Further implementation of external I/O unit operations (part 6) (details)
  230. [X86] Add matching support for X86ISD::ANDNP to X86DAGToDAGISel::tryVPTERNLOG. (details)
  231. [PowerPC] Implement probing for prologue (details)
  232. [X86] Directly emit VPTERNLOG from canonicalizeBitSelect when possible. (details)
  233. [clangd] Config: loading and caching config from disk. (details)
  234. [gn build] Port 8bd000a65fe (details)
  235. [InstSimplify] Add additional zext/sext comparison tests (NFC) (details)
  236. [InstSimplify] Simplify comparison between zext(x) and sext(x) (details)
  237. [clangd] Config: compute config in TUScheduler and BackgroundIndex (details)
  238. [SVE] Fix invalid assert in expand_DestructiveOp. (details)
  239. [MLIR][Linalg] Generate the right type of load/store when lowering max/min pooling ops (details)
  240. [clangd] Try to fix windows buildbot. NFC (details)
  241. [analyzer][NFC] Move the data structures from CheckerRegistry to the Core library (details)
  242. [gn build] Port b6cbe6cb039 (details)
  243. [X86][AVX] Fold PACK(LOSUBVECTOR(SHUFFLE(X)),HISUBVECTOR(SHUFFLE(X))) -> SHUFFLE(PACK(LOSUBVECTOR(X),HISUBVECTOR(X))) (details)
  244. [MLIR] Parallelize affine.for op to 1-D affine.parallel op (details)
  245. [X86][SSE] Add add/fadd reduction shuffle+subvector tests (details)
  246. [libcxx testing] Remove ALLOW_RETRIES from another test (details)
  247. [DAG] matchBinOpReduction - match subvector reduction patterns beyond a matched shufflevector reduction (details)
  248. [InstCombine] add test for miscompile (PR46561); NFC (details)
  249. [InstCombine] improve debug value names; NFC (details)
  250. [InstCombine] Always try to invert non-canonical predicate of an icmp (details)
  251. [InstCombine] fix miscompile from umul_with_overflow matching (details)
  252. [clang] Fix two tests that are affected by llvm opt change (details)
  253. Revert "[libcxx] Put clang::trivial_abi on std::unique_ptr, std::shared_ptr, and std::weak_ptr" (details)
  254. [X86] Disable VPBLENDVB formation in combineLogicBlendIntoPBLENDV if VPTERNLOG is supported. (details)
  255. [X86] Teach lowerShuffleAsBlend to use bit blend for v16i8/v32i8/v16i16 when avx512vl is enabled but not avx512bw. (details)
  256. [profile] Mark gcov test as unsupported on Darwin. (details)
  257. [flang] Extend & fix per-I/O-statement state (ext. I/O work part 7) (details)
  258. [Utils] Make -assume-builder/-assume-simplify actually work on Old-PM (details)
Commit e1581540876f51af1aa1389bdb21388ae88c1b90 by eschweitz
[clang-tidy] Allows the prevailing include header guard in Flang to be recognized rather than flagged as a violation in phabricator.

Differential revision: https://reviews.llvm.org/D82807
The file was modifiedclang-tools-extra/clang-tidy/llvm/HeaderGuardCheck.cpp
Commit 7f1e7767952233d1b6af1feef1371d127de5fa50 by clementval
[flang][openmp] Use common Directive and Clause enum from llvm/Frontend

Summary:
This patch is removing the custom enumeration for OpenMP Directives and Clauses and replace them
with the newly tablegen generated one from llvm/Frontend. This is a first patch and some will follow to share the same
infrastructure where possible. The next patch should use the clauses allowance defined in the tablegen file.

Reviewers: jdoerfert, DavidTruby, sscalpone, kiranchandramohan, ichoyjx

Reviewed By: DavidTruby, ichoyjx

Subscribers: ichoyjx, mgorny, yaxunl, guansong, jfb, sstefan1, aaron.ballman, llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D82906
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/include/flang/Common/enum-set.h
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/lib/Evaluate/CMakeLists.txt
The file was modifiedflang/lib/Parser/CMakeLists.txt
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/tools/f18-parse-demo/CMakeLists.txt
The file was modifiedflang/lib/Semantics/CMakeLists.txt
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
Commit 5a580bbb818737dcbfcfc2089532c38b670ef204 by eschweitz
[flang] Add the Runtime.h to prepare for more code being upstreamed.

This is the header file for lowering Fortran statements that depend on
the Fortran runtime support library. The implementation of the lowering
of these constructs will follow in a subsequent diff.

Differential revision: https://reviews.llvm.org/D82991
The file was addedflang/include/flang/Lower/Runtime.h
Commit 31fdcf64d24d537fbc227dbb475ef388cdf92dbc by Tony.Tye
[AMDGPU] Update DWARF proposal

- Add reference to implicit conversion description.
The file was modifiedllvm/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.rst
Commit e6ad78fe050392e6807593793f59e65b0e6dc433 by maskray
[ELF] Don't resolve a relocation in .debug_line referencing an ICF folded symbol to the tombstone value

After D81784, we resolve a relocation in .debug_* referencing an ICF folded
section symbol to a tombstone value.

Doing this for .debug_line has a problem (https://reviews.llvm.org/D81784#2116925 ):
.debug_line may describe folded lines as having addresses UINT64_MAX or
some wraparound small addresses.

```
int foo(int x) {
  return x; // line 2
}

int bar(int x) {
  return x; // line 6
}
```

```
Address            Line   Column File   ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x00000000002016c0      1      0      1   0             0  is_stmt
0x00000000002016c7      2      9      1   0             0  is_stmt
prologue_end
0x00000000002016ca      2      2      1   0             0
0x00000000002016cc      2      2      1   0             0  end_sequence
// UINT64_MAX and wraparound small addresses
0xffffffffffffffff      5      0      1   0             0  is_stmt
0x0000000000000006      6      9      1   0             0  is_stmt
prologue_end
0x0000000000000009      6      2      1   0             0
0x000000000000000b      6      2      1   0             0  end_sequence
0x00000000002016d0      9      0      1   0             0  is_stmt
0x00000000002016df     10      6      1   0             0  is_stmt prologue_end
0x00000000002016e6     11     11      1   0             0  is_stmt
...
```

These entries can confuse debuggers:

gdb before 2020-07-01 (binutils-gdb a8caed5d7faa639a1e6769eba551d15d8ddd9510 "Recognize -1 as a tombstone value in .debug_line")
(can't continue due to a breakpoint in an invalid region of memory):
```
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x6
```
lldb (breakpoint has no effect):
```
(lldb) b 6
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
```

This patch special cases .debug_line to not use the tombstone value,
restoring the previous behavior: .debug_line will have entries with the
same addresses (ICF) but different line numbers. A breakpoint on line 2
or 6 will trigger on both functions.

Reviewed By: dblaikie, jhenderson

Differential Revision: https://reviews.llvm.org/D82828
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedlld/test/ELF/debug-dead-reloc-icf.s
Commit ecfa0b24189abf4bb172a8860048af05fa17daee by yitzhakm
[libTooling] Fix `maybeExtendRange` to support `CharRange`s.

Currently, `maybeExtendRange` takes a `CharSourceRange`, but only works
correctly for the `TokenRange` case. This change adds proper support for the
`CharRange` case.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D82901
The file was modifiedclang/unittests/Tooling/SourceCodeTest.cpp
The file was modifiedclang/lib/Tooling/Transformer/SourceCode.cpp
Commit cb8faaacb52c1c0f0b97379ac0e07a612c04c5ff by serguei.n.dmitriev
[CallGraph] Add support for callback call sites

Summary:
This patch changes call graph analysis to recognize callback call sites
and add an artificial 'reference' call record from the broker function
caller to the callback function in the call graph. A presence of such
reference enforces bottom-up traversal order for callback functions in
CG SCC pass manager because callback function logically becomes a callee
of the broker function caller.

Reviewers: jdoerfert, hfinkel, sstefan1, baziotis

Reviewed By: jdoerfert

Subscribers: hiraditya, kuter, sstefan1, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82572
The file was modifiedllvm/test/Analysis/CallGraph/non-leaf-intrinsics.ll
The file was modifiedllvm/include/llvm/IR/AbstractCallSite.h
The file was modifiedllvm/lib/Analysis/CallGraphSCCPass.cpp
The file was modifiedllvm/lib/Transforms/Utils/CallGraphUpdater.cpp
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/include/llvm/Analysis/CallGraph.h
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was addedllvm/test/Analysis/CallGraph/callback-calls.ll
The file was modifiedllvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp
The file was modifiedllvm/lib/Analysis/CallGraph.cpp
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
Commit 31e6cd28a5a8afeea4a7f89d54ccf87eaba9f76c by pklausler
[flang] Implement cross-set EQUIVALENCE impossibility checking

Implement cross-set EQUIVALENCE impossibility checking; fixes
an infinite loop on an erroneous test.  Also fix substring
reference offset calculations in EQUIVALENCE discovered to
be incorrect during testing.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D82993
The file was modifiedflang/test/Semantics/equivalence01.f90
The file was modifiedflang/include/flang/Semantics/scope.h
The file was modifiedflang/lib/Semantics/compute-offsets.cpp
The file was modifiedflang/lib/Semantics/resolve-names-utils.cpp
Commit 3fb48b70884aedc6344c17bfa1ac1c01bdc454a3 by rprichard
[compiler-rt][Android] Use correct builtins library name for tests

The builtins library name is special on Android:

* There is an "-android" suffix.

* For the compiler-rt i386 architecture, Android targets i686 (in the
   triple and in the builtins library filename)

With this change, check-builtins works with Android.

Reviewed By: compnerd

Differential Revision: https://reviews.llvm.org/D82149
The file was modifiedcompiler-rt/test/lit.common.configured.in
Commit a59dc55c2a11c1b125d1a356a90b0b2bf72b16fb by nikita.ppv
[InstSimplify] Move assume icmp test (NFC)

Move this test from InstCombine into InstSimplify.
The file was addedllvm/test/Transforms/InstSimplify/assume_icmp.ll
The file was removedllvm/test/Transforms/InstCombine/assume_icmp.ll
Commit d9d992bb8809820c50820b3e703d33d5fcb51385 by Jonas Devlieghere
[lldb/API] Add missing LLDB_RECORD_RESULT
The file was modifiedlldb/source/API/SBBreakpoint.cpp
Commit 003a086ffc0d1affbb8300b36225fb8150a2d40a by selliott
[RISCV][NFC] Pre-commit tests for D82660
The file was modifiedllvm/test/CodeGen/RISCV/mul.ll
Commit c420762172baedada71e49447f0010c292533660 by craig.topper
Revert "[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment."

Looks like lld tests need updates too

This reverts commit 3367e9dac56024147bbd916c40bfe6a4ee61079b.
The file was modifiedllvm/test/MC/X86/align-branch-pad-max-prefix.s
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedllvm/test/MC/X86/align-branch-bundle.s
Commit 51ff7642a33f73518d60909e3fe4e6348dcc7b27 by lebedev.ri
[NFC][ScalarEvolution] Add udiv-disguised-as-sdiv test

Much like 25521150d7b577f6f1b402826f2afbb0ec5fb59b,
but with division instead of remainder.

See https://reviews.llvm.org/D82721
The file was addedllvm/test/Analysis/ScalarEvolution/sdiv.ll
Commit 5c37b2a5eee49df2545a6455eec64fb4b105df40 by clementval
Revert "[flang][openmp] Use common Directive and Clause enum from llvm/Frontend"

This reverts commit 7f1e7767952233d1b6af1feef1371d127de5fa50.
The file was modifiedflang/include/flang/Common/enum-set.h
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
The file was modifiedflang/tools/f18-parse-demo/CMakeLists.txt
The file was modifiedflang/lib/Evaluate/CMakeLists.txt
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Semantics/CMakeLists.txt
The file was modifiedflang/lib/Parser/CMakeLists.txt
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.h
Commit 54e2dc7537dd62a70d76883197e3007cadf060aa by Stanislav.Mekhanoshin
[AMDGPU] Limit promote alloca to vector with VGPR budget

Allow only up to 1/4 of available VGPRs for the vectorization
of any given alloca.

Differential Revision: https://reviews.llvm.org/D82990
The file was addedllvm/test/CodeGen/AMDGPU/vector-alloca-limits.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
Commit a230f1db3f2a4c661308837859a4ed0513a9ceee by Matthew.Arsenault
AMDGPU: Fix missing tracksRegLiveness in tests

I have no idea why this is considered optional, or why it's not the
default. Also add uses of the copied registers for more useful
liveness testing.
The file was modifiedllvm/test/CodeGen/AMDGPU/accvgpr-copy.mir
Commit afb3bd9914fd39476630dcb521496cfbff7e12c9 by Matthew.Arsenault
RegAllocGreedy: Use TargetInstrInfo already in the class
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
Commit d2e74fad20bf8cf66ff20a43fe2934d71e046528 by Matthew.Arsenault
AMDGPU: Set more mov flags on V_ACCVGPR_{READ|WRITE}_B32

This fixes extra copies when materializing constants in AGPRs. This
made it a lot harder to trigger the spilling in spill-agpr.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/VOP3PInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-agpr.ll
The file was addedllvm/test/CodeGen/AMDGPU/agpr-remat.ll
Commit e7da7d94282a940a62f20ecb9b9c827256810322 by lebedev.ri
[NFCI] Actually provide correct check lines in sdiv.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/sdiv.ll
Commit 9fc877213e075a76831fe71291d7c072c64c27e3 by xun
clang CoverageMapping tests bot cleanup

Summary:
D82928 generated unexpected tmp files in the CoverageMapping test directory. This patch cleans it up and remove the file in the test bots.
It will be revered after a week.

Reviewers: thakis

Reviewed By: thakis

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82992
The file was modifiedclang/test/CoverageMapping/coroutine.cpp
Commit ac8d059c8e80fc84d16ad79d08e25010ffa114c2 by thakis
typo fixes to cycle bots
The file was modifiedclang/docs/MatrixTypes.rst
Commit 79f6a814ab9383094a5ffea75bb7aca55292ff15 by douglas.yung
Update lto.ll test after 3367e9da enabled multibyte NOPs in 64-bit mode.

This should fix the PS4 linux build bot:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/70409
The file was modifiedlld/test/COFF/lto.ll
Commit 6f13299c02d4c9d8a3f1cd81e8b02c91d5a2fe66 by douglas.yung
Revert "Update lto.ll test after 3367e9da enabled multibyte NOPs in 64-bit mode."

This reverts commit 79f6a814ab9383094a5ffea75bb7aca55292ff15.

Didn't notice that someone had reverted the commit that caused the problem.
The file was modifiedlld/test/COFF/lto.ll
Commit 48c196f5c8b339c347d0a4ecf944c942fa5df765 by maskray
[gcov] Move llvm_writeout_files from atexit to a static destructor

atexit registered functions run earlier so `__attribute__((destructor))`
annotated functions cannot be tracked.

Set a priority of 100 (compatible with GCC 7 onwards) to track
destructors and destructors whose priorities are greater than 100.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7970

Reviewed By: calixte, marco-c

Differential Revision: https://reviews.llvm.org/D82253
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
The file was addedcompiler-rt/test/profile/Posix/gcov-destructor.c
Commit dd904082625b4fd83f90647952dabee93ef5e990 by tkeith
[flang][NFC] Get formatting in sync with latest clang-format

flang/module only contains Fortran files and one is a .h so disable
formatting on that directory.

Differential Revision: https://reviews.llvm.org/D82989
The file was modifiedflang/include/flang/Lower/AbstractConverter.h
The file was modifiedflang/include/flang/Semantics/scope.h
The file was modifiedflang/lib/Evaluate/fold-integer.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was addedflang/module/.clang-format
The file was modifiedflang/include/flang/Parser/characters.h
The file was modifiedflang/lib/Semantics/check-data.cpp
The file was modifiedflang/runtime/memory.h
The file was modifiedflang/runtime/edit-output.cpp
The file was modifiedflang/lib/Semantics/canonicalize-do.cpp
The file was modifiedflang/lib/Lower/ConvertType.cpp
Commit fbce9855e9d5483f724d231dd4ecc2b79807d217 by thomasraoux
[mlir][NFC] Move conversion of scf to spir-v ops in their own file

Move patterns for scf to spir-v ops in their own file/folder.

Differential Revision: https://reviews.llvm.org/D82914
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was addedmlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
The file was addedmlir/include/mlir/Conversion/SCFToSPIRV/SCFToSPIRV.h
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
The file was addedmlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt
Commit 0670f855a7d8f48a86d67d83e6be45fab016f080 by thomasraoux
[mlir][spirv] Add support for lowering scf.for scf/if with return value

This allow lowering to support scf.for and scf.if with results. As right now
spv region operations don't have return value the results are demoted to
Function memory. We create one allocation per result right before the region
and store the yield values in it. Then we can load back the value from
allocation to be able to use the results.

Differential Revision: https://reviews.llvm.org/D82246
The file was modifiedmlir/test/Conversion/GPUToSPIRV/if.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/loop.mlir
The file was modifiedmlir/include/mlir/Conversion/SCFToSPIRV/SCFToSPIRV.h
The file was modifiedmlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
Commit c5b4f03b53a48b7dc35ce6c345bb06871cd7699e by lei
[PowerPC] Exploit xxspltiw and xxspltidp instructions

Exploits the VSX Vector Splat Immediate Word and
VSX Vector Splat Immediate Double Precision instructions:

  xxspltiw XT,IMM32
  xxspltidp XT,IMM32

Differential Revision: https://reviews.llvm.org/D82911
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was addedllvm/test/CodeGen/PowerPC/p10-splatImm-CPload-pcrel.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-splatImm.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 05756e6937d58c357b0b7e37ff3e9a8f7dd0d485 by tkeith
[flang] Add more support for alternate returns

Add `hasAlternateReturns` to `evaluate::ProcedureRef`.

Add `HasAlternateReturns` to test subprogram symbols.

Fix `label01.F90` test: It was checking that "error: " didn't appear in
the output. But that was erroneously matching a warning that ends
"would be in error:". So change it to check for ": error: " instead.

Differential Revision: https://reviews.llvm.org/D83007
The file was modifiedflang/include/flang/Semantics/tools.h
The file was modifiedflang/include/flang/Evaluate/call.h
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/test/Semantics/label01.F90
The file was modifiedflang/lib/Semantics/expression.cpp
Commit 99c4207d428bc1e24fed677c67230e27dd3d508f by lei
[PowerPC][NFC] Update doc for FeatureISA3_1/FeatureISA3_0 definitions
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
Commit aded4f0cc070fcef6763c9a3c2ba764d652b692e by xiang1.zhang
[X86-64] Support Intel AMX instructions

Summary:
INTEL ADVANCED MATRIX EXTENSIONS (AMX).
AMX is a new programming paradigm, it has a set of 2-dimensional registers
(TILES) representing sub-arrays from a larger 2-dimensional memory image and
operate on TILES.

Spec can be found in Chapter 3 here https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html

Reviewers: LuoYuanke, annita.zhang, pengfei, RKSimon, xiangzhangllvm

Reviewed By: xiangzhangllvm

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82705
The file was modifiedllvm/utils/TableGen/X86DisassemblerTables.cpp
The file was modifiedllvm/test/CodeGen/X86/ipra-reg-usage.ll
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-bf16-intel.txt
The file was modifiedllvm/lib/Target/X86/AsmParser/X86Operand.h
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-bf16-att.s
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-bf16-att.txt
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
The file was modifiedllvm/utils/TableGen/X86RecognizableInstr.h
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-tile-att.txt
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-tile-att.s
The file was modifiedllvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
The file was modifiedllvm/utils/TableGen/X86ModRMFilters.cpp
The file was modifiedllvm/utils/TableGen/X86ModRMFilters.h
The file was modifiedllvm/lib/Target/X86/X86.td
The file was addedllvm/lib/Target/X86/X86InstrAMX.td
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-int8-intel.s
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-error.s
The file was modifiedllvm/tools/llvm-exegesis/lib/X86/Target.cpp
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-tile-intel.s
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-int8-att.s
The file was modifiedllvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
The file was addedllvm/test/MC/X86/AMX/x86-64-amx-bf16-intel.s
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.td
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.td
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-error.txt
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-int8-intel.txt
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-tile-intel.txt
The file was modifiedllvm/utils/TableGen/X86RecognizableInstr.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrFormats.td
The file was modifiedllvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
The file was addedllvm/test/MC/Disassembler/X86/AMX/x86-64-amx-int8-att.txt
The file was modifiedllvm/lib/Support/Host.cpp
Commit 2ddba3082ca79080b14f372ebe4b5bdbc5f694ed by clementval
[flang][openmp] Use common Directive and Clause enum from llvm/Frontend

Summary:
This patch is removing the custom enumeration for OpenMP Directives and Clauses and replace them
with the newly tablegen generated one from llvm/Frontend. This is a first patch and some will follow to share the same
infrastructure where possible. The next patch should use the clauses allowance defined in the tablegen file.

Reviewers: jdoerfert, DavidTruby, sscalpone, kiranchandramohan, ichoyjx

Reviewed By: DavidTruby, ichoyjx

Subscribers: jholewinski, cfe-commits, dblaikie, MaskRay, ymandel, ichoyjx, mgorny, yaxunl, guansong, jfb, sstefan1, aaron.ballman, llvm-commits

Tags: #llvm, #flang, #clang

Differential Revision: https://reviews.llvm.org/D82906
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedclang/lib/Basic/OpenMPKinds.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedflang/lib/Semantics/CMakeLists.txt
The file was modifiedclang/lib/AST/OpenMPClause.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedflang/include/flang/Common/enum-set.h
The file was modifiedflang/lib/Parser/CMakeLists.txt
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
The file was modifiedflang/lib/Evaluate/CMakeLists.txt
The file was modifiedclang/include/clang/AST/OpenMPClause.h
The file was modifiedclang/lib/AST/ASTTypeTraits.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedflang/tools/f18-parse-demo/CMakeLists.txt
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
Commit 88874f07464467f3852dd662d180f7738756649b by lei
[PowerPC]Implement Vector Shift Double Bit Immediate Builtins

Implement Vector Shift Double Bit Immediate Builtins in LLVM/Clang.
  * vec_sldb ();
  * vec_srdb ();

Differential Revision: https://reviews.llvm.org/D82440
The file was addedllvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedclang/lib/Sema/SemaChecking.cpp
Commit 7996a1ef7020e4bda1252f6f26c26e1c78aa3eac by jezng
[lld-macho] Make sure ZeroFill sections are at the end of their segments

Summary:
ld64 does this, and references an internal rdar:// number as an explanation. No
idea what that rdar issue is, but in practice, it seems that not putting a BSS
section at the end can cause subsequent sections in the same segment to be
overwritten with zeroes.

Reviewers: #lld-macho

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81888
The file was modifiedlld/test/MachO/bss.s
The file was modifiedlld/MachO/Writer.cpp
Commit e1a31f52cd79140ac0c72f203c518bc6adf9c7b2 by Pushpinder.Singh
[AMDGPU] Control num waves per EU for implicit work-group size

Summary:
If amdgpu-flat-work-group-size is not specified in LLVM IR, the backend
uses default value of 1024. For this, minimum waves per EU should be 4.
However, backend is still setting minimum value to 1 instead of calculated
value. This is not observed normally as frontend always provide
amdgpu-flat-work-group-size attribute.

Reviewers: rampitec, b-sumner, sameerds, msearles

Reviewed By: rampitec

Subscribers: qcolombet, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81991
The file was modifiedllvm/test/CodeGen/AMDGPU/InlineAsmCrash.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/accvgpr-copy.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/waitcnt-overflow.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/reserve-vgpr-for-sgpr-spill.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-vgpr-to-agpr.ll
Commit 61d22ef236206f17d7abcdcdf9da3c99074432d5 by Fred Riss
[lldb/ObjCRuntime] Implement support for small method lists

On macOS 11 (and other aligned Apple OSs), the Objective-C runtime
has a new optimization which saves memory by making the method
lists smaller.
This patch adds support for this new method list encoding (while
also keeping backward compatibility). This is implicitely covered
by some existing Objective-C tests.
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
Commit 4a674b623796dc5c5778fc6998f788044137d61d by Fred Riss
[lldb/ObjC] Add support for direct selector references

On macOS 11 (and other aligned OSs), the shared cache method
lists get an additional optimization which removes one level
of indirection to get to the selector.
This patch supports this new optimization. Both codepaths are
covered byt the existing Objective-C tests.
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
Commit c9f251aa6f6221a45d926bc12bd25d1833e5d945 by Fred Riss
[lldb/build.py] Always pass an SDK to the compiler on Darwin

On macOS 11, system libraries which are part of the shared cache
are not present on the filesystem anymore. This causes issues
with build.py, because it fails to link binaries with libSystem
or libc++.

The real issue is that build.py was not passing an SDK to the
compiler. The script accepts an argument for the SDK, but it
is currently unused. This patch just threads the SDK through
to the compile and link steps and this fixes a bunch of Shell
test failures on very recent macOS builds.
The file was modifiedlldb/test/Shell/helper/build.py
Commit 7be1661fc6ed3f5c0d0365f5528717707757a382 by thakis
lld/MachO: Remove a useless temporary
The file was modifiedlld/MachO/Driver.cpp
Commit ba5087f13025a15662e164eb371fe0678258e03f by thakis
ld64.lld: Add janky support for tbd files

With this, a simple hello world links against libSystem.tbd and the
old ld64.lld linker kind of works again with newer SDKs.

The motivation here is to have an arm64 cross linker that's good
enough to be able to run simple configure link checks on non-mac
systems for generating config.h files. Once -flavor darwinnew can
link arm64, we'll switch to that.
The file was modifiedlld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
The file was modifiedlld/lib/ReaderWriter/MachO/File.h
The file was addedlld/test/mach-o/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
The file was modifiedlld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
The file was modifiedlld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp
The file was addedlld/test/mach-o/stub-link.s
The file was modifiedlld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
Commit c59aec0ca1edac409d8789956049ae13af24e370 by riddleriver
[mlir][OpFormatGen] Add support for resolving variadic types from non-variadic

This enables better support for traits such as SameOperandsAndResultType, and other situations in which a variadic operand may be resolved from a non-variadic.

Differential Revision: https://reviews.llvm.org/D83011
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
Commit fdbd78333fc6f1deb3037d0961130f05dce059e7 by ecaldas
Add parenthesized expression to SyntaxTree

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82960
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h
Commit e4b3c138deb8b4e7fd6afbf301b85da7e812d505 by tmsriram
This patch adds basic debug info support with basic block sections.

This patch uses ranges for debug information when a function contains basic block sections rather than using [lowpc, highpc]. This is also the first in a series of patches for debug info and does not contain the support for linker relaxation. That will be done as a follow up patch.

Differential Revision: https://reviews.llvm.org/D78851
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinterHandler.h
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was addedllvm/test/DebugInfo/X86/basicblock-sections_1.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/include/llvm/CodeGen/DebugHandlerBase.h
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
Commit 2a36f29fce91b6242ebd926d7c08381c31138d2c by pifon
[clang] Re-add deleted forward declaration.
The file was modifiedclang/lib/CodeGen/ABIInfo.h
Commit 0aad82943af946d1a1821998c0804ae40227051d by craig.topper
[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment.

The default CPU used by llvm-mc doesn't have the NOPL feature, but
if we know we're compiling in 64-bit mode we should be able to
use nopl.
The file was modifiedllvm/test/MC/X86/align-branch-bundle.s
The file was modifiedlld/test/COFF/lto.ll
The file was modifiedllvm/test/MC/X86/align-branch-pad-max-prefix.s
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Commit 11b1eeeaec642052e7299181c6a087f68807ae8b by Raphael Isemann
[lldb][NFC] Fix a variable name in ClangDiagnosticManagerAdapter
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
Commit d3bf1f3af2f26a7c100c3aa6b8ae93feb7034cb8 by n.james93
Revert "[clang-tidy] For `run-clang-tidy.py` escape the paths that are used for analysis."

This reverts commit 068fa35746637fde29355a43d17d554a92b32cdf.

Based on a regression reported in https://bugs.llvm.org/show_bug.cgi?id=46536
The file was modifiedclang-tools-extra/clang-tidy/tool/run-clang-tidy.py
Commit c7df35d2b28eae824cded70663a2becf359a5402 by david.sherwood
[CodeGen] Fix warnings in getCopyToPartsVector

Whilst trying to assemble the following test:

  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2.c

I discovered we were hitting some warnings about possible invalid
calls to getVectorNumElements() in getCopyToPartsVector(). I've
tried to fix these by using ElementCount types where possible and
I've made the assumption that we don't support using a fixed width
vector to copy parts of a scalable vector, and vice versa. Looking
at how the copy is implemented I think that's the right thing for
now.

Differential Revision: https://reviews.llvm.org/D82744
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit 9e6f19fd8390d39a0351941da1582f888d18c369 by simon.tatham
Fix missing build dependency on omp_gen.

Summary:
`include/llvm/Frontend/OpenMP/CMakeLists.txt` creates a new target
called `omp_gen` which builds the generated include file `OMP.h.inc`.
This target must therefore be a dependency of every compilation step
whose transitive #include dependencies contain `OMP.h.inc`, or else
it's possible for builds to fail if Ninja (or make or whatever)
schedules that compilation step before building `OMP.h.inc` at all.

A few of those dependencies are currently missing, which leads to
intermittent build failures, depending on the order that Ninja (or
whatever) happens to schedule its commands. As far as I can see,
compiles in `clang/lib/CodeGen`, `clang/lib/Frontend`, and
`clang/examples` all depend transitivily on `OMP.h.inc` (usually via
`clang/AST/AST.h`), but don't have the formal dependency in the ninja
graph.

Adding `omp_gen` to the dependencies of `clang-tablegen-targets` seems
to be the way to get the missing dependency into the `clang/examples`
subdirectory. This also fixes the other two clang subdirectories, as
far as I can see.

Reviewers: clementval, thakis, chandlerc, jdoerfert

Reviewed By: clementval

Subscribers: cfe-commits, jdenny, mgorny, sstefan1, llvm-commits

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D82659
The file was modifiedclang/CMakeLists.txt
Commit dc8e4d856615806dc4c7bbd898cf0428b005e790 by nicholas.guy
[ARM] Rearrange SizeReduction when using -Oz

Move the Thumb2SizeReduce pass to before IfConversion when optimising
for minimal code size.

Running the Thumb2SizeReduction pass before IfConversionallows T1
instructions to propagate to the final output, rather than the
ifConverter modifying T2 instructions and preventing them from being
reduced later.

This change does introduce a regression regarding execution time, so
it's only applied when optimising for size.

Running the LLVM Test Suite with this change produces a geomean
difference of -0.1% for the size..text metric.

Differential Revision: https://reviews.llvm.org/D82439
The file was modifiedllvm/lib/Target/ARM/ARMTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/constant-hoisting.ll
The file was modifiedllvm/test/CodeGen/ARM/t2-shrink-ldrpost.ll
Commit aa4fd7d848d78611b4e6b6768edc6ab9d2b1efa5 by qiucofan
[NFC] Fix typo in triples from unkown to unknown
The file was modifiedllvm/test/CodeGen/X86/codegen-prepare-collapse.ll
The file was modifiedllvm/test/CodeGen/PowerPC/preemption.ll
The file was modifiedllvm/test/MC/WebAssembly/tail-call-encodings.s
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-shuffle-bitcast.ll
The file was modifiedllvm/test/MC/WebAssembly/bulk-memory-encodings.s
The file was modifiedclang/test/SemaOpenCL/block-array-capturing.cl
The file was modifiedllvm/test/MC/WebAssembly/atomics-encodings.s
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
Commit 83aa58d795b92cd864c6c09d9a65817a14e63acc by Raphael Isemann
[lldb][NFC] Don't pass around passthrough from ClangDiagnosticManagerAdapter

The passthrough DiagnosticConsumer is an implementation detail of
ClangDiagnosticManagerAdapter and we can just hide it behind the normal
DiagnosticConsumer interface that ClangDiagnosticManagerAdapter is supposed
to implement.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
Commit f255656a97f7c83f7e049fd916278bbf7446651e by sander.desmalen
[SVE] ACLE: Fix builtins for svdup_lane_bf16 and svcvtnt_bf16_f32_x

bfloat16 variants of svdup_lane were missing, and svcvtnt_bf16_x
was implemented incorrectly (it takes an operand for the inactive
lanes)

Reviewers: fpetrogalli, efriedma

Reviewed By: fpetrogalli

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82908
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup-bfloat.c
The file was modifiedclang/utils/TableGen/SveEmitter.cpp
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvtnt.c
The file was modifiedclang/include/clang/Basic/arm_sve.td
Commit 07bda98b6afdef7bed0bf7d47f5a8f6cfc64d973 by sander.desmalen
[AArch64][SVE] Add unpred load/store patterns for bf16 types

Reviewers: kmclaughlin, c-rhodes, efriedma

Reviewed By: efriedma

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82909
The file was modifiedllvm/test/CodeGen/AArch64/spillfill-sve.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 143e324e7501e127ae1275c93c743cf06e9e18b1 by sander.desmalen
[CodeGen][SVE] Don't drop scalable flag in DAGCombiner::visitEXTRACT_SUBVECTOR

There was a rogue 'assert' in AArch64ISelLowering for the tuple.get intrinsics,
that shouldn't really have been there (I suspect this was a remnant from when
we expected the wider vector always to have come from a vector CONCAT).

When I tried to create a more minimal reproducer, I found a bug in
DAGCombiner where it drops the scalable flag when trying to fold:

      extract_subv (bitcast X), Index --> bitcast (extract_subv X, Index')

This patch fixes both issues.

Reviewers: david-arm, efriedma, spatel

Reviewed By: efriedma

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82910
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was addedllvm/test/CodeGen/AArch64/sve-extract-subvector.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 6f1694759cc0de5c7ade8b465be4bb71ca4021e2 by jay.foad
[AMDGPU] Fix formatting in MIR tests
The file was modifiedllvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/merge-image-load.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/phi-vgpr-input-moveimm.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-trunc.v2s16.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext-inreg.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-trunc.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/gws-hazards.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
Commit 7f903873b8a937acec2e2cc232e70cba53061352 by nunoplopes
DSE: fix builtin function recognition to take decl into account
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Commit a27478e54f5fa99ed17ad6ef149046f9d391f293 by Ben.Dunbobbin
[Support][Windows] Prevent 2s delay when renaming a file that does not exist

Differential Revision: https://reviews.llvm.org/D82542
The file was modifiedllvm/lib/Support/Windows/Path.inc
Commit 00f5921609a5eabcac2ca1300243291fbdd7721d by david.sherwood
[SVE] Add warnings checks in four more LLVM SVE tests

I have added CHECK lines to the following tests:

  llvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll
  llvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
  llvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
  llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll

since they are now free of warnings related to invalid use of
EVT::getVectorNumElements() and VectorType::getNumElements().

Differential Revision: https://reviews.llvm.org/D82957
The file was modifiedllvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll
Commit 804d9687443e1132157a9bb3696cb5327ae0558c by marukawa
[VE] Rename VE toolchain source files

Summary:
Rename VE.cpp and VE.h to VEToolchain.cpp and VEToolchain.h respectively
in order to avoid link warning message.  Linker warns that VE.cpp.o and
Arch/VE.cpp.o have the same name.

Reviewers: simoll, k-ishizaka

Reviewed By: simoll

Subscribers: mgorny, cfe-commits

Tags: #llvm, #ve, #clang

Differential Revision: https://reviews.llvm.org/D82968
The file was addedclang/lib/Driver/ToolChains/VEToolchain.cpp
The file was modifiedclang/lib/Driver/CMakeLists.txt
The file was removedclang/lib/Driver/ToolChains/VE.cpp
The file was addedclang/lib/Driver/ToolChains/VEToolchain.h
The file was removedclang/lib/Driver/ToolChains/VE.h
The file was modifiedclang/lib/Driver/Driver.cpp
Commit 559685d0bbde50db6f71dc07eb5b7a8029d8b39c by llvmgnsyncbot
[gn build] Port 804d9687443
The file was modifiedllvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
Commit 68498ce8af375a97a87738676fc2917c0c9659d6 by david.green
[BasicAA] New basic-aa-recphi test. NFC
The file was addedllvm/test/Analysis/BasicAA/recphi.ll
Commit 2c16100e6f72075564ea1f67fa5a82c269dafcd3 by lebedev.ri
[ScalarEvolution] createSCEV(): recognize `udiv`/`urem` disguised as an `sdiv`/`srem`

Summary:
While InstCombine trivially converts that `srem` into a `urem`,
it might happen later than wanted, in particular i'd like
for that to happen on  https://godbolt.org/z/bwuEmJ test case
early in pipeline, before first instcombine run, just before `-mem2reg`.

SCEV should recognize this case natively.

Reviewers: mkazantsev, efriedma, nikic, reames

Reviewed By: efriedma

Subscribers: clementval, hiraditya, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82721
The file was modifiedllvm/test/Analysis/ScalarEvolution/sdiv.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/srem.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 58a56ef4e7a8bcbbad377e820a23f0e8d95a0fbd by lebedev.ri
Regenerate llvm/test/CodeGen/X86/optimize-max-0.ll

It surprizingly appears to be affected by the last SCEV patch
The file was modifiedllvm/test/CodeGen/X86/optimize-max-0.ll
Commit a8fe12065ec8137e55a6a8b35dd5355477c2ac16 by anna.welker
[LV] Enable the LoopVectorizer to create pointer inductions

This patch enables the LoopVectorizer to build a phi of pointer
type and provide the vector loads and stores with vector type
getelementptrs built from the pointer induction variable, which
produces much less instructions than the previous approach of
creating scalar getelementpointers and glue them together to a
vector.

Differential Revision: https://reviews.llvm.org/D81267
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was addedllvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
Commit d4cf4c66b5b75393fd68e3aee8ab6c788bb628e3 by aaron
Fix some typos (unkown -> unknown); NFC
The file was modifiedclang/lib/Parse/ParseStmtAsm.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/test/Analysis/fuchsia_handle.cpp
Commit 11c4bb0c7cbd91c1e58395363d4dec2b2a803450 by llvm-dev
Regenerate apint-shift tests and replace %tmp variable names to silence update_test_checks warnings
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
Commit 421c02e5c6b376fbbd8cc61c20feb35f1cee7a5a by llvm-dev
[InstCombine] Add some (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) tests for non-uniform vectors

As noticed on PR46531
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
Commit fd6193d5ea4e4a021b9578b4271329f46b27e89c by kerry.mclaughlin
[AArch64][SVE] Add reg+imm addressing mode for unpredicated stores

Reviewers: sdesmalen, efriedma, david-arm

Reviewed By: efriedma

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82985
The file was addedllvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit d2dcff60fe230bf5e5f7aeae931c982af4ef3721 by gchatelet
[Alignment][NFC] VectorLayout now uses Align internally

By rewritting `ScalarizerVisitor::getVectorLayout` in such a way it returns `VectorLayout` (or `None`) it becomes obvious that `VectorLayout::VecAlign` cannot be `0`.

This patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Differential Revision: https://reviews.llvm.org/D82981
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp
Commit 8dbafd24d6dad9ace4447084a517823ea1d6e6b4 by gchatelet
[Alignment][NFC] Transition and simplify calls to DL::getABITypeAlignment

This patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Differential Revision: https://reviews.llvm.org/D82977
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Commit 4cf24cb868b9fe9e65d2e4b27b8ec5fd5d5fb599 by whisperity
[NFC][clang] Add missing VALIDATE_DIAG_SIZE()

Originally when libCrossTU was introduced in commit
e350b0a19629c4cce87f28913b3137f4c7015de3, the macro which thus had all
diagnostic kinds covered was not added.
The file was modifiedclang/lib/Basic/DiagnosticIDs.cpp
Commit 37cc3ee8c5553ec02c133e80e9ac98f5ffa525d1 by kadircet
[clangd] Switch FindSymbolsTests to use TestTU

Summary:
This gets rid of the dependency on ClangdServer and a bunch of extra
infrastructure coming with it. Also enables us to clear SyncAPI, as it was the
sole user of runWorkspace/DocumentSymbols.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82944
The file was modifiedclang-tools-extra/clangd/unittests/FindSymbolsTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SyncAPI.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SyncAPI.h
Commit db4d5f7048a26a7708821e46095742aecfd8ba46 by gabor.marton
[analyzer][StdLibraryFunctionsChecker] Add POSIX file handling functions

Adding file handling functions from the POSIX standard (2017).
A new checker option is introduced to enable them.
In follow-up patches I am going to upstream networking, pthread, and other
groups of POSIX functions.

Differential Revision: https://reviews.llvm.org/D82288
The file was addedclang/test/Analysis/std-c-library-functions-POSIX.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/analyzer-config.c
Commit d6343e607ac8fa71fa6d99f9c86369ae9e66e671 by pavel
[lldb] Skip TestLimitDebugInfo on windows

The test does not work on windows, because clang will emit full type
information for __declspec(dllexport) types even under
-flimit-debug-info. __declspec(dllexport) is needed to be able to use
the type across shared library boundaries on windows, which makes this a
pretty good heuristic, but defeats the purpose of this test.

I am going to create (in another patch) an basic assembly test, so that
the relevant code gets at least some coverage on windows hosts.

This also reverts commit 1276855f2b4485ec312b379c1b8eaf5510d9b157, which
added the __declspec annotations -- they are not necessary anymore, and
they needlessly complicate the test.
The file was modifiedlldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py
The file was modifiedlldb/test/API/functionalities/limit-debug-info/onetwo.h
The file was modifiedlldb/test/API/functionalities/limit-debug-info/Makefile
Commit 8c5133f1855767a16a6045777bed4652bd114d84 by hokein.wu
[clang] Fix a null-NSS-access crash in DependentNameType.

The DependentNameType must have a non-null NSS. This property could be
violated during typo correction.

Differential Revision: https://reviews.llvm.org/D82738
The file was modifiedclang/test/Parser/cxx-template-decl.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
Commit 30bd66544d7a1e602dfaf412158d4bd759352e36 by david.green
[BasicAA] Fix recursive phi MustAlias calculations

With the option -basic-aa-recphi we can detect recursive phis that loop
through constant geps, which allows us to detect more no-alias case for
pointer IV's. If the other phi operand and the other alias value are
MustAlias though, we cannot presume that every element in the loop is
also MustAlias. We need to instead be conservative and return MayAlias.

Differential Revision: https://reviews.llvm.org/D82987
The file was modifiedllvm/test/Analysis/BasicAA/recphi.ll
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
Commit ffa1f8198e6e8be6ca1044975a67e646188210da by eschweitz
[flang] Add changes to codegen to convert it to tablegen passes.

This upstreams changes to codegen to convert the passes to the new
tablegen pass support from MLIR.

Differential revision: https://reviews.llvm.org/D83018
The file was addedflang/include/flang/Optimizer/CodeGen/CGPasses.td
The file was modifiedflang/include/flang/Optimizer/CMakeLists.txt
The file was addedflang/include/flang/Optimizer/CodeGen/CMakeLists.txt
The file was modifiedflang/include/flang/Optimizer/CodeGen/CodeGen.h
Commit 5c02a2421b951a14d1294598d0082b32659c7082 by eschweitz
[flang] Add inliner pass.

This adds a minimalist inliner implementation. Along with the inliner, a
minimum number of support files are also included. These will pave the
way for future diffs to add more transformation passes to flang. A
future diff will add the inline test, which cannot be run successfully
quite yet as some components have not yet been upstreamed.

Differential revision:
The file was addedflang/lib/Optimizer/Transforms/Inliner.cpp
The file was modifiedflang/include/flang/Optimizer/CMakeLists.txt
The file was addedflang/include/flang/Optimizer/Transforms/Passes.td
The file was addedflang/include/flang/Optimizer/Transforms/Passes.h
The file was modifiedflang/lib/Optimizer/CMakeLists.txt
The file was addedflang/include/flang/Optimizer/Transforms/CMakeLists.txt
Commit e4d178a752444453f0ab8d2b9085087208aa8296 by riccibrun
[clang][Serialization] Don't duplicate the body of LambdaExpr during deserialization

05843dc6ab97a00cbde7aa4f08bf3692eb83109d changed the serialization of the body
of LambdaExpr to avoid a mutation in LambdaExpr::getBody and to avoid a missing
body in LambdaExpr::children.

Unfortunately this replaced one bug by another: we are now duplicating the body
during deserialization; that is after deserialization the identity:

E->getBody() == E->getCallOperator()->getBody() does not hold.

Fix that by instead lazily loading the body from the call operator when needed.

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

Reviewed By: martong, aaron.ballman, vabridgers
The file was modifiedclang/lib/AST/ExprCXX.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/include/clang/AST/ExprCXX.h
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was addedclang/test/AST/ast-dump-lambda-body-not-duplicated.cpp
Commit 075c440f7bc8f38b2e484a1f31c803f470dab7d4 by sander.desmalen
[AArch64][SVE] Put zeroing pseudos and patterns under flag.

This patch puts the _ZERO pseudos and corresponding patterns
under the predicate 'UseExperimentalZeroingPseudos', so that they
can be enabled/disabled through compile flags.

This is done because the zeroing pseudos use MOVPRFX to do merging of
the inactive lanes, but it depends on the uarch whether this operation
is actually merged with the destructive operation. If not, it may be
more profitable to use a SELECT and to give the compiler the freedom to
schedule these instructions as normal, rather than keeping them bundled
together. Additionally, this feature is not yet fully implemented and
there are still known bugs (see D80410) that need to be resolved before
the 'experimental' can be dropped from the name.

Reviewers: paulwalker-arm, cameron.mcinally, efriedma

Reviewed By: paulwalker-arm

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82780
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-shifts-merging.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-fp-arith-merging.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-zeroing.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.ll
Commit 23eeae552689ecf47dbb5c5dcc551a074c4e0110 by llvm-dev
Regenerate sext/trunc tests and replace %tmp variable names to silence update_test_checks warnings
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
The file was modifiedllvm/test/Transforms/InstCombine/sext.ll
Commit e0968ad45948d5b7a89c468576e660381c88148f by n.james93
call ::pthread_detach on llvm_execute_on_thread_impl

Fixes all TSAN bugs in clangd

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D83039
The file was modifiedllvm/lib/Support/Unix/Threading.inc
Commit c1f1db8502f1fc788eefeafd3dc225bd287ee4b9 by pavel
[lldb] Add a host-independent test for handling -flimit-debug-info

This complements the existing TestLimitDebugInfo.py, which tests this
scenario more comprehensively, but is not able to run on all hosts.
Specifically, it's hard to trigger this code from windows because clang
tries hard to ensure that debug info for types marked with
__declspec(dllexport) is emitted even under -flimit-debug-info (and
dllexport is needed to use a type across shared libraries).

This assembly-based test serves two purposes:
- it tests that -flimit-debug-info code path works for windows binaries
  (even though the aforementioned feature means its less likely to be
  used there)
- it gives basic test coverage for the -flimit-debug-info handling code
  when running the test suite on windows hosts.
The file was addedlldb/test/Shell/SymbolFile/DWARF/limit-debug-info.s
Commit f51a319cacd44819b4fb9fa9f005c2445bcee984 by n.james93
[ASTMatchers] Enhanced support for matchers taking Regex arguments

Added new Macros `AST(_POLYMORPHIC)_MATCHER_REGEX(_OVERLOAD)` that define a matchers that take a regular expression string and optionally regular expression flags. This lets users match against nodes while ignoring the case without having to manually use `[Aa]` or `[A-Fa-f]` in their regex. The other point this addresses is in the current state, matchers that use regular expressions have to compile them for each node they try to match on, Now the regular expression is compiled once when you define the matcher and used for every node that it tries to match against. If there is an error while compiling the regular expression an error will be logged to stderr showing the bad regex string and the reason it couldn't be compiled. The old behaviour of this was down to the Matcher implementation and some would assert, whereas others just would never match. Support for this has been added to the documentation script as well. Support for this has been added to dynamic matchers ensuring functionality is the same between the 2 use cases.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D82706
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h
The file was modifiedclang/lib/ASTMatchers/Dynamic/Marshallers.h
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/lib/ASTMatchers/Dynamic/Marshallers.cpp
The file was modifiedclang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersMacros.h
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp
The file was modifiedllvm/lib/Support/Regex.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
The file was modifiedllvm/include/llvm/Support/Regex.h
The file was modifiedclang/docs/tools/dump_ast_matchers.py
Commit 3c72cafdf407a5a74d98a025071019533a54a1e1 by jonathan_roelofs
Fix missing build dependencies on omp_gen

Differential Revision: https://reviews.llvm.org/D83003
The file was modifiedllvm/unittests/Frontend/CMakeLists.txt
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in
The file was modifiedllvm/cmake/modules/CMakeLists.txt
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/lib/Transforms/IPO/CMakeLists.txt
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 1c9d681092d18bac249f01c5d9055dce6898a861 by dmitry.preobrazhensky
[AMDGPU][CODEGEN] Added support of new inline assembler constraints

Added support for constraints 'I', 'J', 'B', 'C', 'DA', 'DB'.

See https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints.

Reviewers: arsenm, rampitec

Differential Revision: https://reviews.llvm.org/D81651
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
The file was modifiedllvm/test/CodeGen/AMDGPU/inline-constraints.ll
Commit 10a898b3ecd638c58803e471b1ec239e58574635 by uday
[MLIR] Exact integer emptiness checks for FlatAffineConstraints

This patch adds the capability to perform exact integer emptiness checks for FlatAffineConstraints using the General Basis Reduction algorithm (GBR). Previously, only a heuristic was available for emptiness checks, which was not guaranteed to always give a conclusive result.

This patch adds a `Simplex` class, which can be constructed using a `FlatAffineConstraints`, and can find an integer sample point (if one exists) using the GBR algorithm. Additionally, it adds two classes `Matrix` and `Fraction`, which are used by `Simplex`.

The integer emptiness check functionality can be accessed through the new `FlatAffineConstraints::isIntegerEmpty()` function, which runs the existing heuristic first and, if that proves to be inconclusive, runs the GBR algorithm to produce a conclusive result.

Differential Revision: https://reviews.llvm.org/D80860
The file was addedmlir/unittests/Analysis/Presburger/CMakeLists.txt
The file was addedmlir/include/mlir/Analysis/Presburger/Fraction.h
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
The file was addedmlir/unittests/Analysis/AffineStructuresTest.cpp
The file was addedmlir/include/mlir/Analysis/Presburger/Simplex.h
The file was modifiedmlir/lib/Analysis/AffineStructures.cpp
The file was addedmlir/unittests/Analysis/CMakeLists.txt
The file was addedmlir/unittests/Analysis/Presburger/SimplexTest.cpp
The file was addedmlir/lib/Analysis/Presburger/CMakeLists.txt
The file was modifiedmlir/include/mlir/Analysis/AffineStructures.h
The file was addedmlir/lib/Analysis/Presburger/Matrix.cpp
The file was addedmlir/lib/Analysis/Presburger/Simplex.cpp
The file was addedmlir/unittests/Analysis/Presburger/MatrixTest.cpp
The file was modifiedmlir/unittests/CMakeLists.txt
The file was addedmlir/include/mlir/Analysis/Presburger/Matrix.h
Commit 59f1bf46f8c258b9c784ff921b89fb6cb7a06612 by vince.a.bridgers
[ASTImporter] Add unittest case for friend decl import

Summary:
This change adds a matching test case for the recent bug fix to
VisitFriendDecl in ASTImporterLookup.cpp.

See https://reviews.llvm.org/D82882 for details.

Reviewers: martong, a.sidorin, shafik

Reviewed By: martong

Subscribers: rnkovacs, teemperor, cfe-commits, dkrupp

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83006
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit e6cf796bab7e02d2b8ac7fd495f14f5e21494270 by flo
Preserve GlobalsAA analysis result in LowerConstantIntrinsics

LowerConstantIntrinsics fails to preserve the analysis result of
GlobalsAA. Not preserving the analysis might affect benchmark
performance. This change fixes this issue.

Patch by Ryan Santhiraraja <rsanthir@quicinc.com>

Reviewers: fpetrogalli, joerg, fhahn

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D82342
The file was modifiedllvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
Commit 5012ddd5aff24e9963ed2073c7e3fc6991fd8b4c by james.henderson
[ELF][test] Add some additional .eh_frame/.eh_frame_hdr testing

This patch adds a few extra cases to the existing testing for eh_frame
and eh_frame_hdr behaviour in LLD. They all come from a private
testsuite we are trying to migrate to lit.

Reviewed by: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D82852
The file was addedlld/test/ELF/eh-frame-hdr-comdat.s
The file was modifiedlld/test/ELF/eh-frame-merge.s
The file was modifiedlld/test/ELF/eh-frame-type.test
Commit 103d62e1313d80f4a9f4285ad1280b793dfd9f9b by llvm-dev
[InstCombine] Add some (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) tests for vectors with undef elements

Suggested on D83035
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
Commit 769b9799307485aff87c562a8bafff828b166e2b by llvm-dev
[InstCombine] Add (vXi1 trunc(lshr(x,c))) -> icmp_eq(and(x,c')) support for non-uniform vectors

As noted on PR46531, we were only performing this transform on uniform vectors as we were using the m_APInt pattern matcher to extract the shift amount.

Differential Revision: https://reviews.llvm.org/D83035
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
Commit 8b7b0ad24c7323c629a76bb04305c698745be568 by sander.desmalen
[AArch64][SVE] NFC: Rename isOrig -> isReverseInstr

This is a non-functional to clarify some of the terminology in the
AArch64SVEInstrInfo/SVEInstrFormats.td files around the tables
for mapping an instruction to it's reverse instruction counter part,
and vice versa. e.g. DIV -> DIVR and DIVR -> DIV.

Reviewers: paulwalker-arm, cameron.mcinally, rengolin, efriedma

Reviewed By: paulwalker-arm, efriedma

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82979
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit b725142c8db8584007cb1cd9149e8bcecaa88547 by pavel
[lldb] Fix type conversion in the Scalar getters

Summary:
The Scalar class claims to follow the C type conversion rules. This is
true for the Promote function, but it is not true for the implicit
conversions done in the getter methods.

These functions had a subtle bug: when extending the type, they used the
signedness of the *target* type in order to determine whether to do
sign-extension or zero-extension. This is not how things work in C,
which uses the signedness of the *source* type. I.e., C does
(sign-)extension before it does signed->unsigned conversion, and not the
other way around.

This means that: (unsigned long)(int)-1
      is equal to (unsigned long)0xffffffffffffffff
      and not (unsigned long)0x00000000ffffffff

Unsurprisingly, we have accumulated code which depended on this
inconsistent behavior. It mainly manifested itself as code calling
"ULongLong/SLongLong" as a way to get the value of the Scalar object in
a primitive type that is "large enough". Previously, the ULongLong
conversion did not do sign-extension, but now it does.

This patch makes the Scalar getters consistent with the declared
semantics, and fixes the couple of call sites that were using it
incorrectly.

Reviewers: teemperor, JDevlieghere

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D82772
The file was modifiedlldb/source/Utility/Scalar.cpp
The file was modifiedlldb/test/API/commands/expression/ir-interpreter/TestIRInterpreter.py
The file was modifiedlldb/source/Expression/IRInterpreter.cpp
The file was modifiedlldb/unittests/Utility/ScalarTest.cpp
The file was modifiedlldb/include/lldb/Utility/Scalar.h
The file was modifiedlldb/source/Core/ValueObject.cpp
Commit 50b25e0679d4ffe073c3ca479e6ab1e3d29b7f59 by llvm-dev
[InstCombine] Add some sext/trunc tests to show missing support for non-uniform vectors
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
The file was modifiedllvm/test/Transforms/InstCombine/sext.ll
Commit 03fe7eb16fa224a95d4ba252e2a03cbb3fa244af by antiagainst
[MLIR][SPIRVToLLVM] Implementation of spv.BitFieldInsert pattern

This patch introduces conversion pattern for `spv.BitFiledInsert` op,
as well as some utility functions to facilitate code reading.
Since `spv.BitFiledInsert` may take both vector and integer operands,
this case was specifically handled by broadcasting values (`count`
and `offset` here) to vectors. Moreover, the types had to be converted
to same bitwidth in order to conform with LLVM dialect rules.
This was done with `zext` when extending (Note that `count` and
`offset` are treated as unsigned) and `trunc` in the opposite case.
For the latter one, truncation is safe since the op is defined only when
`count`/`offset`/their sum is less than the bitwidth of the result.
This introduces a natural bound of the value of 64, which can be
expressed as `i8`.

Reviewed By: antiagainst, ftynse

Differential Revision: https://reviews.llvm.org/D82639
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/bitwise-ops-to-llvm.mlir
Commit 8119a374bc3aa7ee7f135038a7c772762711d135 by antiagainst
[MLIR][SPIRVToLLVM] SPIR-V function call conversion pattern

Added conversion pattern for SPIR-V `FunctionCallOp`. Based on
specification, it returns no results or a single result, so
can be mapped directly to LLVM dialect's `llvm.call`.

Reviewed By: antiagainst, ftynse

Differential Revision: https://reviews.llvm.org/D83030
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/func-to-llvm.mlir
Commit ef2f46e1f6a63040734c48ed53893298df14b6fa by antiagainst
[MLIR][SPIRV] Support two memory access attributes in OpCopyMemory.

This commit augments spv.CopyMemory's implementation to support 2 memory
access operands. Hence, more closely following the spec. The following
changes are introduces:

- Customize logic for spv.CopyMemory serialization and deserialization.
- Add 2 additional attributes for source memory access operand.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D82710
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/memory-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVOps.td
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/test/Dialect/SPIRV/ops.mlir
Commit a701dc5510ab8e977dcb797035475e641d6a353a by nemanja.i.ibm
[PowerPC] Remove undefs from splat input when changing shuffle mask

As of 1fed131660b2c5d3ea7007e273a7a5da80699445, we have code that
changes shuffle masks so that we can put the shuffle in a canonical
form that can be matched to a single instruction. However, it
does not properly account for undef elements in the BUILD_VECTOR
that is the RHS splat so we can end up with undefs where they
shouldn't be. This patch converts the splat input with undefs to
one without.
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/canonical-merge-shuffles.ll
Commit 16989f6f5c69a62eb78c1ab297f64c8182d7604a by nemanja.i.ibm
[LLD] Add required dependency after shared libs break due to ba5087f13025

The dependency on TextAPI was not added and is required for shared
libs builds.
The file was modifiedlld/lib/ReaderWriter/MachO/CMakeLists.txt
Commit 0e0483bf5c383d5815b9f945fea7e347d4badc0e by hahnjo
[OpenMP][CMake] Fix version detection of testing compiler

When configuring in-tree, the correct names are LLVM_VERSION_MAJOR
and LLVM_VERSION_MINOR. This has been wrong since the code was added
in commits fc473dee98 and 821649229e.
The file was modifiedopenmp/cmake/OpenMPTesting.cmake
Commit 61238d2690a6ebdf3c4f3f68f39101fac30263a7 by sstipanovic
[OpenMPOpt][Fix] Remove double initialization of omp::types.
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 3d12e79094d2d3cb3d7e16dc16a456e1ec25ac1b by aeubanks
[NewPM][LSR] Rename strength-reduce -> loop-reduce

The legacy pass was called "loop-reduce".

This lowers the number of check-llvm failures under NPM by 83.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D82925
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/ivchain.ll
The file was modifiedllvm/lib/FuzzMutate/FuzzerCLI.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/Analysis/ScalarEvolution/depth-limit-overrun.ll
Commit 5416fc014ae5590fdef89630f3777d3216879fbb by thakis
[gn build] make building on an arm mac work

Currently requires `llvm_targets_to_build = [ "X86", "AArch64" ]`:
building just the host arch (i.e. aarch64) causes some linker errors.
The file was modifiedllvm/utils/gn/get.py
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
The file was modifiedllvm/utils/gn/gn.py
The file was modifiedllvm/utils/gn/secondary/llvm/triples.gni
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
Commit 1cfaaf645528cc2fed79617c8ca80945a1504021 by antiagainst
[MLIR][SPIRVToLLVM] Convert spv.constant scalars and vectors

This patch introduces conversion pattern for `spv.constant` with scalar
and vector types. There is a special case when the constant value is a
signed/unsigned integer (vector of integers). Since LLVM dialect does not
have signedness semantics, the types had to be converted to signless ints.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D82936
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was addedmlir/test/Conversion/SPIRVToLLVM/constant-op-to-llvm.mlir
Commit 0059f6ffe84241b9728e48c1eabdaf1a6abbef66 by aeubanks
[NewPM] Add -basic-aa to pr33196.ll

The legacy pass manager implicitly adds BasicAA, but the new PM does
not. This causes pr33196.ll to fail under NPM.

There are almost certainly lots of other failures like this, wanted to
get some input on if adding -basic-aa to tests makes sense at scale.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D82915
The file was modifiedllvm/test/Transforms/NewGVN/pr33196.ll
Commit aa7fd905e4e1bc510448431da9310e8cf5197523 by riccibrun
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper

In general there is no way to get to the ASTContext from most AST nodes
(Decls are one of the exception). This will be a problem when implementing
the rest of APValue::dump since we need the ASTContext to dump some kinds of
APValues.

The ASTContext* in ASTDumper and TextNodeDumper is not always
non-null. This is because we still want to be able to use the various
dump() functions in a debugger.

No functional changes intended.
The file was modifiedclang/include/clang/AST/ASTTypeTraits.h
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/unittests/AST/CommentParser.cpp
The file was modifiedclang/include/clang/AST/Comment.h
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DumpAST.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/lib/AST/ASTTypeTraits.cpp
The file was modifiedclang/include/clang/AST/ASTDumper.h
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp
The file was modifiedclang/lib/AST/ASTDumper.cpp
The file was modifiedclang/lib/Frontend/ASTConsumers.cpp
The file was modifiedclang-tools-extra/clang-query/Query.cpp
The file was modifiedclang/unittests/AST/MatchVerifier.h
The file was modifiedclang/lib/CodeGen/CGExprComplex.cpp
Commit 670dbad473270a2bd46fc611bd48472685403ed6 by daltenty
[DebugInfo] Fix LineTest byteswap for cross-targeting builds

Summary:
The byte swap fix for big endian hosts in 9782c922cb21 (for D81570)
swaps based on the host endianess,  but for cross-targeting builds (i.e.
big endian host targeting little endian) the host-endianess won't
necessarily match the generated DWARF. This change updates the test
to use symmetrical constants so the results aren't endian dependent.

Reviewers: jhenderson, hubert.reinterpretcast, stevewan, ikudrin

Reviewed By: ikudrin

Subscribers: ikudrin, aprantl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82827
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
Commit fcf4d5e4499a391dff42ea1a096f146db44147b6 by riccibrun
Revert "[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper"

This reverts commit aa7fd905e4e1bc510448431da9310e8cf5197523.

I missed some dump() functions.
The file was modifiedclang/include/clang/AST/Comment.h
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/Frontend/ASTConsumers.cpp
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/unittests/AST/MatchVerifier.h
The file was modifiedclang/lib/AST/ASTTypeTraits.cpp
The file was modifiedclang/lib/CodeGen/CGExprComplex.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DumpAST.cpp
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedclang-tools-extra/clang-query/Query.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/include/clang/AST/ASTTypeTraits.h
The file was modifiedclang/include/clang/AST/ASTDumper.h
The file was modifiedclang/lib/AST/ASTDumper.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/unittests/AST/CommentParser.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp
Commit 70f2bcc197ebc8d1c77c5efd5b822a9c9ccdccc4 by tkeith
[flang] Fix bug determining alternate return

The arguments have been moved out of the analyzer so we can't get the
expected number there. Instead use the argument count from the newly
built callee.

Differential Revision: https://reviews.llvm.org/D83063
The file was modifiedflang/lib/Semantics/expression.cpp
Commit 7cccd49a553b6381f57f0ad8545fd5ea9e329afd by pklausler
[flang] Clean up binary dependences of runtime libraries

There were dependences upon LLVM libraries in the Fortran
runtime support library binaries due to some indirect #includes
of llvm/Support/raw_ostream.h, which caused some kind of internal
ABI version consistency checking to get pulled in.  Fixed by
cleaning up some includes.

Reviewed By: tskeith, PeteSteinfeld, sscalpone

Differential Revision: https://reviews.llvm.org/D83060
The file was modifiedflang/lib/Decimal/big-radix-floating-point.h
The file was modifiedflang/include/flang/Common/enum-set.h
The file was modifiedflang/lib/Semantics/mod-file.h
The file was modifiedflang/lib/Decimal/binary-to-decimal.cpp
The file was modifiedflang/runtime/transformational.cpp
Commit 425fb21e03b0ec1cac40a415b6417ff5ba04d076 by thakis
ld64.lld: Make janky support for tbd files actually work sometimes

Also fix a bug in the test input that made the test miss this issue.
The file was modifiedlld/test/mach-o/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
The file was modifiedlld/lib/ReaderWriter/MachO/File.h
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
Commit 286073484f7d36c8d0481be2a2f436f973389f54 by lei
[PowerPC]Implement Vector Permute Extended Builtin

Implements vector permute builtin: vec_permx()

Differential Revision: https://reviews.llvm.org/D82869
The file was modifiedllvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
Commit 08679af900c6274e9d0ec13f8ddd54a39cbefd90 by antiagainst
Revert "[MLIR][SPIRV] Support two memory access attributes in OpCopyMemory."

This reverts commit ef2f46e1f6a63040734c48ed53893298df14b6fa, which
likely triggers a compiler internal error for MSVC.

Differential Revision: https://reviews.llvm.org/D83075
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVOps.td
The file was modifiedmlir/test/Dialect/SPIRV/ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/memory-ops.mlir
Commit cdf84c7b6b7a87949921ae23084f37ce74500800 by craig.topper
[X86] Add test cases for v32i8 rotate with min-legal-vector-width=256

We currently don't mark ROTL as custom when avx512bw is enabled
under the assumption we'll be able to promote the shifts in the
rotate idiom. But if we don't have 512-bit registers enabled we
can't promote.
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll
Commit 204a21317a33437e7b4746d0414e1dd24fd29053 by craig.topper
[X86] Modify the conditions for when we stop making v16i8/v32i8 rotate Custom based on having avx512 features.

The comments here indicate that we prefer to promote the shifts
instead of allowing rotate to be pattern matched. But we weren't
taking into account whether 512-bit registers are enabled or
whethever we have vpsllvw/vpsrlvw instructions.

splatvar_rotate_v32i8 is a slight regrssion, but the other cases
are neutral or improved.
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit b93e6650c8ac319e326d56d7553cb71c202ba6d8 by spatel
[x86] add tests for vector select with bit-test condition; NFC
The file was modifiedllvm/test/CodeGen/X86/vselect-pcmp.ll
The file was modifiedllvm/test/CodeGen/X86/vector-compare-combines.ll
Commit ee01c7a7406345a50176216216ca384fb60e0267 by ajcbik
[mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract

Default vector.contract lowering essentially yields a series of sdot/ddot
operations. However, for some layouts a series of saxpy/daxpy operations,
chained through fma are more efficient. This CL introduces a choice between
the two lowering paths. A default heuristic is to follow.

Some preliminary avx2 performance numbers for matrix-times-vector.
Here, dot performs best for 64x64 A x b and saxpy for 64x64 A^T x b.

```
------------------------------------------------------------
            A x b                          A^T x b
------------------------------------------------------------
GFLOPS    sdot (reassoc)    saxpy    sdot (reassoc)    saxpy
------------------------------------------------------------
1x1        0.6               0.9       0.6             0.9
2x2        2.5               3.2       2.4             3.5
4x4        6.4               8.4       4.9             11.8
8x8       11.7               6.1       5.0             29.6
16x16     20.7              10.8       7.3             43.3
32x32     29.3               7.9       6.4             51.8
64x64     38.9                                         79.3
128x128   32.4                                         40.7
------------------------------------------------------------
```

Reviewed By: nicolasvasilache, ftynse

Differential Revision: https://reviews.llvm.org/D83012
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was addedmlir/test/Dialect/Vector/vector-contract-matvec-transforms.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 359345d609043543e6480954c535d8d5074a5a94 by nikita.ppv
[InstSimplify] Add test for sext/zext comparisons (NFC)
The file was addedllvm/test/Transforms/InstSimplify/cmp_ext.ll
Commit 47481cbffbefb399e672cf056c15323917bf43bf by Vedant Kumar
[test] Deflake test/profile/ContinuousSyncMode/online-merging.c

This test spawns 32 child processes which race to update counters on
shared memory pages. On some Apple-internal machines, two processes race
to perform an update in approximately 0.5% of the test runs, leading to
dropped counter updates. Deflake the test by using atomic increments.

Tested with:

```
$ for I in $(seq 1 1000); do echo ":: Test run $I..."; ./bin/llvm-lit projects/compiler-rt/test/profile/Profile-x86_64h/ContinuousSyncMode/online-merging.c -av || break; done
```

rdar://64956774
The file was modifiedcompiler-rt/test/profile/ContinuousSyncMode/online-merging.c
Commit e87a95b5c24bf2c47af3b90990ac559453266981 by craig.topper
[X86] Add test case for unfolding broadcast load from vpternlog.
The file was modifiedllvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
Commit 912cd8a37f4628f63c2aec71c772f8935f70d0a8 by craig.topper
[X86] Add vpternlog to the broadcast unfolding table.
The file was modifiedllvm/lib/Target/X86/X86InstrFoldTables.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
Commit 6076fc698df4adb62b2496dcd5f84e778ddc60af by lei
[PowerPC]Add Vector Insert Instruction Definitions and MC Test

Adds td definitions and asm/disasm tests for the following instructions:

  VINSBVLX
  VINSBVRX
  VINSHVLX
  VINSHVRX
  VINSWVLX
  VINSWVRX
  VINSBLX
  VINSBRX
  VINSHLX
  VINSHRX
  VINSWLX
  VINSWRX
  VINSDLX
  VINSDRX
  VINSW
  VINSD

Differential Revision: https://reviews.llvm.org/D83052
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding-ISA31.s
Commit bc110de78a4bf47f63267eae07ef02f14bcc78e3 by spatel
[SelectionDAG] don't split branch on logic-of-vector-compares

SelectionDAGBuilder converts logic-of-compares into multiple branches based
on a boolean TLI setting in isJumpExpensive(). But that probably never
considered the pattern of extracted bools from a vector compare - it seems
unlikely that we would want to turn vector logic into control-flow.

The motivating x86 reduction case is shown in PR44565:
https://bugs.llvm.org/show_bug.cgi?id=44565
...and that test shows the expected improvement from using pmovmsk codegen.

For AArch64, I modified the test to include an extra op because the simpler
test gets transformed by a codegen invocation of SimplifyCFG.

Differential Revision: https://reviews.llvm.org/D82602
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/X86/setcc-logic.ll
The file was modifiedllvm/test/CodeGen/AArch64/vec-extract-branch.ll
Commit 4585e3509c2db8c92ceae64ad8d7b073c0090b8f by spatel
[x86] remove redundant tests with no check lines; NFC

These were accidentally included with:
rGb93e6650c8ac
The file was modifiedllvm/test/CodeGen/X86/vector-compare-combines.ll
Commit 0fd383e6566482cde8027f5db66ceca86823b771 by sameerarora101
Fix typo and check commit access.
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp
Commit ca464639a1c9dd3944eb055ffd2796e8c2e7639f by lei
[PowerPC] Implement Vector Blend Builtins in LLVM/Clang

Implements vec_blendv()

Differential Revision: https://reviews.llvm.org/D82774
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/test/CodeGen/builtins-ppc-p10vector.c
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/lib/Headers/altivec.h
Commit 37f98f6f4c85010c786591e1f6bcacdf1bfb2b25 by pklausler
[flang] External I/O runtime work, repackaged (part 1)

Add a isFixedRecordLength flag member to Connection to
disambiguate the state of "record has known variable length"
from "record has fixed length".  Code that sets and tests this
flag will appear in later patches.  Rearrange data members to
reduce storage requirements, since Connection might indirectly
end up on a program stack frame.  Add a utility member function
BeginRecord(); use it in internal I/O processing.

Reviewed By: tskeith, sscalpone

Differential Revision: https://reviews.llvm.org/D83098
The file was modifiedflang/runtime/internal-unit.cpp
The file was modifiedflang/runtime/connection.h
Commit acf6c94a3881859988c4cb62172e5bc08ece7f9a by craig.topper
[X86] Teach lower512BitShuffle to try bitmask and bitblend before splitting v32i16/v64i8 on av512f only targets.

We consider v32i16/v64i8 to be legal types on avx512f, but we
don't have most operations until avx512bw. But we can use
and/or/xor operations. So try those before splitting.

This is especially helpful since we turn some ands with constant
masks into shuffles in early DAG combines. So we should make sure
we recover those back to AND.
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-op.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-512.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/pr45443.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
The file was modifiedllvm/test/CodeGen/X86/combine-sdiv.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll
Commit 39f4b1c86eda23d8d91aaee4d73991b2d77069b4 by thakis
[gn build] get everything to build when llvm_targets_to_build is just AArch64
The file was modifiedllvm/utils/gn/secondary/llvm/tools/llvm-ml/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/tools/llvm-mc/BUILD.gn
Commit 739c7a0a04d2728bfa9a92b30652ac3e2ae6047c by lebedev.ri
[NFC][Scalarizer] Add some insertelement/extractelement tests

See D82961/D82970/D83101/D83102.
The file was modifiedllvm/test/Transforms/Scalarizer/basic.ll
The file was addedllvm/test/Transforms/Scalarizer/variable-insertelement.ll
The file was addedllvm/test/Transforms/Scalarizer/constant-insertelement.ll
The file was addedllvm/test/Transforms/Scalarizer/constant-extractelement.ll
The file was addedllvm/test/Transforms/Scalarizer/variable-extractelement.ll
Commit e98030a55f9dd19aed4b763cc1eced54ae7e550e by lebedev.ri
[NFC][Scalarizer] Also scalarize loads in newly-added tests

Should help better showcase improvements
The file was modifiedllvm/test/Transforms/Scalarizer/constant-insertelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/variable-extractelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/constant-extractelement.ll
The file was modifiedllvm/test/Transforms/Scalarizer/variable-insertelement.ll
Commit 4e958c1748a98d700def115c034e3a863be269e3 by pklausler
[flang] External I/O runtime work, repackaged (part 2)

Clean up the input editing path so external input works better
when combined with further changes.  List-directed input needed
to allow for advancement to following records.

Reviewed By: tskeith, sscalpone

Differential Revision: https://reviews.llvm.org/D83104
The file was modifiedflang/runtime/edit-input.cpp
Commit a3daa3f75a01101790f39fb9d52bf1f8824655c9 by carl.ritson
[AMDGPU] Unify early PS termination blocks

Generate a single early exit block out-of-line and branch to this
if all lanes are killed. This avoids branching if lanes are active.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D82641
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-skips-kill-uncond.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-if-dead.ll
Commit 2bfcacf0ad362956277a1c2c9ba00ddc453a42ce by carl.ritson
[AMDGPU] Insert PS early exit at end of control flow

Exit early if the exec mask is zero at the end of control flow.
Mark the ends of control flow during control flow lowering and
convert these to exits during the insert skips pass.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D82737
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-if-dead.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/kill-infinite-loop.ll
Commit 40e9e0826be8e7a80a5d0e3362311bc5c7d14e3d by lkail
[PowerPC][NFC] Refactor lowerDynamicAlloc

When performing dynamic stack allocation, calculation of frame pointer
and actual negsize can be separated. This patch refactors
`lowerDynamicAlloc` in preparation of supporting
`-fstack-clash-protection` which also has to calculate actual frame
pointer and negsize.

Differential Revision: https://reviews.llvm.org/D81354
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.h
Commit 7ec6927badecae0adf63eb72c42194deb68a9685 by carl.ritson
Revert "[AMDGPU] Insert PS early exit at end of control flow"

This reverts commit 2bfcacf0ad362956277a1c2c9ba00ddc453a42ce.

There appears to be an issue to analysis preservation.
The file was modifiedllvm/test/CodeGen/AMDGPU/kill-infinite-loop.ll
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-if-dead.ll
Commit 53eb7fda51f27b1b098fd6d5c9385948e891e800 by jezng
[lld-macho] Support binding dysyms to any section

Previously, we only supported binding dysyms to the GOT. This
diff adds support for binding them to any arbitrary section. C++
programs appear to use this, I believe for vtables and type_info.

This diff also makes our bind opcode encoding a bit smarter -- we now
encode just the differences between bindings, which will make things
more compact.

I was initially concerned about the performance overhead of iterating
over these relocations, but it turns out that the number of such
relocations is small. A quick analysis of my llvm-project build
directory showed that < 1.3% out of ~7M relocations are RELOC_UNSIGNED
bindings to symbols (including both dynamic and static symbols).

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D83103
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/SyntheticSections.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/MachO/Arch/X86_64.cpp
The file was modifiedlld/test/MachO/dylink.s
Commit d8921a80052575bb2b9cb345e81e8e22d6c6f516 by lkail
[PowerPC][NFC] Prevent unused error when assertion is disabled.
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
Commit 42ca2070d7de8594bf3880a74d7e4454a244b266 by carl.ritson
[AMDGPU] Insert PS early exit at end of control flow

Exit early if the exec mask is zero at the end of control flow.
Mark the ends of control flow during control flow lowering and
convert these to exits during the insert skips pass.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D82737
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-if-dead.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/kill-infinite-loop.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
Commit 52855ed099fa8caed908584675c892c27445c1dd by craig.topper
[X86] Add back support for matching VPTERNLOG from back to back logic ops.

I think this mostly looks ok. The only weird thing I noticed was
a couple rotate vXi8 tests picked up an extra logic op where we have

(and (or (and), (andn)), X). Previously we matched the (or (and), (andn))
to vpternlog, but now we match the (and (or), X) and leave the and/andn
unmatched.
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
The file was modifiedllvm/test/CodeGen/X86/machine-combiner-int-vec.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-cvt.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-512.ll
The file was modifiedllvm/test/CodeGen/X86/midpoint-int-vec-512.ll
The file was modifiedllvm/test/CodeGen/X86/sadd_sat_vec.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-256.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-op.ll
The file was modifiedllvm/test/CodeGen/X86/ssub_sat_vec.ll
The file was modifiedllvm/test/CodeGen/X86/fp-round.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-128.ll
The file was modifiedllvm/test/CodeGen/X86/midpoint-int-vec-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-512.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-gfni-intrinsics.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-512.ll
The file was modifiedllvm/test/CodeGen/X86/midpoint-int-vec-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-128.ll
Commit 03828e38c3cf6f1b8f548b724bcf46e0cffeeac8 by lkail
[PowerPC] Implement probing for dynamic stack allocation

This patch is part of supporting `-fstack-clash-protection`. Mainly do
such things compared to existing `lowerDynamicAlloc`

- Added a new pseudo instruction PPC::PREPARE_PROBED_ALLOC to get
  actual frame pointer and final stack pointer.
- Synthesize a loop to probe by blocks.
- Use DYNAREAOFFSET to get MaxCallFrameSize which is calculated in
  prologepilog.

Differential Revision: https://reviews.llvm.org/D81358
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/stack-clash-dynamic-alloca.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.h
Commit 0724153bbeb543b329c3af51930092f2d73c503e by sam.parker
[CostModel] Fix cast crash

Don't presume instruction operands while matching reductions.

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

Differential Revision: https://reviews.llvm.org/D82453
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was addedllvm/test/Transforms/LoopUnroll/X86/pr46430.ll
Commit 283c8f7f5ad0328ed99ec189ce3d6b3c7c877d36 by hokein.wu
[clang] Check ValueDependent instead of InstantiationDependent before executing the align expr for builtin align functions.

in general, value dependent is a subset of instnatiation dependent. This
would allows us to produce diagnostics for the align expression (which
is instantiation dependent but not value dependent).

Differential Revision: https://reviews.llvm.org/D83074
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/SemaCXX/builtin-align-cxx.cpp
Commit b94e9b7f053875bf3f1c1c61e0c0fa9336a2b2c1 by craig.topper
[X86] Remove MODRM_SPLITREGM from the disassembler tables.

This offers a very minor table size reduction due to only being
used for one AMX opcode.
The file was modifiedllvm/utils/TableGen/X86DisassemblerTables.cpp
The file was modifiedllvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
The file was modifiedllvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
Commit 3587c9c4275b96e7a7ddc4eeb6a001b7d03b55bb by gchatelet
[NFC] Use ADT/Bitfields in Instructions

This is an example patch for D81580.

Differential Revision: https://reviews.llvm.org/D81662
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
The file was modifiedllvm/include/llvm/IR/Instruction.h
The file was modifiedllvm/include/llvm/Support/AtomicOrdering.h
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
Commit c8ef3d5a2f19d5ff6b907d2ca877f96b67d979db by sguelton
Fix stack-clash probing for large static alloca

Differential Revision: https://reviews.llvm.org/D82867
The file was modifiedllvm/test/CodeGen/X86/stack-clash-large.ll
The file was modifiedllvm/test/CodeGen/X86/stack-clash-dynamic-alloca.ll
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 01c4574a129e987cd89daf94969bda2e929fe5a8 by clfbbn
[Attributor] Create getName() method for abstract attribute

Summary: The `getName()` method returns the name of the abstract attribute

Reviewers: jdoerfert, sstefan1, uenoku, homerdin, baziotis

Reviewed By: sstefan1

Subscribers: uenoku, kuter, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83109
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 47cb8a0f0bcbab7bde2d07a84ec02ed0f3186987 by protze
[OpenMP][OMPT]Add event callbacks for taskwait with depend

This adds the missing event callbacks to express dependencies on included tasks
and taskwait with depend clause.

The test fails for GCC, see bug report:
https://bugs.llvm.org/show_bug.cgi?id=46573

Reviewed by: hbae

Differential Revision: https://reviews.llvm.org/D81891
The file was modifiedopenmp/runtime/test/ompt/tasks/task_late_fulfill.c
The file was addedopenmp/runtime/test/ompt/tasks/taskwait-depend.c
The file was modifiedopenmp/runtime/src/kmp_taskdeps.cpp
Commit 87e2751cf07cc570200d8d356d7f35fee2807779 by gchatelet
[Alignment][NFC] Use proper getter to retrieve alignment from ConstantInt and ConstantSDNode

This patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Differential Revision: https://reviews.llvm.org/D83082
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
The file was modifiedllvm/include/llvm/IR/Constants.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroInstr.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
The file was modifiedllvm/lib/Target/Sparc/SparcISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAGNodes.h
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
Commit eb305631bec6bf6765c44dcfbb7ec9e8eca41be4 by jperier
[flang][NFC] Move and rework pgmath description used in folding

This change prepares usage of lipgmath description in lowering.
- Removes the static variable templates that were used to abstract
  libpgmath description
- Move the description to pgmath.h.inc header and rework the macros
  so that they can both be used to declare pgmath functions and use
  them.
  The way they are to be used is left to pgmath.h.inc user that
  must define PGMATH_USE_XX macros that will be called for all pgmath
  functions in pgmath.h.inc.
- In intrinsic-library.cpp define PGMATH_USE_XX macro callbacks in
  order to capture function pointers to pgmath functions as well as
  a description of their type. This will be used for constant folding
  using pgmath.
- Change atan/atan2 handling to use atan2 instead of atan when there are two
arguments  because it is easier to handle in the runtime description.

Also fixes lipgmath linking regression after D78215 cmake changes.

This change is motivated by the need to use a similar pgmath
description in lowering. The difference is that no function pointers will
be taken there, and instead only the function name and type are needed.

Reviewed By: schweitz, sscalpone

Differential Revision: https://reviews.llvm.org/D83051
The file was modifiedflang/lib/Evaluate/CMakeLists.txt
The file was modifiedflang/lib/Evaluate/fold-real.cpp
The file was modifiedflang/lib/Evaluate/intrinsics-library.cpp
The file was addedflang/runtime/pgmath.h.inc
Commit 063258eb6e32d7c185023b81f10b34f9bddbd8b3 by gchatelet
[Alignment][NFC] Use 5 bits to store Instructions Alignment

As per [MaxAlignmentExponent]{https://github.com/llvm/llvm-project/blob/b7338fb1a6a464472850211165391983d2c8fdf3/llvm/include/llvm/IR/Value.h#L688} alignment is not allowed to be more than 2^29.
Encoded as Log2, this means that storing alignment uses 5 bits.
This patch makes sure all instructions store their alignment in a consistent way, encoded as Log2 and using 5 bits.

Differential Revision: https://reviews.llvm.org/D83119
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/include/llvm/IR/Instruction.h
Commit 64156347baa4452489ec1c0fab8eec48d1ffd168 by grimar
[llvm-readelf] - Do not error out when dumping symbols.

When the --symbols option/--dyn-symbols is given we might report an
error and exit when something goes not right. E.g. when the SHT_SYMTAB
section is broken. Though we could report a warning and try to continue
dumping instead in many cases.

This patch removes `unwrapOrErr` calls from the code involved in the
flow described.

Differential revision: https://reviews.llvm.org/D82955
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbols.test
The file was modifiedllvm/test/Object/invalid.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
Commit 769af95e657dd7831e88a37fbb60f5cd2b24abdd by grimar
[llvm-readelf] - Do not report a misleading warning when there is no string table.

This is a follow-up for D82955, which allows to continue dumping when a symbol table is broken.
When we are unable to get the string table and trying to print symbols,
the existent tool logic together with D82955 reports an error:

"st_name (0x??) is past the end of the string table of size 0x??"

Though, when there is no string table, this message becomes misleading and excessive.
It is easy to fix it though and that is what this patch does.

Differential revision: https://reviews.llvm.org/D83042
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbols.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 76673c65e706bab79a13cae1288c6b906b08fa3b by llvm-dev
Regenerate PR19420 tests
The file was modifiedllvm/test/Transforms/InstCombine/pr19420.ll
Commit 3da42f48101f67662a2aef2784535e9482cdb4f5 by llvm-dev
[InstCombine] Add sext(ashr(shl(trunc(x),c),c)) folding support for vectors

Replacing m_ConstantInt with m_Constant permits folding of vectors as well as scalars.

Differential Revision: https://reviews.llvm.org/D83058
The file was modifiedllvm/test/Transforms/InstCombine/sext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit 5c46fefdba3b18329dc331e69d1d1d6550c4075f by kadircet
[clangd] Improve hover on arguments to function call

Summary:
In cases like:
  foo(a, ^b);
We now additionally show the name and type of the parameter to foo that
corresponds that "b" is passed as.

The name should help with understanding what it's used for and type can
be useful to find out if call to foo() can mutate variable "b" or not
(i.e. if it is pass by value, reference, const reference, etc).

Patch By: adamcz@ !

Reviewers: kadircet

Reviewed By: kadircet

Subscribers: nridge, ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81169
The file was modifiedclang-tools-extra/clangd/Hover.h
The file was modifiedclang-tools-extra/clangd/unittests/HoverTests.cpp
The file was modifiedclang-tools-extra/clangd/Hover.cpp
Commit f181c66c0306cc61a70d58c4c72d385f369088c7 by llvm-dev
Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning.
The file was modifiedllvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
Commit b6f08b7cfd05f6a58b4e30d90bc0e630ff6a7aa5 by Xing
[DWARFYAML][debug_gnu_*] Add the missing context `IsGNUStyle`. NFC.

This patch helps add the missing context `IsGNUStyle`. Before this patch, yaml2obj cannot parse the YAML description of 'debug_gnu_pubnames' and 'debug_gnu_pubtypes' correctly due to the missing context.

In other words, if we have

```
DWARF:
  debug_gnu_pubtypes:
    Length:
      TotalLength: 0x1234
    Version:    2
    UnitOffset: 0x1234
    UnitSize:   0x4321
    Entries:
      - DieOffset:  0x12345678
        Name:       abc
        Descriptor: 0x00      ## Descriptor can never be mapped into Entry.Descriptor
```

yaml2obj will complain that "error: unknown key 'Descriptor'".

This patch helps resolve this problem.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D82435
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFEmitter.h
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h
The file was modifiedllvm/unittests/ObjectYAML/DWARFYAMLTest.cpp
Commit 3faec833760fa7ab6e3180378da8c8fb4abbdb11 by Raphael Isemann
[lldb] Fix missing characters when autocompleting LLDB commands in REPL

Summary:

When tabbing to complete LLDB commands in REPL, characters would at best be
missing but at worst cause the REPL to crash due to out of range string access.
This patch appends the command character to the completion results to fulfill
the assumption that all matches are prefixed by the request's cursor argument
prefix.

Bug report for the Swift REPL
https://bugs.swift.org/browse/SR-12867

Reviewers: teemperor

Reviewed By: teemperor

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D82835
The file was modifiedlldb/source/Expression/REPL.cpp
Commit 029046dc32de08dfe4ffc83dca3557508ef622c0 by llvm-dev
Regenerate mul-trunc tests, add vector variants and replace %tmp variable names to silence update_test_checks warnings
The file was modifiedllvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll
Commit b3a2882dbc4a6aeff233b9fb4c0fc05008866865 by llvm-dev
Add nonuniform vector trunc(or(shl(zext(x),c1),srl(zext(x),c2))) tests
The file was modifiedllvm/test/Transforms/InstCombine/cast.ll
Commit 80d4f33479090c502e1bcf201bac9db83fee14a3 by llvm-dev
Regenerate apint-cast tests and replace %tmp variable names to silence update_test_checks warnings
The file was modifiedllvm/test/Transforms/InstCombine/apint-cast.ll
Commit 9e09a54c692b4c5981046ed7d0a700ffdb9e1e27 by james.henderson
[DebugInfo] Use Cursor to detect errors in debug line prologue parser

Previously, the debug line parser would keep attempting to read data
even if it had run out of data to read. This meant errors in parsing
would often end up being reported as something else, such as an unknown
version or malformed directory/filename table. This patch fixes the
issues by using the Cursor API to capture errors.

Reviewed by: labath

Differential Revision: https://reviews.llvm.org/D83043
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
Commit 8aff6891646abf9462d4454728da6c47b47e4edc by dave
[libcxx testing] Remove ALLOW_RETRIES from another test
The file was modifiedlibcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp
Commit 79889691430d8e76e908706170102a8b46432a07 by gribozavr
Added tests for RecursiveASTVisitor for AST nodes that are special cased

Summary:
RecursiveASTVisitor has special code for handling operator AST nodes,
specifically, unary, binary, and compound assignment operators. In this
change I'm adding tests for operator AST nodes that follow the existing
pattern of tests for the CallExpr node (an AST node that triggers the
common code path).

Reviewers: ymandel, eduucaldas

Reviewed By: ymandel, eduucaldas

Subscribers: gribozavr2, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82875
The file was modifiedclang/unittests/Tooling/RecursiveASTVisitorTests/Callbacks.cpp
Commit 94454442c3c15a67ae70ef3a73616632968973fc by gribozavr
RecursiveASTVisitor: don't call WalkUp unnecessarily in post-order traversal

Summary:
How does RecursiveASTVisitor call the WalkUp callback for expressions?

* In pre-order traversal mode, RecursiveASTVisitor calls the WalkUp
  callback from the default implementation of Traverse callbacks.

* In post-order traversal mode when we don't have a DataRecursionQueue,
  RecursiveASTVisitor also calls the WalkUp callback from the default
  implementation of Traverse callbacks.

* However, in post-order traversal mode when we have a DataRecursionQueue,
  RecursiveASTVisitor calls the WalkUp callback from PostVisitStmt.

As a result, when the user overrides the Traverse callback, in pre-order
traversal mode they never get the corresponding WalkUp callback. However
in the post-order traversal mode the WalkUp callback is invoked or not
depending on whether the data recursion optimization could be applied.

I had to adjust the implementation of TraverseCXXForRangeStmt in the
syntax tree builder to call the WalkUp method directly, as it was
relying on this behavior. There is an existing test for this
functionality and it prompted me to make this extra fix.

In addition, I had to fix the default implementation implementation of
RecursiveASTVisitor::TraverseSynOrSemInitListExpr to call WalkUpFrom in
the same manner as the implementation generated by the DEF_TRAVERSE_STMT
macro. Without this fix, the InitListExprIsPostOrderNoQueueVisitedTwice
test was failing because WalkUpFromInitListExpr was never called.

Reviewers: eduucaldas, ymandel

Reviewed By: eduucaldas, ymandel

Subscribers: gribozavr2, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82486
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/unittests/Tooling/RecursiveASTVisitorTests/Callbacks.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 7b0be962d681c408c8ecf7180c6ad8f9fbcdaf2d by gribozavr
Make RecursiveASTVisitor call WalkUpFrom for unary and binary operators in post-order traversal mode

Reviewers: ymandel, eduucaldas, rsmith

Reviewed By: eduucaldas, rsmith

Subscribers: gribozavr2, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82787
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/unittests/Tooling/RecursiveASTVisitorTests/Callbacks.cpp
Commit 8bf4c40af813e73de77739b33b8808f6bd13497b by gribozavr
Make RecursiveASTVisitor call WalkUpFrom for operators when the data recursion queue is absent

Reviewers: eduucaldas, ymandel, rsmith

Reviewed By: eduucaldas

Subscribers: gribozavr2, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82889
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/unittests/Tooling/RecursiveASTVisitorTests/Callbacks.cpp
Commit 19eaff650c9c091e844f0a342540f1d10573772c by gribozavr
Revert RecursiveASTVisitor fixes.

This reverts commit 8bf4c40af813e73de77739b33b8808f6bd13497b.
This reverts commit 7b0be962d681c408c8ecf7180c6ad8f9fbcdaf2d.
This reverts commit 94454442c3c15a67ae70ef3a73616632968973fc.

Some compilers on some buildbots didn't accept the specialization of
is_same_method_impl in a non-namespace scope.
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/unittests/Tooling/RecursiveASTVisitorTests/Callbacks.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 8bf99f1e6f0f9b426d6060361ea6d9d47c1868d1 by luke.geeson
[ARM] Add Cortex-A77 Support for Clang and LLVM

This patch upstreams support for the Arm-v8 Cortex-A77
processor for AArch64 and ARM.

In detail:
- Adding cortex-a77 as a cpu option for aarch64 and arm targets in clang
- Cortex-A77 CPU name and ProcessorModel in llvm

details of the CPU can be found here:
https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a77

and a similar submission to GCC can be found here:
https://github.com/gcc-mirror/gcc/commit/e0664b7a63ed8305e9f8539309df7fb3eb13babe

The following people contributed to this patch:
- Luke Geeson
- Mikhail Maltsev

Reviewers: t.p.northover, dmgreen, ostannard, SjoerdMeijer

Reviewed By: dmgreen

Subscribers: dmgreen, kristof.beyls, hiraditya, danielkiss, cfe-commits,
llvm-commits, miyuki

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D82887
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h
The file was modifiedllvm/test/MC/ARM/armv8.2a-dotprod-t32.s
The file was modifiedllvm/include/llvm/Support/AArch64TargetParser.def
The file was modifiedllvm/test/CodeGen/AArch64/cpus.ll
The file was modifiedclang/test/Driver/aarch64-cpus.c
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.def
The file was modifiedllvm/test/MC/ARM/armv8.2a-dotprod-a32.s
The file was modifiedllvm/unittests/Support/TargetParserTest.cpp
The file was modifiedllvm/test/MC/AArch64/armv8.2a-dotprod.s
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.cpp
The file was modifiedllvm/test/MC/Disassembler/AArch64/armv8.3a-rcpc.txt
The file was modifiedllvm/lib/Support/Host.cpp
The file was modifiedllvm/lib/Target/ARM/ARM.td
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.cpp
The file was modifiedllvm/test/CodeGen/AArch64/remat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
The file was modifiedclang/test/Driver/arm-cortex-cpus.c
Commit bb69ca822aae38e12546757f48670cbf689bc227 by vpykhtin
[AMDGPU] Don't combine DPP if DPP register is used more than once per instruction

Reviewers: arsenm, rampitec, foad

Reviewed By: rampitec, foad

Subscribers: wuzish, kzhuravl, nemanjai, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kbarton, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82551
The file was modifiedllvm/test/CodeGen/AMDGPU/dpp_combine.mir
The file was modifiedllvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
Commit f42f599d3724cd4a2f470a53551604f722965de6 by Ben.Dunbobbin
[LLD][ELF][Windows] Allow LLD to overwrite existing output files that are in use

On Windows co-operative programs can be expected to open LLD's
output in FILE_SHARE_DELETE mode. This allows us to delete the
file (by moving it to a temporary filename and then deleting
it) so that we can link another output file that overwrites
the existing file, even if the current file is in use.

A similar strategy is documented here:
https://boostgsoc13.github.io/boost.afio/doc/html/afio/FAQ/deleting_open_files.html

Differential Revision: https://reviews.llvm.org/D82567
The file was modifiedlld/Common/Filesystem.cpp
The file was addedlld/test/ELF/link-open-file.test
Commit b18405fbc02ec4af5d485c181fa703dc7df76f63 by llvm-dev
Add vector trunc(or(shl(zext(x),c1),zext(x))) tests
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit 1ab88de0ed96f0666395c0da61a921c2fb7d7796 by llvm-dev
Add tests for trunc(shl/lshr/ashr(*ext(x),zext(and(y,c)))) patterns with variable shifts with clamped shift amounts
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit 473fbc90d1fbf17e16594dfb17248c4f50b4d399 by riccibrun
[clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper

In general there is no way to get to the ASTContext from most AST nodes
(Decls are one of the exception). This will be a problem when implementing
the rest of APValue::dump since we need the ASTContext to dump some kinds of
APValues.

The ASTContext* in ASTDumper and TextNodeDumper is not always non-null.
This is because we still want to be able to use the various dump() functions
in a debugger.

No functional changes intended.

Reverted in fcf4d5e4499a391dff42ea1a096f146db44147b6 since a few dump()
functions in lldb where missed.
The file was modifiedclang/lib/AST/ASTDumper.cpp
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/unittests/AST/MatchVerifier.h
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DumpAST.cpp
The file was modifiedclang-tools-extra/clang-query/Query.cpp
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/lib/CodeGen/CGExprComplex.cpp
The file was modifiedclang/include/clang/AST/ASTTypeTraits.h
The file was modifiedclang/include/clang/AST/Comment.h
The file was modifiedclang/lib/Frontend/ASTConsumers.cpp
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
The file was modifiedclang/include/clang/AST/ASTDumper.h
The file was modifiedclang/lib/AST/ASTTypeTraits.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp
The file was modifiedclang/unittests/AST/CommentParser.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
Commit 54eb42537e8c566fa15046bc0302bf5390d26f08 by riccibrun
[clang][NFC] Also test for serialization in test/AST/ast-dump-comment.cpp
The file was modifiedclang/test/AST/ast-dump-comment.cpp
Commit c10295e1bdbf892946bf1db6c3c8feb1219c4070 by riccibrun
[clang][NFC] Add a missing /dev/null in test/AST/ast-dump-lambda.cpp
The file was modifiedclang/test/AST/ast-dump-lambda.cpp
Commit 38909f31bd085d255e4b20e6da1d74b147e5f76a by danila
[IR] Short-circuit comparison with itself for Attributes

Differential Revision: https://reviews.llvm.org/D82295
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/unittests/IR/AttributesTest.cpp
Commit f671adf82326da41e48714ebdc362bc4323b6320 by grimar
[llvm-readobj] - Use cantFail() for all `Obj->sections()` calls. NFCI.

`ELFDumper<ELFT>::ELFDumper` calls `Obj->sections()` in its constructor:
https://github.com/llvm/llvm-project/blob/master/llvm/tools/llvm-readobj/ELFDumper.cpp#L2046

this means that all subsequent calls can't fail and can be
wrapped into `cantFail` in instead of `unwrapOrError` for simplicity.

Actually we already do it in a few places. In this patch I've fixed all
other places I've found.

Differential revision: https://reviews.llvm.org/D83126
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 18850981c827eb0e1d5ccdb247e601768033dadf by sam.parker
[NFC][SimplifyCFG] Move X86 tests into subdir
The file was addedllvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
The file was removedllvm/test/Transforms/SimplifyCFG/PR29163.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll
The file was removedllvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll
The file was removedllvm/test/Transforms/SimplifyCFG/remove-debug-2.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
The file was removedllvm/test/Transforms/SimplifyCFG/PR30210.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll
The file was removedllvm/test/Transforms/SimplifyCFG/invalidate-dom.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll
The file was removedllvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll
The file was removedllvm/test/Transforms/SimplifyCFG/critedge-assume.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll
The file was removedllvm/test/Transforms/SimplifyCFG/safe-low-bit-extract.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll
The file was removedllvm/test/Transforms/SimplifyCFG/CoveredLookupTable.ll
The file was removedllvm/test/Transforms/SimplifyCFG/remove-debug.ll
The file was removedllvm/test/Transforms/SimplifyCFG/2010-03-30-InvokeCrash.ll
The file was removedllvm/test/Transforms/SimplifyCFG/fold-branch-debuginvariant.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/fold-branch-debuginvariant.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll
The file was removedllvm/test/Transforms/SimplifyCFG/unreachable-blocks.ll
The file was removedllvm/test/Transforms/SimplifyCFG/combine-parallel-mem-md.ll
The file was removedllvm/test/Transforms/SimplifyCFG/merge-cleanuppads.ll
The file was removedllvm/test/Transforms/SimplifyCFG/bug-25299.ll
The file was addedllvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll
The file was removedllvm/test/Transforms/SimplifyCFG/MagicPointer.ll
Commit 0f03b2bfda977a913036180584f636ecb4c8ef2a by ehsan.nadjaran_toosi
[mlir] Add redundant copy removal transform

This pass removes redundant dialect-independent Copy operations in different
situations like the following:

%from = ...
%to = ...
... (no user/alias for %to)
copy(%from, %to)
... (no user/alias for %from)
dealloc %from
use(%to)

Differential Revision: https://reviews.llvm.org/D82757
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/include/mlir/Transforms/Passes.h
The file was addedmlir/include/mlir/Interfaces/CopyOpInterface.td
The file was addedmlir/lib/Interfaces/CopyOpInterface.cpp
The file was modifiedmlir/include/mlir/Transforms/Passes.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
The file was modifiedmlir/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was addedmlir/include/mlir/Interfaces/CopyOpInterface.h
The file was addedmlir/lib/Transforms/CopyRemoval.cpp
The file was addedmlir/test/Transforms/copy-removal.mlir
Commit 6f779f35f572e17994bd334681131d9066b65f21 by Xing
[DWARFYAML][unittest] Use parseDWARFYAML() in unit test. NFC.
The file was modifiedllvm/unittests/ObjectYAML/DWARFYAMLTest.cpp
Commit 228ea815832a863bfd4da0f0fd67675e0a02cb88 by pavel
[lldb/Utility] Simplify more Scalar methods

A lot of the methods handle all integral and all floating point types
the same way. They can be changed to switch on the category of the type,
instead of the actual type, saving a lot of boilerplate.

This patch does that for the methods where I could be reasonably certain
of their expected semantics.
The file was modifiedlldb/source/Utility/Scalar.cpp
Commit b954cb408f090251d946f1e087e29541dd1e7ee5 by Xing
[ObjectYAML][ELF] Add support for emitting the .debug_gnu_pubnames/pubtypes sections.

This patch helps add support for emitting the .debug_gnu_pubnames and .debug_gnu_pubtypes sections.

The .debug_gnu_pub* sections is verified by llvm-dwarfdump.

Known issues:
- Doesn't support emitting multiple pub-tables.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D82367
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was addedllvm/test/tools/yaml2obj/ELF/DWARF/debug-gnu-pubtypes.yaml
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was addedllvm/test/tools/yaml2obj/ELF/DWARF/debug-gnu-pubnames.yaml
Commit 91c320e9d852120f011028e15ff0e25cdf762aad by julian.gross
[mlir] Add check for ViewLikeOpInterface that creates additional aliases.

ViewLikeOpInterfaces introduce new aliases that need to be added to the alias
list. This is necessary to place deallocs in the right positions.

Differential Revision: https://reviews.llvm.org/D83044
The file was modifiedmlir/test/Transforms/buffer-placement.mlir
The file was modifiedmlir/lib/Transforms/BufferPlacement.cpp
Commit b3b952873f3705e6877644013461be7923c6caad by pavel
[lldb/DWARF] Look for complete member definitions in other modules

With -flimit-debug-info, we can have a definition of a class, but no
definition for some of its members. This extends the same logic we were
using for incomplete base classes to cover incomplete members too.

Test forward-declarations.s is removed as it is no longer applicable --
we don't warn anymore when encountering incomplete members as they could
be completed elsewhere. New checks added to TestLimitDebugInfo cover the
handling of incomplete members more thoroughly.
The file was modifiedlldb/test/API/functionalities/limit-debug-info/onetwo.h
The file was modifiedlldb/test/API/functionalities/limit-debug-info/one.cpp
The file was modifiedlldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/test/API/functionalities/limit-debug-info/main.cpp
The file was modifiedlldb/test/API/functionalities/limit-debug-info/two.cpp
The file was removedlldb/test/Shell/SymbolFile/DWARF/forward-declarations.s
Commit af80a4353e1462cefaa37d56eb76c8695a832ee2 by petre-ionut.tudor
[ARM] Generate [SU]RHADD from (b - (~a)) >> 1

Summary:
Teach LLVM to recognize the above pattern, which is usually a
transformation of (a + b + 1) >> 1, where the operands are either
signed or unsigned types.

Subscribers: kristof.beyls, hiraditya, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82669
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vhadd.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
Commit 53422e8b4f65a6736896311b10ad8a22fbc9e372 by dmitry.preobrazhensky
[AMDGPU] Added support of new inline assembler constraints

Added support for constraints 'I', 'J', 'L', 'B', 'C', 'Kf', 'DA', 'DB'.

See https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints.

Reviewers: arsenm, rampitec

Differential Revision: https://reviews.llvm.org/D81657
The file was modifiedclang/lib/Basic/Targets/AMDGPU.h
The file was modifiedclang/test/Sema/inline-asm-validate-amdgpu.cl
The file was modifiedclang/test/CodeGenOpenCL/inline-asm-amdgcn.cl
Commit eb0e7acbd4853c31a1401c8f02586850fee15107 by llvm-dev
[InstCombine] canEvaluateTruncated - use KnownBits to check for inrange shift amounts

Currently canEvaluateTruncated can only attempt to truncate shifts if they are scalar/uniform constant amounts that are in range.

This patch replaces the constant extraction code with KnownBits handling, using the KnownBits::getMaxValue to check that the amounts are inrange.

This enables support for nonuniform constant cases, and also variable shift amounts that have been masked somehow. Annoyingly, this still won't work for vectors with (demanded) undefs as KnownBits returns nothing in those cases, but its a definite improvement on what we currently have.

Differential Revision: https://reviews.llvm.org/D83127
The file was modifiedllvm/test/Transforms/InstCombine/cast.ll
The file was modifiedllvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit ef875c228ae7484f7bc42511c9fb1e643fa7550d by andrzej.warzynski
[clang][NFC] Removed unused parameters in InitializeSourceManager
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h
Commit 98d576c78f88b6d7191335c9774313c191ef7539 by pklausler
[flang] Improve API for runtime allocator (I/O runtime work part 3)

New<A> used to return an A&; now it returns an OwningPtr<A>
to force better ownership tracking of allocations.  Its API
has also been split into New<A> and SizedNew<A> to allow
allocations with a size override.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D83108
The file was modifiedflang/runtime/memory.h
The file was modifiedflang/runtime/io-api.cpp
The file was modifiedflang/runtime/unit-map.cpp
The file was modifiedflang/runtime/file.cpp
The file was modifiedflang/runtime/unit.cpp
Commit 3b4a0adec2720675571585a0a0dc366fe8e75853 by Xing
[DWARFYAML][test] Use --ignore-case to suppress errors.

This patch is to fix build bot failure (http://lab.llvm.org:8011/builders/llvm-clang-win-x-aarch64/builds/553).
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-gnu-pubtypes.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-gnu-pubnames.yaml
Commit 0cd0ae1f29ddaeaed8a9ada513d98f352bc97b46 by spatel
[InstCombine] add tests to show missing one-use checks; NFC
The file was modifiedllvm/test/Transforms/InstCombine/select-bitext.ll
Commit 63774642af1efb127c6e3eafdd44eadc54647141 by spatel
[InstCombine] add one-use check to cast+select narrowing transform

Prevent increasing the instruction count.
The file was modifiedllvm/test/Transforms/InstCombine/select-ctlz-to-cttz.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-bitext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit 484a36b97ddfa3be2daec0241ac08bddefbc8a51 by sd.fertile
Enable basepointer for AIX.

Differential Revision: https://reviews.llvm.org/D82030
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/aix-base-pointer.ll
Commit 7a1161767b137e8ac6b9658a393efc723d53a6d8 by flo
[InstCombine] Precommit tests for PR43580.
The file was modifiedllvm/test/Transforms/InstCombine/trunc-binop-ext.ll
Commit 039145c72b81ba525b3b58a27f6b2d6193198266 by flo
[SLP] Precommit test for which spill cost is computed incorrectly.

Test for D82444.
The file was addedllvm/test/Transforms/SLPVectorizer/AArch64/spillcost-order.ll
Commit 9e03547cab691521ea3be9dab0b543156ce44c04 by david.green
[ARM][HWLoops] Create hardware loops for sibling loops

Given a loop with two subloops, it should be possible for both to be
converted to hardware loops. That's what this patch does, simply enough.
It slightly alters the loop iterating order to try and convert all
subloops. If one (or more) succeeds, it stops as before.

Differential Revision: https://reviews.llvm.org/D78502
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float16regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/sibling-loops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
The file was modifiedllvm/lib/CodeGen/HardwareLoops.cpp
Commit eb46137daa92723b75d828f2db959f2061612622 by flo
[SLP] Make sure instructions are ordered when computing spill cost.

The entries in VectorizableTree are not necessarily ordered by their
position in basic blocks. Collect them and order them by dominance so
later instructions are guaranteed to be visited first. For instructions
in different basic blocks, we only scan to the beginning of the block,
so their order does not matter, as long as all instructions in a basic
block are grouped together. Using dominance ensures a deterministic order.

The modified test case contains an example where we compute a wrong
spill cost (2) without this patch, even though there is no call between
any instruction in the bundle.

This seems to have limited practical impact, .e.g on X86 with a recent
Intel Xeon CPU with -O3 -march=native -flto on MultiSource,SPEC2000,SPEC2006
there are no binary changes.

Reviewers: craig.topper, RKSimon, xbolva00, ABataev, spatel

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D82444
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/spillcost-order.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 6fa1343bb3e8a59116cdafc4186c85d6c6ce12df by maskray
[ELF] Resolve R_DTPREL in .debug_* referencing discarded symbols to -1

The location of a TLS variable is encoded as a DW_OP_const4u/DW_OP_const8u
followed by a DW_OP_push_tls_address (or DW_OP_GNU_push_tls_address https://sourceware.org/bugzilla/show_bug.cgi?id=11616 ).

This change follows up to D81784 and makes relocations types generalized as
R_DTPREL (e.g. R_X86_64_DTPOFF{32,64}, R_PPC64_DTPREL64) use -1 as the
tombstone value as well. This works for both TLS Variant I and Variant II
architectures.

* arm: .long tls(tlsldo)   # not working currently (R_ARM_TLS_LDO32 is R_ABS)
* mips64: .dtpreldword tls+32768
* ppc64: .quad tls@DTPREL+0x8000
* riscv: neither GCC nor clang has implemented DW_AT_location. It is likely .long/.quad tls@dtprel+0x800
* x86-32: .long tls@DTPOFF
* x86-64: .long tls@DTPOFF; .quad tls@DTPOFF

tls has a non-negative st_value, so such relocations (st_value+addend)
never resolve to -1 in a normal (not discarded) case.

```
// clang -fuse-ld=lld -g -ffunction-sections a.c -Wl,--gc-sections
// foo and tls will be discarded by --gc-sections.
// DW_AT_location [DW_FORM_exprloc] (DW_OP_const8u 0xffffffffffffffff, DW_OP_GNU_push_tls_address)
thread_local int tls;
int foo() { return ++tls; }
int main() {}
```

Also, drop logic added in D26201 intended to address PR30793. It added a test
(gc-debuginfo-tls.s) using a non-SHF_ALLOC section and a local symbol, which
does not reflect the intended scenario: a relocation in a SHF_ALLOC section
referencing a discarded non-local symbol. For such a non .debug_* section, just
emit an error.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D82899
The file was addedlld/test/ELF/debug-dead-reloc-tls.s
The file was addedlld/test/ELF/gc-sections-tls.s
The file was addedlld/test/ELF/debug-dead-reloc-tls-arm.s
The file was modifiedlld/ELF/InputSection.cpp
The file was removedlld/test/ELF/gc-debuginfo-tls.s
Commit cf1d9f9f49ae62ab4c7bb685d786a8daa7bc1d4a by nikita.ppv
[InstSimplify] Fold icmp with dominating assume

If we assume(x > y), then we should be able to fold the basic
implications of that, like x >= y. This already happens if either
one of the operands is constant (LVI) or if the conditions are
exactly the same (GVN), but not if we have an implication with
non-constant operands. Support this by querying AssumptionCache.

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

Differential Revision: https://reviews.llvm.org/D82717
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/assume_icmp.ll
Commit 4dd784000ebc1ff4422e7a55f732b511b815e3cf by lebedev.ri
[NFC][InstCombine] Add some more tests for select based on non-canonical bit-test
The file was addedllvm/test/Transforms/InstCombine/canonicalize-selects-icmp-condition-bittest.ll
Commit 5d60377864f00983e44ac6adda94bcf60f441973 by spatel
[InstCombine] add tests for mul of bools; NFC
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 40fcc42498d8877d2d2a8548f3ac5c052b2723c2 by spatel
[InstCombine] fold mul of zext bools to 'and'

The base case only works because we are relying on a
poison-unsafe select transform; if that is fixed, we
would regress on patterns like this.

The extra use tests show that the select transform can't
be applied consistently. So it may be a regression to have
an extra instruction on 1 test, but that result was not
created safely and does not happen reliably.
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit fc81f48fdeebd9e7c23900a410a39d3ced26019d by maskray
[llvm-ar][test] Unsupport error-opening-directory.test on FreeBSD

Differential Revision: https://reviews.llvm.org/D82786
The file was modifiedllvm/test/tools/llvm-ar/error-opening-directory.test
Commit 572dde55eebbe54eb90398c16c71d4376ca754e3 by jasonliu
[XCOFF][AIX] Use 'L..' instead of '.L' for getPrivateGlobalPrefix in DataLayout

Summary:
D80831 changed part of the prefix usage for AIX.
But there are other places getting prefix from DataLayout.
This patch intends to make prefix usage consistent on AIX.

Reviewed by: hubert.reinterpretcast, daltenty

Differential Revision: https://reviews.llvm.org/D81270
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-jump-table.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-mergeable-const.ll
The file was modifiedllvm/unittests/IR/ManglerTest.cpp
The file was modifiedclang/lib/Basic/Targets/PPC.h
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/IR/DataLayout.h
The file was modifiedllvm/lib/IR/DataLayout.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-constant-pool-index.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-mergeable-str.ll
Commit 35808ab8e18cea0a668ea91786a3d916618e986e by eschweitz
[flang] Add FIRBuilder.cpp

The FIR builder is a helper class that manages the creation of MLIR
operations from the bridge. The focus of the builder is the creation of
Operations, Types, etc.

Differential revision: htps://reviews.llvm.org/D83107
The file was addedflang/lib/Lower/FIRBuilder.cpp
The file was modifiedflang/lib/Lower/CMakeLists.txt
Commit 71d88cebfb42c8c5ac2d54b42afdcca956e55660 by Louis Dionne
[libc++/libc++abi] Automatically detect whether exceptions are enabled

Instead of detecting it automatically (in libc++) and relying on
_LIBCXXABI_NO_EXCEPTIONS being set explicitly (in libc++abi), always
detect whether exceptions are enabled automatically.

This commit also removes support for specifying -D_LIBCPP_NO_EXCEPTIONS
and -D_LIBCXXABI_NO_EXCEPTIONS explicitly -- those should just be inferred
from using -fno-exceptions (or an equivalent flag).

Allowing both -D_FOO_NO_EXCEPTIONS to be provided explicitly and trying
to detect it automatically is just confusing, especially since we did
specify it explicitly when building libc++abi. We should have only one
way to detect whether exceptions are enabled, but it should be robust.
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/libcxx/src/BUILD.gn
The file was modifiedlibcxxabi/CMakeLists.txt
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/test/libcxx/strings/iterators.noexcept.pass.cpp
The file was modifiedlibcxxabi/include/__cxxabi_config.h
Commit 31971ca1c6f42aa9a5e162d63528b9709448f8d9 by flo
[InstCombine] Try to narrow expr if trunc cannot be removed.

Narrowing an input expression of a truncate to a type larger than the
result of the truncate won't allow removing the truncate, but it may
enable further optimizations, e.g. allowing for larger vectorization
factors.

For now this is intentionally limited to integer types only, to avoid
producing new vector ops that might not be suitable for the target.

If we know that the only user is a trunc, we can also be allow more
cases, e.g. also shortening expressions with some additional shifts.

I would appreciate feedback on the best place to do such a narrowing.

This fixes PR43580.

Reviewers: spatel, RKSimon, lebedev.ri, xbolva00

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D82973
The file was modifiedllvm/test/Transforms/InstCombine/trunc-binop-ext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit c7cabf9d608b9aad82e9cb684fbbe9f7a76bf4e0 by pklausler
[flang] Define new runtime error IOSTAT values (I/O runtime work part 4)

Add more IOSTAT= values for errors that can arise in external I/O.

Reviewed By: sscalpone

Differential Revision: https://reviews.llvm.org/D83140
The file was modifiedflang/runtime/iostat.cpp
The file was modifiedflang/runtime/iostat.h
Commit 7926969afc63820b123de9d6895c3913befaae1b by pklausler
[flang] Track known file size, add IsATerminal (ext. I/O work part 5)

Add a data member knownSize_ and an accessor to allow the size of
an external file to be tracked when known.  Also add a wrapper for
::isatty() here in the filesystem encapsulation module.  These
features are needed for the external I/O rework changes still
to come.

Reviewed By: sscalpone

Differential Revision: https://reviews.llvm.org/D83141
The file was modifiedflang/runtime/file.cpp
The file was modifiedflang/runtime/file.h
Commit 551092bc3dfb86f1e11a55f3bee0c8ee1be6fdd6 by steveire
Revert AST Matchers default to AsIs mode

Reviewers: aaron.ballman, klimek

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83076
The file was modifiedclang/include/clang/AST/ParentMapContext.h
The file was modifiedclang-tools-extra/clang-query/Query.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
The file was modifiedclang-tools-extra/clang-query/QuerySession.h
Commit 0939e04e417634f6d38ec4f06835fb80756afdd3 by lei
[PowerPC] Implement Vector Insert Builtins in LLVM/Clang

Implements vec_insertl() and vec_inserth().

Differential Revision: https://reviews.llvm.org/D82365
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedllvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
Commit 50ba9f994c6f9c51692282494c3b40dbc69b4abd by kadircet
[clangd] Fix hover crash on invalid decls

Summary: This also changes the way we display Size and Offset to be independent.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83143
The file was modifiedclang-tools-extra/clangd/unittests/HoverTests.cpp
The file was modifiedclang-tools-extra/clangd/Hover.cpp
Commit 5cde3c9633fd071c90e9f9ce54a002e78fdd9df9 by vyng
[libcxx] Put clang::trivial_abi on std::unique_ptr, std::shared_ptr, and std::weak_ptr

Reviewers: jyknight, EricWF, #libc!

Subscribers: arphaman, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D82490
The file was modifiedlibcxx/include/memory
The file was modifiedlibcxx/docs/index.rst
The file was addedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_arg.pass.cpp
The file was addedlibcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst
The file was addedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_array.pass.cpp
The file was addedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp
The file was addedlibcxx/test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp
The file was modifiedlibcxx/include/__config
The file was addedlibcxx/test/libcxx/memory/trivial_abi/shared_ptr_arg.pass.cpp
The file was addedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_destruction_order.pass.cpp
Commit 5504d8b04a572dca9aec9eb21792958700f550c8 by spatel
[InstCombine] add more tests for mul of bools; NFC
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 7fd8af1de052e5bb0e07adba1d2c9e58d1a8f6a4 by spatel
[InstCombine] fold mul of sext bools to 'and'

Alive2:
  define i32 @src(i1 %x, i1 %y) {
  %0:
  %zx = sext i1 %x to i32
  %zy = sext i1 %y to i32
  %r = mul i32 %zx, %zy
  ret i32 %r
  }
  =>
  define i32 @tgt(i1 %x, i1 %y) {
  %0:
  %a = and i1 %x, %y
  %r = zext i1 %a to i32
  ret i32 %r
  }
  Transformation seems to be correct!

https://alive2.llvm.org/ce/z/gaPQxA
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 26543f1c0cee8aad30d9b901e7dcf7282f8a30e0 by spatel
[x86] improve codegen for bit-masked vector compare and select (PR46531)

We canonicalize patterns like:
  %s = lshr i32 %a0, 1
  %t = trunc i32 %s to i1

to:
  %a = and i32 %a0, 2
  %c = icmp ne i32 %a, 0

...in IR, but the bit-shifting original sequence may be better for x86 vector codegen.

I tried several variants of the transform, and it's tricky to not induce regressions.
In particular, I did not find a way to cleanly handle non-splat constants, so I've left
that as a TODO item here (currently negative tests for those are included). AVX512
resulted in some diffs, but didn't look meaningful, so I left that out too. Some of
the 256-bit AVX1 diffs are questionable, but close enough that they are probably
insignificant.

Differential Revision: https://reviews.llvm.org/D83073.
The file was modifiedllvm/test/CodeGen/X86/vselect-pcmp.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 341ab5114914012f917c2910fcc8ac4547db54b0 by lebedev.ri
[NFCI][InstCombine] shift.ll: s/%tmp/%i/ to silence update script warning
The file was modifiedllvm/test/Transforms/InstCombine/shift.ll
Commit 17a15c32aff0cac82e3f45eaaaff7084810abd5e by lebedev.ri
[NFCI][LoopUnroll] s/%tmp/%i/ in one test to silence update script warning
The file was modifiedllvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll
Commit e359ab1eca5727ce4c688bb49323b8a09478d61c by lei
[PowerPC][NFC] Fix indentation
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedclang/lib/Headers/altivec.h
Commit aa5ec34e312699a2fe5263133129a1e103ac91ee by francisvm
[LoopDeletion] Emit a remark when a dead loop is deleted

This emits a remark when LoopDeletion deletes a dead loop, using the
source location of the loop's header. There are currently two reasons
for removing the loop: invariant loop or loop that never executes.

Differential Revision: https://reviews.llvm.org/D83113
The file was modifiedllvm/test/Transforms/LoopDeletion/unreachable-loops.ll
The file was addedllvm/test/Transforms/LoopDeletion/basic-remark.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopDeletion.cpp
Commit fba8523fb55c8e3bc853df7a250845cf51e5fc99 by maskray
[gcov][test] Reorganize some compiler-rt/test/profile tests
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-execvp.c.gcov
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-lib.c.gcov
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-fork.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-execlp.c.gcov
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-fork.c.gcov
The file was removedcompiler-rt/test/profile/Posix/instrprof-gcov-fork.test
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c.gcov
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-main-gcov-flush.c
The file was removedcompiler-rt/test/profile/Posix/instrprof-gcov-execlp.test
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-execlp.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-gcov-execvp.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov
The file was modifiedcompiler-rt/test/profile/gcov-__gcov_flush-terminate.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov
The file was addedcompiler-rt/test/profile/Posix/gcov-execlp.c
The file was addedcompiler-rt/test/profile/Posix/gcov-shared-flush.c
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov
The file was removedcompiler-rt/test/profile/instrprof-gcov-__gcov_flush-multiple.test
The file was removedcompiler-rt/test/profile/Posix/instrprof-shared-gcov-flush.test
The file was removedcompiler-rt/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov
The file was addedcompiler-rt/test/profile/Posix/gcov-fork.c
The file was removedcompiler-rt/test/profile/Posix/instrprof-gcov-execvp.test
The file was addedcompiler-rt/test/profile/gcov-dump-and-remove.c
Commit 1c6e2eceeb1fe9faa9f7e95424e2a7f1b1d0fb9a by maskray
[gcov][test] Add `UNSUPPORTED: host-byteorder-big-endian` to gcov-fork.c

This test strangely failed on ppc64be
http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/50913
The file was modifiedcompiler-rt/test/profile/Posix/gcov-fork.c
Commit 8df30d988e9e595fa9883706198aec23b2e6d227 by tlively
[WebAssembly] Do not omit range checks for i64 switches

Summary:
Since the br_table instruction takes an i32, switches over i64s (and
larger integers) must use the i32.wrap_i64 instruction to truncate the
table index. This truncation makes numbers just over 2^32
indistinguishable from small numbers, so it was a miscompilation to
omit the range check preceding these br_tables. This change fixes the
problem by skipping the "fixing" of the br_table when the range check
is an i64 instruction.

Fixes PR46447.

Reviewers: aheejin, dschuff, kripken

Reviewed By: kripken

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83017
The file was modifiedllvm/test/CodeGen/WebAssembly/switch.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFixBrTableDefaults.cpp
Commit 0006354c3b832c73ab86f9220a2c250afa243afa by pklausler
[flang] Further implementation of external I/O unit operations (part 6)

Rework initial implementation of external I/O unit operations to
fix problems exposed in unit tests (in a later patch).  Add flushing.

Reviewed By: sscalpone

Differential Revision: https://reviews.llvm.org/D83147
The file was modifiedflang/runtime/unit.h
The file was modifiedflang/runtime/unit-map.h
The file was modifiedflang/runtime/unit.cpp
The file was modifiedflang/runtime/unit-map.cpp
Commit e75f2d5a8cd25615664de14ade85417bc12dd01a by craig.topper
[X86] Add matching support for X86ISD::ANDNP to X86DAGToDAGISel::tryVPTERNLOG.
The file was modifiedllvm/test/CodeGen/X86/avx512-logic.ll
The file was modifiedllvm/test/CodeGen/X86/avx512vl-logic.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit c352e0885a6b402e5d92cb82f0d0c4e933626b45 by lkail
[PowerPC] Implement probing for prologue

This patch is part of supporting `-fstack-clash-protection`. Implemented
probing when emitting prologue.

Differential Revision: https://reviews.llvm.org/D81460
The file was modifiedllvm/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was addedllvm/test/CodeGen/PowerPC/stack-clash-prologue.ll
Commit fed432523edfb29db0c4e28552695446d8cc4b1b by craig.topper
[X86] Directly emit VPTERNLOG from canonicalizeBitSelect when possible.

Seems to produce better results on some rotate tests. And is
neutral for other tests.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-256.ll
Commit 8bd000a65fe4452c09855115d5204a2a46838004 by sam.mccall
[clangd] Config: loading and caching config from disk.

Summary:
The Provider extension point is designed to also be implemented by
ClangdLSPServer (to inject config-over-lsp) and likely by embedders.

Reviewers: kadircet

Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, jfb, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82964
The file was modifiedclang-tools-extra/clangd/unittests/TestFS.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt
The file was modifiedclang-tools-extra/clangd/ConfigProvider.h
The file was addedclang-tools-extra/clangd/unittests/ConfigProviderTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TestFS.h
The file was addedclang-tools-extra/clangd/ConfigProvider.cpp
The file was modifiedclang-tools-extra/clangd/CMakeLists.txt
Commit 2ac9c459109734961040109c7c0f5d5d25ecc5aa by llvmgnsyncbot
[gn build] Port 8bd000a65fe
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
Commit 93ccb8eb52f7e7474afaa782fcc6c52bd8c1494b by nikita.ppv
[InstSimplify] Add additional zext/sext comparison tests (NFC)

Add vector variants, and negative tests where the operand does
not match.
The file was modifiedllvm/test/Transforms/InstSimplify/cmp_ext.ll
Commit 3b671022e4518166fc5a72e88786db037fb7708c by nikita.ppv
[InstSimplify] Simplify comparison between zext(x) and sext(x)

This is picking up a loose thread from D69006: We can simplify
(zext x) ule (sext x) and (zext x) sge (sext x) to true, with
various permutations. Oddly, SCEV knows about this identity,
but nothing on the IR level does.

Differential Revision: https://reviews.llvm.org/D83081
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/cmp_ext.ll
Commit 15a60fe09f4618a7fb451f37aebfd1a671f83713 by sam.mccall
[clangd] Config: compute config in TUScheduler and BackgroundIndex

Summary:
ClangdServer owns the question of exactly which config to create, but
TUScheduler/BackgroundIndex control threads and so decide at which point
to inject it.

Reviewers: kadircet

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83095
The file was modifiedclang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TUSchedulerTests.cpp
The file was modifiedclang-tools-extra/clangd/ClangdServer.h
The file was modifiedclang-tools-extra/clangd/index/Background.cpp
The file was modifiedclang-tools-extra/clangd/TUScheduler.h
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp
The file was modifiedclang-tools-extra/clangd/index/Background.h
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp
The file was modifiedclang-tools-extra/clangd/unittests/ClangdTests.cpp
Commit 7356b4243ad9dc373c63bb4b7ac0ba4f877c47ee by paul.walker
[SVE] Fix invalid assert in expand_DestructiveOp.

AArch64ExpandPseudo::expand_DestructiveOp contains an assert to
ensure the destructive operand's register is unique.  However,
this is only required when psuedo expansion emits a movprfx.

A simple example when a movprfx is not required is
  Z0 = FADD_ZPZZ_UNDEF_S P0, Z0, Z0
which expands to an unprefixed FADD_ZPmZ_S instruction.

This patch moves the assert to the places where a movprfx is emitted.

Differential Revision: https://reviews.llvm.org/D83029
The file was modifiedllvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
The file was addedllvm/test/CodeGen/AArch64/sve-pseudos-expand-undef.mir
Commit 6d6d5db251e88b0c40f7a6951b51b9e4a1812c8c by uday
[MLIR][Linalg] Generate the right type of load/store when lowering max/min pooling ops

While lowering min/max pooling ops to loops, generate the right kind of
load/stores (std or affine) instead of always generating std
load/stores.

Differential Revision: https://reviews.llvm.org/D83080
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/test/Dialect/Linalg/affine.mlir
Commit 4f2e7f6fb1f212a84d1647920963b66b21175a24 by sam.mccall
[clangd] Try to fix windows buildbot. NFC

http://45.33.8.238/win/19116/step_9.txt
The file was modifiedclang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
Commit b6cbe6cb0399d4671e5384dcc326af56bc6bd122 by dkszelethus
[analyzer][NFC] Move the data structures from CheckerRegistry to the Core library

If you were around the analyzer for a while now, you must've seen a lot of
patches that awkwardly puts code from one library to the other:

* D75360 moves the constructors of CheckerManager, which lies in the Core
  library, to the Frontend library. Most the patch itself was a struggle along
  the library lines.
* D78126 had to be reverted because dependency information would be utilized
  in the Core library, but the actual data lied in the frontend.
  D78126#inline-751477 touches on this issue as well.

This stems from the often mentioned problem: the Frontend library depends on
Core and Checkers, Checkers depends on Core. The checker registry functions
(`registerMallocChecker`, etc) lie in the Checkers library in order to keep each
checker its own module. What this implies is that checker registration cannot
take place in the Core, but the Core might still want to use the data that
results from it (which checker/package is enabled, dependencies, etc).

D54436 was the patch that initiated this. Back in the days when CheckerRegistry
was super dumb and buggy, it implemented a non-documented solution to this
problem by keeping the data in the Core, and leaving the logic in the Frontend.
At the time when the patch landed, the merger to the Frontend made sense,
because the data hadn't been utilized anywhere, and the whole workaround without
any documentation made little sense to me.

So, lets put the data back where it belongs, in the Core library. This patch
introduces `CheckerRegistryData`, and turns `CheckerRegistry` into a short lived
wrapper around this data that implements the logic of checker registration. The
data is tied to CheckerManager because it is required to parse it.

Side note: I can't help but cringe at the fact how ridiculously awkward the
library lines are. I feel like I'm thinking too much inside the box, but I guess
this is just the price of keeping the checkers so modularized.

Differential Revision: https://reviews.llvm.org/D82585
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalyzerHelpFlags.cpp
The file was modifiedclang/unittests/StaticAnalyzer/RegisterCustomCheckersTest.cpp
The file was addedclang/include/clang/StaticAnalyzer/Core/CheckerRegistryData.h
The file was modifiedclang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/CheckerManager.h
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was addedclang/lib/StaticAnalyzer/Core/CheckerRegistryData.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/CreateCheckerManager.cpp
Commit 07d4d84676a94741a226e254a1d536db99c7dac0 by llvmgnsyncbot
[gn build] Port b6cbe6cb039
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
Commit 71f342d6c3d82fa45c180f1981710bb6092d39fc by llvm-dev
[X86][AVX] Fold PACK(LOSUBVECTOR(SHUFFLE(X)),HISUBVECTOR(SHUFFLE(X))) -> SHUFFLE(PACK(LOSUBVECTOR(X),HISUBVECTOR(X)))

Using PACK for truncations leaves us with intermediate shuffles that can be tricky to remove while the truncation tree is being formed.

This fold helps pull out the PERMQ case which is one of the most common, avoiding some costly lane-crossing shuffles.

A future patch will begin adding more general shuffle folding, which we should be able to use for HADD/HSUB as well.
The file was modifiedllvm/test/CodeGen/X86/bitcast-setcc-512.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-usat.ll
The file was modifiedllvm/test/CodeGen/X86/vselect-packss.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modifiedllvm/test/CodeGen/X86/bitcast-vector-bool.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc.ll
The file was modifiedllvm/test/CodeGen/X86/vector-compare-results.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modifiedllvm/test/CodeGen/X86/movmsk-cmp.ll
The file was modifiedllvm/test/CodeGen/X86/masked_expandload.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-packus.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-and-bool.ll
Commit 5f2843857feee6fbf755c12c21698a4987eda5d1 by uday
[MLIR] Parallelize affine.for op to 1-D affine.parallel op

Introduce pass to convert parallel affine.for op into 1-D
affine.parallel op. Run using --affine-parallelize. Removes
test-detect-parallel: pass for checking parallel affine.for ops.

Differential Revision: https://reviews.llvm.org/D82672
The file was modifiedmlir/include/mlir/Dialect/Affine/Utils.h
The file was removedmlir/test/Dialect/Affine/parallelism-detection.mlir
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
The file was addedmlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp
The file was removedmlir/test/lib/Dialect/Affine/TestParallelismDetection.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/Affine/Passes.h
The file was modifiedmlir/include/mlir/Dialect/Affine/Passes.td
The file was modifiedmlir/lib/Dialect/Affine/Utils/Utils.cpp
The file was addedmlir/test/Dialect/Affine/parallelize.mlir
Commit 7bfe4102a99d7dc5520d1ca1695afbfd82dfd4f5 by llvm-dev
[X86][SSE] Add add/fadd reduction shuffle+subvector tests

Tests based on the PR37890 test cases - the vector combine pass should leave us with a reduction chain ending in extract(add(x,shuffle(x,1,-1,...))), but the higher reduction stages will be subvector extractions not shuffles.
The file was addedllvm/test/CodeGen/X86/horizontal-reduce-add.ll
The file was addedllvm/test/CodeGen/X86/horizontal-reduce-fadd.ll
Commit e56e96a264268a1df018f8b0a8c4caa18397a75d by dave
[libcxx testing] Remove ALLOW_RETRIES from another test
The file was modifiedlibcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp
Commit 56a8a5c9fe24d6d8809313633a4a5786d4fd29c6 by llvm-dev
[DAG] matchBinOpReduction - match subvector reduction patterns beyond a matched shufflevector reduction

Currently matchBinOpReduction only handles shufflevector reduction patterns, but in many cases these only occur in the final stages of a reduction, once we're down to legal vector widths.

Before this its likely that we are performing reductions using subvector extractions to repeatedly split the source vector in half and perform the binop on the halves.

Assuming we've found a non-partial reduction, this patch continues looking for subvector reductions as far as it can beyond the last shufflevector.

Fixes PR37890
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-fadd.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/horizontal-reduce-add.ll
Commit 14936e01e2199842e0a6ef3a85a60e32c14685ea by spatel
[InstCombine] add test for miscompile (PR46561); NFC
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul-zext.ll
Commit ef70cc9d1ac69125f38910d4c66388536f49f4dc by spatel
[InstCombine] improve debug value names; NFC

The use of 'tmp' can trigger warnings from the update_test_checks.py
script. That's evidence of a flaw in the script's logic, but we
can always do better than naming variables 'tmp' in LLVM too.

The phi test file should be updated with auto-generated regex CHECK
lines, so it isn't affected by cosmetic diffs, but I don't have
time to do that right now.
The file was modifiedllvm/test/Transforms/InstCombine/phi.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul-zext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit c3b8bd1eea5b74b6cd4a89f3c221bc2dfa891248 by lebedev.ri
[InstCombine] Always try to invert non-canonical predicate of an icmp

Summary:
The actual transform i was going after was:
https://rise4fun.com/Alive/Tp9H
```
Name: zz
Pre: isPowerOf2(C0) && isPowerOf2(C1) && C1 == C0
%t0 = and i8 %x, C0
%r = icmp eq i8 %t0, C1
  =>
%t = icmp eq i8 %t0, 0
%r = xor i1 %t, -1

Name: zz
Pre: isPowerOf2(C0)
%t0 = and i8 %x, C0
%r = icmp ne i8 %t0, 0
  =>
%t = icmp eq i8 %t0, 0
%r = xor i1 %t, -1
```
but as it can be seen from the current tests, we already canonicalize most of it,
and we are only missing handling multi-use non-canonical icmp predicates.

If we have both `!=0` and `==0`, even though we can CSE them,
we end up being stuck with them. We should canonicalize to the `==0`.

I believe this is one of the cleanup steps i'll need after `-scalarizer`
if i end up proceeding with my WIP alloca promotion helper pass.

Reviewers: spatel, jdoerfert, nikic

Reviewed By: nikic

Subscribers: zzheng, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83139
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll
The file was modifiedllvm/test/Transforms/PGOProfile/chr.ll
The file was modifiedllvm/test/Transforms/InstCombine/shift.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-with-bitwise-ops.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul-zext.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-selects-icmp-condition-bittest.ll
The file was modifiedllvm/test/ThinLTO/X86/cfi-devirt.ll
The file was modifiedllvm/test/Transforms/InstCombine/logical-select.ll
Commit 3b8ae1001f678be00507f15df0ffaccafec1dae9 by spatel
[InstCombine] fix miscompile from umul_with_overflow matching

As noted in PR46561:
https://bugs.llvm.org/show_bug.cgi?id=46561
...it takes something beyond a minimal IR example to trigger
this bug because it relies on matching non-canonical IR.

There are no tests that show the need for matching this
pattern, so I'm just deleting it to fix the miscompile.
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul-zext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 7fed3cfadbdfe1880e16c217a0edac97cbe288d2 by lebedev.ri
[clang] Fix two tests that are affected by llvm opt change
The file was modifiedclang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
The file was modifiedclang/test/CodeGenOpenCL/convergent.cl
Commit dc13ac02800220a33828ac3da629f382ca7e308d by vyng
Revert "[libcxx] Put clang::trivial_abi on std::unique_ptr, std::shared_ptr, and std::weak_ptr"

This reverts commit 5cde3c9633fd071c90e9f9ce54a002e78fdd9df9.

The tests were reported failing on clang10
The file was removedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_destruction_order.pass.cpp
The file was removedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_arg.pass.cpp
The file was removedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp
The file was removedlibcxx/test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp
The file was modifiedlibcxx/docs/index.rst
The file was removedlibcxx/docs/DesignDocs/UniquePtrTrivialAbi.rst
The file was modifiedlibcxx/include/__config
The file was removedlibcxx/test/libcxx/memory/trivial_abi/shared_ptr_arg.pass.cpp
The file was removedlibcxx/test/libcxx/memory/trivial_abi/unique_ptr_array.pass.cpp
The file was modifiedlibcxx/include/memory
Commit b4eb415a996911132d1a9786a57846e75439e1f0 by craig.topper
[X86] Disable VPBLENDVB formation in combineLogicBlendIntoPBLENDV if VPTERNLOG is supported.

VPBLENDVB is multiple uops while VPTERNLOG is a single uop. So
we should use that instead.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D83155
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vselect-packss.ll
Commit e652c0f8f3e7c7a1b42edf22cfc5bbfd597fd164 by craig.topper
[X86] Teach lowerShuffleAsBlend to use bit blend for v16i8/v32i8/v16i16 when avx512vl is enabled but not avx512bw.

Probably not super important since there are no real CPUs with
avx512vl and not avx512bw. But vpternlog should be better than
vblendvb.

I do wonder if we should use vpternlog even with BWI. We
currently use vblendmb or vpblendmw by putting the mask into a GPR
and moving it to a k-register. But I don't think we hoist the
GPR to k-register copy in machine LICM. Using VPTERNLOG would use
a constant pool load, but has the advantage that we're pretty good
at hoisting and rematerializing those.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D83156
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-256.ll
The file was modifiedllvm/test/CodeGen/X86/prefer-avx256-mask-shuffle.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-v48.ll
Commit 85e144329cffde852851c1bf73dd70e6a941f6ea by Amara Emerson
[profile] Mark gcov test as unsupported on Darwin.
The file was modifiedcompiler-rt/test/profile/Posix/gcov-destructor.c
Commit 45b5c79a31d05edb179efeda9305e6c42be4f818 by pklausler
[flang] Extend & fix per-I/O-statement state (ext. I/O work part 7)

The per-I/O-statement state structures need to support missing
external I/O statements, and some bugs found in testing with
formatted input and record advancement are fixed.  The effects
of these changes will not be visible until further patches to
the I/O API handlers are pushed.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D83151
The file was modifiedflang/runtime/io-stmt.h
The file was modifiedflang/runtime/io-stmt.cpp
The file was modifiedflang/runtime/unit.h
Commit 11a3f040c71020b0247144268570d571858b119c by lebedev.ri
[Utils] Make -assume-builder/-assume-simplify actually work on Old-PM

clang w/ old-pm currently would simply crash
when -mllvm  -enable-knowledge-retention=true is specified.

Clearly, these two passes had no Old-PM test coverage,
which would have shown the problem - not requiring AssumptionCacheTracker,
but then trying to always get it.

Also, why try to get domtree only if it's cached,
but at the same time marking it as required?
The file was modifiedllvm/test/Transforms/Util/assume-simplify.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/test/Transforms/Util/assume-builder.ll
The file was modifiedllvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp