Changes

Summary

  1. [sanitizer] Enable libcxx tests (details)
  2. [msan] Disable poison_in_dtor (details)
  3. [BOLT] Disable LLVM_APPEND_VC_REV (details)
  4. [asan] Disable ODR check in libcxx (details)
  5. [sanitizer] Fix typo in bash script (details)
  6. Revert "[asan] Disable ODR check in libcxx" (details)
  7. [asan] Disable RTTI and EXPECTIONS in libcxx (details)
  8. [asan] Use -asan-use-private-alias to suppress known bug (details)
Commit 8d8f8506be3a4bf555ec74e4ae6baae2edeee2bd by Vitaly Buka
[sanitizer] Enable libcxx tests
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit 33d356964e87780520fb8fcc788960a4b8ab2b7c by Vitaly Buka
[msan] Disable poison_in_dtor

Needs cleanup after b61f173f243136594287d68d3781a92b29cb102c
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit 9116ef0ff62d55f56d423c60cd6ecf13cf8bdf34 by aaupov
[BOLT] Disable LLVM_APPEND_VC_REV

The revision is explicit in buildbot runs. Disable the option to avoid
re-linking binaries on every commit.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D123552
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit ea1c3d47d349a7569f355a8874a15901c442a6ed by Vitaly Buka
[asan] Disable ODR check in libcxx

Fails after it b61f173f243136594287d68d3781a92b29cb102c
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit e566f65592b60f930771cf6fcaafd20379d7aae6 by Vitaly Buka
[sanitizer] Fix typo in bash script
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit a3810f307f37585915b2bd0314537d7533266eda by Vitaly Buka
Revert "[asan] Disable ODR check in libcxx"

check_initialization_order has nothing to do with ODR checks.

This reverts commit ea1c3d47d349a7569f355a8874a15901c442a6ed.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit 79d3ea5cc60ad9f432f0eb59640b5c128582f949 by Vitaly Buka
[asan] Disable RTTI and EXPECTIONS in libcxx

These test were just enabled and there are some ODR report.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)
Commit 8f10f442ca5a60ac7e7be520beadf10d7c0e8344 by Vitaly Buka
[asan] Use -asan-use-private-alias to suppress known bug
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh (diff)

Summary

  1. Add support for ignored bitfield conditional codegen. (details)
  2. [Sema] Don't check bounds for function pointer (details)
  3. [mlir][ods] Remove StrEnumAttr (details)
  4. [clang] Implement Change scope of lambda trailing-return-type (details)
  5. Fix Werror build issue from 6f20744b7ff875 (details)
  6. [BOLT] Fix data race in shortenInstructions (details)
  7. [BOLT] Ignore PC-relative relocations from data to data (details)
  8. Revert "[LICM] Only create load in pre-header when promoting load." (details)
  9. [Clang] Fix html error in cxx_status.html [NFC] (details)
  10. [BOLT][TEST] Remove -no-pie from cflags/cxxflags (details)
  11. Fix a typo with this test function name (details)
  12. [sanitizer] Don't run malloc hooks for stacktraces (details)
  13. [BOLT][TEST] Add -no-pie to two tests (details)
  14. [DA] Refactor with a better API (details)
  15. [iwyu] Handle regressions in libLLVM header include (details)
  16. AMDGPU: Relax test check on tablegen debug output (details)
  17. RegAllocGreedy: Remove redundant check for virtual registers (details)
  18. Restrict lvalue-to-rvalue conversions in CGExprConstant. (details)
  19. Revert "[clang] Implement Change scope of lambda trailing-return-type" (details)
  20. [mlir][vector] Add unrolling pattern for TransposeOp (details)
  21. [clang][dataflow] Weaken abstract comparison to enable loop termination. (details)
  22. Replace %0 in function arguments with descriptive names. (details)
  23. [BOLT] Update skipRelocation for aarch64 (details)
  24. [lldb] Expand $ when using tcsh (details)
  25. Revert "[sanitizer] Don't run malloc hooks for stacktraces" (details)
  26. [lld-macho][nfc] De-templatize UnwindInfoSection (details)
  27. RegAlloc: Fix remaining virtual registers after allocation failure (details)
  28. [libc++] `bitset::operator[] const` should return bool (details)
  29. Fix compatibility with retroactive C++23 change [NFC] (details)
  30. Replace numbered function arguments with descriptive names. (details)
  31. [clang] Implement Change scope of lambda trailing-return-type (details)
  32. [SimplifyCFG] add more tests for switch to select transform; NFC (details)
  33. [SimplifyCFG] improve readability in switch-to-select; NFC (details)
  34. [AMDGPU] Increate hazard for store dwordx3/4 to 2 waitstates on gfx940 (details)
  35. [debugserver ] Un-conditionalize use of libcompression (details)
  36. Run update_test_checks.py after parameter renaming in r03b807d3f2999888bbe395945987af06f201c142 (NFC). (details)
  37. [lldb] Fix a bug in the decorator matching logic. (details)
  38. Adapt "cross compile?" check for Apple Silicon (details)
  39. [MLIR][GPU] Add GPU ops nvvm.mma.sync, nvvm.mma.ldmatrix, lane_id (details)
  40. [flang] Emit a portability warning for padding in COMMON (details)
  41. [flang] expand the num_images test coverage (details)
  42. Apply clang-tidy fixes for readability-identifier-naming in OpenMPDialect.cpp (NFC) (details)
  43. Apply clang-tidy fixes for llvm-else-after-return in SCF.cpp (NFC) (details)
  44. [lldb] Format LocateSymbolFileMacOSX (NFC) (details)
  45. [lldb] Remove reproducer logic from LocateSymbolFileMacOSX (details)
  46. [gn build] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL=1 (details)
  47. [bazel] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to 1 (details)
  48. [sanitizer] Don't run malloc hooks for stacktraces (details)
  49. [Driver] Change CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to affect driver default instead of cc1 default (details)
  50. [mlir] Fix a typo to load lsp-mode correctly. (details)
  51. [flang] Fold IBITS() intrinsic function (details)
  52. [randstruct] Fix -Wunused-but-set-variable with Clang>=D122271 in -DLLVM_ENABLE_ASSERTIONS=off builds (details)
  53. [gn build] (manually) port ab8abeaf48ab (details)
  54. [sanitizer] Disable malloc_hook_skip on Darwin (details)
  55. [flang] Error handling for out-of-range CASE values (details)
  56. [HWASan] symbolize: use buildid index for locals. (details)
  57. [RISCV][NFC] Use addExpr() instead of createExpr() (details)
  58. [MLIR][Presburger] change some post-increments/decrements to pre-increments/decrements (details)
  59. [MLIR][Presburger] change some `push_back`s to `emplace_back`s (details)
  60. [cmake] Loosen multi-distribution restrictions (details)
  61. [Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC (details)
  62. [NFC] Generically resolve body in FunctionOpInterface verifyBody. (details)
  63. [Darwin][ASan][Sanitizer] Fixes Sanitizer NonUnique Identifier to Account for Mac arm64 architectures. (details)
  64. RISCV] Add clang builtins for CLZ instruction. (details)
  65. Revert "[clang] Implement Change scope of lambda trailing-return-type" (details)
  66. [mlir] Introduce ml_program dialect. (details)
  67. [flang] Respect left tab limit with Tn editing after ADVANCE='NO' (details)
  68. [Driver] Simplify some hasFlag patterns with addOptInFlag/addOptOutFlag. NFC (details)
  69. test: Don't depend on behavior of switch lower in one test. NFC (details)
  70. LowerSwitch: Avoid inserting NewDefault block (details)
  71. [clang-tidy] Add portability-std-allocator-const check (details)
  72. [gn build] Port 73da7eed8fac (details)
  73. [Driver] Fix -fpascal-strings on Darwin (details)
  74. [Driver] Sort Generic_GCC::IsIntegratedAssemblerDefault, NFC (details)
  75. Revert "[sanitizer] Don't run malloc hooks for stacktraces" (details)
  76. [MLIR][GPU] Add canonicalization patterns for folding simple gpu.wait ops. (details)
  77. [AMDGPU] Try to avoid inserting duplicate s_inst_prefetch (details)
  78. [AMDGPU][NFC] Organize code around reserving VGPR32 for AGPR copy. (details)
  79. [MLIR] Fix missing return statement warning in PatternMatch.h (details)
  80. [RISCV][NFC] Refactor patterns for Multiply Add instructions (details)
  81. [RISCV] Remove sext_inreg+riscv_grev/riscv_gorc isel patterns (details)
  82. Revert "[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer" (details)
  83. [AMDGPU] Add a test for flat scratch SVS addressing (details)
  84. [clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective() (details)
  85. [flang] Fix DYLIB builds (details)
  86. [AMDGPU] Remove redundand RequiredAlignment assignment. NFCI. (details)
  87. Reland "[AST] Add a new TemplateKind for template decls found via a using decl."" (details)
  88. [gn build] Port 6ba1b9075dc1 (details)
  89. [flang][driver] Add support for `-mmlir` (details)
  90. Apply clang-tidy fixes for performance-for-range-copy in SCF.cpp (NFC) (details)
  91. Apply clang-tidy fixes for llvm-qualified-auto in VectorTransforms.cpp (NFC) (details)
  92. [flang] Allow IMPLICIT NONE(EXTERNAL) with GenericDetails (details)
  93. [flang] Do not ICE on out-of-range data statement designator (details)
  94. [flang] Fix ICE for sqrt(0.0) evaluation (details)
  95. [VPlan] Turn external defs in Value -> VPValue mapping. (details)
  96. [SVE] Add support for non-element-type sized scaling when lowering MGATHER/MSCATTER. (details)
  97. [mlir] initial support for opaque pointers in the LLVM dialect (details)
  98. [mlir] Split intrinsics out of LLVMOps.td (details)
  99. [mlir] Introduce Transform dialect (details)
  100. [Clang][AArch64][SVE] Allow subscript operator for SVE types (details)
  101. [Clang][AArch64][SVE] Add shift operators for SVE vector types (details)
  102. [X86] Adjust fsetcc/fmin/fmax costs to match SoG (Issue #54889) (details)
  103. [PS4] NFC refactor of PS4 toolchain class, prep for PS5 (details)
  104. [mlir][vector] Fold splat constant transpose (details)
  105. [mlir][vector] Cast away leading one dims for insert ops (details)
  106. Revert "[gn build] Port 73da7eed8fac" (details)
  107. [gn build] Port 73da7eed8fac (details)
  108. Revert "[clang-tidy] Add portability-std-allocator-const check" (details)
  109. [gn build] Port dd47ab750b58 (details)
  110. [mlir] fix compiler warnings (details)
  111. [flang] Fix float-number representation bug (details)
  112. [flang] Fix intrinsic interface for DIMAG/DCONJG (details)
  113. [libc++][ranges] Implement ranges::minmax and ranges::minmax_element (details)
  114. [gn build] Port 58d9ab70aef3 (details)
  115. [NVPTX] 64-bit atom.{and,or,xor,min,max} require sm_32 or higher (details)
  116. [NVPTX] shfl.sync is introduced in PTX 6.0 (details)
  117. [NVPTX] .attribute(.managed) is only supported for sm_30 and PTX 4.0 (details)
  118. [NVPTX] Avoid dots in global names (details)
  119. [NVPTX] Fix barrier.ll LIT test (details)
  120. [AArch64] Move v4i8 concat load lowering to a combine. (details)
  121. [libc++] Fix undefined behavior in `std::filebuf` (details)
  122. [flang] Improve appearance of message attachments (details)
  123. [OpenMP] Make offloading sections have the SHF_EXCLUDE flag (details)
  124. [Object] Add binary format for bundling offloading metadata (details)
  125. [gn build] Port e471ba3d0122 (details)
  126. [HLSL] Add Semantic syntax, and SV_GroupIndex (details)
  127. [gn build] Port 1fdf952deeb9 (details)
  128. [FPEnv][InstSimplify] Fold fsub -0.0, -X ==> X (details)
  129. [AArch64] Lowering and legalization of strict FP16 (details)
  130. [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL (details)
  131. [AArch64] Add mayRaiseFPException to appropriate instructions (details)
  132. [flang] Fix combining cases of USE association & generic interfaces (details)
  133. [SimplifyCFG] Try to fold switch with single result value and power-of-2 cases to mask+select (details)
  134. [SVE] Refactor MGATHER lowering for unsupported passthru values. (details)
  135. [clang-format] Skip preprocessor lines when finding the record lbrace (details)
  136. [mlir][nvgpu] Add NVGPU dialect (architectural specific gpu dialect) (details)
  137. [IROutliner] Ensure that incoming blocks of PHINodes are included in the unique numbering gneration for phi nodes for each exit path (details)
  138. [PS4] Fix a couple of typos (details)
  139. [IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments (details)
  140. Revert "[IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments" (details)
  141. [flang] Defer all function result type processing (details)
  142. [libc++] Adds a missing include. (details)
  143. [BOLT][perf2bolt] Fix base address calculation for shared objects (details)
  144. Use descriptive register names for readability (NFC). (details)
  145. [lldb] Prevent crash when adding a stop hook with --shlib (details)
  146. [lldb] Port Process::PrintWarning* to use the new diagnostic events (details)
  147. [LLDB][NativePDB] Fix inline line info in line table (details)
  148. [LLDB][NativePDB] Fix a crash when S_DEFRANGE_SUBFIELD_REGISTER descirbes a simple type (details)
  149. [NVPTX] Disable parens for identifiers starting with '$' (details)
  150. [clang-tidy] Add portability-std-allocator-const check (details)
  151. [flang] Always encode multi-byte output in UTF-8 (details)
  152. Revert "[NVPTX] Disable parens for identifiers starting with '$'" (details)
  153. [InstCombine] canonicalize select with signbit test (details)
  154. [ELF][AArch64] Fix unneeded thunk for branches to hidden undefined weak (details)
  155. [HLSL] Pointers are unsupported in HLSL (details)
  156. [BPF] handle opaque-pointer for __builtin_preserve_enum_value (details)
  157. [gn build] Port b9ca972b1ff0 (details)
  158. Allow flexible array initialization in C++. (details)
  159. [flang] Fix shape analysis of RESHAPE result (details)
  160. [lldb] Remove TestShell.test (details)
  161. [PS5] Add basic PS5 driver behavior (details)
  162. [VE][compiler-rt] Correct location of VE support in clear_cache function, NFC (details)
  163. [flang] Use full result range for clock_gettime implementation of SYSTEM_CLOCK (details)
  164. [libc][docs] Add doc for libc string functions (details)
  165. [libc++][NFC] Add missing 'return 0' to test (details)
  166. [X86] Fix test case for SoftPromoteHalf of STRICT_FP_EXTEND/STRICT_FP_ROUND. (details)
  167. [flang] Correct interaction between generics and intrinsics (details)
  168. Comment out assertions about initializer size added in D123649. (details)
  169. [DFSan] Avoid replacing uses of functions in comparisions. (details)
  170. [NVPTX][tests] Do not run the test CodeGen/Generic/2010-11-04-BigByval.ll (details)
  171. [flang] Raise FP exceptions from runtime conversion to binary (details)
  172. [mlir][sparse][taco] Use the SparseCompiler from python/tools. (details)
  173. [Driver] Remove unneeded -f[no-]pascal-strings translation. NFC (details)
  174. [flang] Make F0.1 output editing of zero edge case consistent (details)
  175. [flang][runtime] Preserve effect of positioning in record in non-advancing output (details)
  176. [randstruct] Add test for "-frandomize-layout-seed-file" flag (details)
  177. [flang] Inner INTRINSIC must not shadow host generic (details)
  178. [flang] Local generics must not shadow host-associated generics (details)
  179. Apply clang-tidy fixes for modernize-use-default-member-init in SparseTensorUtils.cpp (NFC) (details)
  180. Apply clang-tidy fixes for modernize-use-default-member-init in PDLLServer.cpp (NFC) (details)
  181. Revert "[randstruct] Add test for "-frandomize-layout-seed-file" flag" (details)
  182. [flang] Fix TYPE/CLASS IS (T(...)) in SELECT TYPE (details)
  183. Revert "[lldb] Pin the shared cache when iterating over its images" (details)
  184. [randstruct] Add test for "-frandomize-layout-seed-file" flag (details)
  185. [mlir][nvgpu] Move mma.sync and ldmatrix in nvgpu dialect (details)
  186. [lldb] Show the DBGError if dsymForUUID can't find a dSYM (details)
  187. [flang] Allow modification of construct entities (details)
  188. Remove folder introduced by incorrect patch level (details)
  189. MachineFunction: Remove unused field (details)
  190. llvm-reduce: Fix some copy-pasted comment errors (details)
  191. MachineCSE: Report this requires SSA (details)
  192. llvm-reduce: Fix handling of generic virtual registers (details)
  193. llvm-reduce: Fix asserting on undef virtual registers (details)
  194. AMDGPU: Fix assert if v_mov_b32_dpp is last instruction in the block (details)
  195. [flang] Defer NAMELIST group item name resolution (details)
  196. AMDGPU: Select i8/i16 global and flat atomic load/store (details)
  197. llvm-reduce: Copy register allocation hints to clone (details)
  198. llvm-reduce: Inform MRI of used phys reg masks (details)
  199. [libomptarget] [amdgpu] Hostcall offset check should consider implicit args (details)
  200. [flang] Accept TYPE(intrinsic type) in declarations only for non-extension type (details)
  201. llvm-reduce: Handle cloning MachineFrameInfo and stack objects (details)
  202. Fix MLIR website generation (details)
  203. [utils] Use git to checkout code instead of svn in building docker image (details)
  204. Mips/GlobalISel: Add stub post-legalizer combiner (details)
  205. clang/AMDGPU: Define macro for -munsafe-fp-atomics (details)
  206. [gcov][test] Change some legacy PM tests to new PM and remove others (details)
  207. [mlir][LLVMIR] Add more vector predication intrinsic ops. (details)
  208. [BOLT][NFC] Use LLVM_REVISION instead of BOLT_VERSION_STRING (details)
  209. Add missing word in llc docs (details)
  210. [RISCV][VP] Add RVV codegen for vp.trunc. (details)
  211. [mlir] Add assert to fail with more info (NFC) (details)
  212. [PGO][test] Change opt -foo tests to -passes= and remove duplicates (details)
  213. [mlir][vector] Add operations used for Vector distribution (details)
  214. [LoongArch] Add support for selecting constant materializations. (details)
  215. [PGO][test] Remove duplicate --pgo-instr-memop tests (details)
  216. [PGO][test] Fix memop_size_opt.ll (details)
  217. [LoongArch] Fix shared build. NFC. (details)
  218. [mlir] Update bazel file after adding nvgpu to nvvm conversion (details)
  219. [flang][runtime] Don't skip input spaces when they are significant (details)
  220. AMDGPU: Add mixed sign/zero-extend multiply-add test (details)
  221. [mlir] Fix verification order of nested ops. (details)
  222. AMDGPU: Add more mad_64_32 test cases (details)
  223. [ELF][ARM] Fix unneeded thunk for branches to hidden undefined weak (details)
  224. [RISCV][NFC] Refactor VL patterns for vnsrl and vnsra (details)
  225. [NFC] Reformat a part of TestingConfig.py (details)
  226. [lit] Forward more sanitizer env in TestingConfig (details)
  227. [Driver] Move Lanai IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC (details)
  228. Apply clang-tidy fixes for modernize-use-default-member-init in ControlFlowSinkUtils.cpp (NFC) (details)
  229. Apply clang-tidy fixes for readability-identifier-naming in TestTypes.cpp (NFC) (details)
  230. [UpdateTestChecks] Add NVPTX support in update_llc_test_checks.py (details)
  231. [WebAssembly] Remove TODO comment for IAS, NFC (details)
  232. [NFC] Add test in preparation for D123849. (details)
  233. [ExpandMemCmp] Properly expand `bcmp` to an equality pattern. (details)
  234. [gn build] (manually) port 6d45558c1a05d (MipsGenPostLegalizeGICombiner) (details)
  235. [AArch64][SelectionDAG] Refactor to support more scalable vector extending stores (details)
  236. [libc++] Implement ranges::copy{, _n, _if, _backward} (details)
  237. [gn build] Port 1d83750f631d (details)
  238. [UpdateTestChecks] Prevent rapid onset insanity when forced to write LoopVectorize-driven costmodel tests (details)
  239. Require asserts in newly added test (details)
  240. [AArch64] Async unwind - Fix MTE codegen emitting frame adjustments in a loop (details)
  241. [mlir][vector] Reorder elementwise(transpose) (details)
  242. [C89/C2x] Diagnose calls to a function without a prototype but passes arguments (details)
  243. [clang][parse] NFCI: Use FileEntryRef in Parser::ParseModuleImport() (details)
  244. [clang][CodeGen] NFCI: Use FileEntryRef (details)
  245. [clang] NFCI: Use DirectoryEntryRef in collectIncludePCH (details)
  246. [clang] NFCI: Use FileEntryRef in FileManagerTest (details)
  247. [clang][lex] NFC: Use FileEntryRef in PreprocessorLexer::getFileEntry() (details)
  248. Fix failing test case found by bots: (details)
  249. [BOLT] Check if LLVM_REVISION is defined (details)
  250. Adjust Bazel BUILD files for 6d45558c1 (details)
  251. [Clang][Sema] Fix invalid redefinition error in if/switch/for statement (details)
  252. [clang][deps] NFC: Inline function with single caller (details)
  253. [clang][deps] NFC: Update documentation (details)
  254. [NFC][Costmodel][LV][X86] Refresh one or two interleaved load/store tests (details)
  255. [clang] Implement Change scope of lambda trailing-return-type (details)
  256. [NFC][UpdateTestChecks] Fix whitespace in common.py and asm.py (details)
  257. [VP] Rename ISD::VP_FPROUND and ISD::VP_FPEXT (details)
  258. Clean up `OMPAtomicDirective::Create` (details)
  259. Properly identify builtins in a diagnostic note (details)
  260. [mlir] Support opaque types in LLVM IR -> MLIR translation (details)
  261. [mlir][ods][NFC] Move enum attribute definitions from OpBase.td to EnumAttr.td (details)
  262. [flang] Fix Symbol::Rank for ProcEntityDetails (details)
  263. [MLIR] Fix operation clone (details)
  264. [PGO] Remove legacy PM passes (details)
  265. [mlir] Update LICM to support Graph Regions (details)
  266. [LLDB][NativePDB] Fix subfield_register_simple_type.s test (details)
Commit 6f20744b7ff875bb5eb735d1e7636ad6a66d4526 by erich.keane
Add support for ignored bitfield conditional codegen.

Currently we emit an error in just about every case of conditionals
with a 'non simple' branch if treated as an LValue.  This patch adds
support for the special case where this is an 'ignored' lvalue, which
permits the side effects from happening.

It also splits up the emit for conditional LValue in a way that should
be usable to handle simple assignment expressions in similar situations.

Differential Revision: https://reviews.llvm.org/D123680
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was addedclang/test/CodeGenCXX/ignored-bitfield-conditional.cpp
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
Commit b2c3ae0b6f05fd0c2184aea82637685a13b8dc4f by platonov.aleksandr
[Sema] Don't check bounds for function pointer

Currently, clang crashes with i386 target on the following code:
```
void f() {
  f + 0xdead000000000000UL;
}
```
This problem is similar to the problem fixed in D104424, but that fix can't handle function pointer case, because `getTypeSizeInCharsIfKnown()` says that size is known and equal to 0 for function type.

This patch prevents bounds checking for function pointer, thus fixes the crash.

Fixes https://github.com/llvm/llvm-project/issues/50463

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D122748
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/unbounded-array-bounds.c
Commit 60e34f8dddb4a3ae5b82e8d55728c021126c4af8 by jeffniu22
[mlir][ods] Remove StrEnumAttr

StrEnumAttr has been deprecated in favour of EnumAttr, a solution based on AttrDef (https://reviews.llvm.org/D115181). This patch removes StrEnumAttr, along with all the custom ODS logic required to handle it.

See https://discourse.llvm.org/t/psa-stop-using-strenumattr-do-use-enumattr/5710 on how to transition to EnumAttr. In short,

```
// Before
def MyEnumAttr : StrEnumAttr<"MyEnum", "", [
  StrEnumAttrCase<"A">,
  StrEnumAttrCase<"B">
]>;

// After (pick an integer enum of your choice)
def MyEnum : I32EnumAttr<"MyEnum", "", [
  I32EnumAttrCase<"A", 0>,
  I32EnumAttrCase<"B", 1>
]> {
  // Don't generate a C++ class! We want to use the AttrDef
  let genSpecializedAttr = 0;
}
// Define the AttrDef
def MyEnum : EnumAttr<MyDialect, MyEnum, "my_enum">;
```

Reviewed By: rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D120834
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/EnumsGen.cpp
The file was modifiedmlir/include/mlir/TableGen/Attribute.h
The file was modifiedmlir/test/IR/attribute.mlir
The file was modifiedmlir/unittests/TableGen/enums.td
The file was modifiedmlir/unittests/TableGen/EnumsGenTest.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/TableGen/Attribute.cpp
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/tools/mlir-tblgen/DirectiveCommonGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
Commit adff142dc253d65b6560e420bba6b858d88d4a98 by corentinjabot
[clang] Implement Change scope of lambda trailing-return-type

Implement P2036R3.

Captured variables by copy (explicitely or not), are deduced
correctly at the point we know whether the lambda is mutable,
and ill-formed before that.

Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that capture would not be available to look up.

The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.

The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.

We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.

The order of operations is as follow:

* Parse the init capture in the lambda's parent scope

* Introduce a lambda scope

* Create the lambda class and call operator

* Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type).
Instead, explicit  captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).

* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.

* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).

* The lambda qualifiers are parsed, at this point We can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers,
record the lambda is mutable and capture the explicit variables.

* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.

At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).

Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119136
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/www/cxx_status.html
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/test/SemaCXX/warn-shadow-in-lambdas.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was addedclang/test/SemaCXX/lambda-capture-type-deduction.cpp
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/Scope.cpp
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
Commit 38823b7f5f01e01c44360b17b4ab99b2729b7197 by erich.keane
Fix Werror build issue from 6f20744b7ff875
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
Commit bad3798113f8760a7978d745d428a1271e75554c by aaupov
[BOLT] Fix data race in shortenInstructions

Address ThreadSanitizer warning

Reviewed By: maksfb

Differential Revision: https://reviews.llvm.org/D121338
The file was modifiedbolt/lib/Passes/BinaryPasses.cpp
Commit 36cb736665dbdaefd188d54376dc6c7f92e1fb68 by maks
[BOLT] Ignore PC-relative relocations from data to data

BOLT expects PC-relative relocations in data sections to reference code
and the relocated data to form a jump table. However, there are cases
where PC-relative addressing is used for data-to-data references
(e.g. clang-15 can generate such code). BOLT should recognize and ignore
such relocations. Otherwise, they will be considered relocations not
claimed by any jump table and cause a failure in the strict mode.

Reviewed By: yota9, Amir

Differential Revision: https://reviews.llvm.org/D123650
The file was addedbolt/test/X86/data-to-data-pcrel.s
The file was modifiedbolt/lib/Rewrite/RewriteInstance.cpp
Commit ad95255b9215a9e467169e6109bd53561e589f0b by flo
Revert "[LICM] Only create load in pre-header when promoting load."

This reverts commit 4bf3b7dc929c8288e9e5631978ef060d9140b251.

This might be causing another buildbot failure.
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
The file was modifiedllvm/test/Transforms/LICM/scalar-promote.ll
Commit 925acfea8836ffe97a1c1d76d31df3229e978a11 by corentinjabot
[Clang] Fix html error in cxx_status.html [NFC]
The file was modifiedclang/www/cxx_status.html
Commit 487570fb8600bbb9ec3c535eb763796dff6daa8d by aaupov
[BOLT][TEST] Remove -no-pie from cflags/cxxflags

Align with an upstream change D120305 to make PIE the default on linux-gnu.

Add `-no-pie` to tests that require it.

Reviewed By: maksfb, yota9

Differential Revision: https://reviews.llvm.org/D123329
The file was modifiedbolt/test/lit.cfg.py
The file was modifiedbolt/test/runtime/X86/shrinkwrapping-alignment.s
The file was modifiedbolt/test/X86/exceptions-args.test
The file was modifiedbolt/test/X86/jump-table-icp.test
The file was modifiedbolt/test/X86/tail-duplication-jt.s
The file was modifiedbolt/test/X86/zero-sized-object.s
The file was modifiedbolt/test/runtime/fptr.test
The file was modifiedbolt/test/AArch64/asm-func-debug.test
The file was modifiedbolt/test/X86/jump-table-footprint-reduction.test
The file was modifiedbolt/test/X86/jump-table-reference.test
The file was modifiedbolt/test/X86/indirect-goto.test
The file was modifiedbolt/test/X86/unreachable.test
The file was modifiedbolt/test/runtime/X86/shrinkwrapping-pushpop.s
The file was modifiedbolt/test/X86/issue20.s
The file was modifiedbolt/test/runtime/X86/shrinkwrapping-lock.s
The file was modifiedbolt/test/X86/shrinkwrapping-critedge.s
The file was modifiedbolt/test/X86/interprocedural-ref-entry-point.s
The file was modifiedbolt/test/runtime/X86/interp-overwrite-bug.s
The file was modifiedbolt/test/X86/loop-nest.test
The file was modifiedbolt/test/runtime/X86/user-func-reorder.c
The file was modifiedbolt/test/runtime/X86/exceptions-instrumentation.test
The file was modifiedbolt/test/X86/asm-func-debug.test
The file was modifiedbolt/test/runtime/X86/hot-end-symbol.s
The file was modifiedbolt/test/runtime/X86/section-reloc-with-addend.s
The file was modifiedbolt/test/X86/tail-duplication-cacheline.s
The file was modifiedbolt/test/X86/debug-fission-single.s
The file was modifiedbolt/test/runtime/X86/fix-branches-jrcxz.s
The file was modifiedbolt/test/X86/shrinkwrapping.test
The file was modifiedbolt/test/runtime/X86/instrumentation-dup-jts.s
The file was modifiedbolt/test/runtime/X86/instrumentation-ind-calls.s
The file was modifiedbolt/test/X86/vararg.test
Commit a3b73b60be4467d2194d3c95e7b943f1644cf92b by aaron
Fix a typo with this test function name

The call and the function name don't line up correctly, so this was
accidentally using an implicit function declaration when it didn't
intend to.
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-implicits.c
Commit 6345d7f2a829faea56ad522a7d5180043f862a5c by Vitaly Buka
[sanitizer] Don't run malloc hooks for stacktraces

Usually when we generated stacktraces the process is in error state, so
running hooks may crash the process and prevent meaningfull error report.

Symbolizer, unwinder and pthread are potential source of mallocs.

https://b.corp.google.com/issues/228110771

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D123566
The file was modifiedcompiler-rt/lib/msan/msan_allocator.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
The file was addedcompiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp
Commit 04641b212191e3cea73904d37c5a59b0f87f3247 by aaupov
[BOLT][TEST] Add -no-pie to two tests

Missed these two tests in D123329 in a rebase.
The file was modifiedbolt/test/runtime/iplt.c
The file was modifiedbolt/test/runtime/plt-lld.test
Commit 557b131c885b0225d24b027dec3162e0ba051068 by congzhecao
[DA] Refactor with a better API

Refactor from iteratively using BitCastInst::getOperand()
to using stripPointerCasts() instead. This is an improvement
since now we are able to analyze more cases, please refer
to test cases added in this patch.

Reviewed By: Meinersbur, #loopoptwg

Differential Revision: https://reviews.llvm.org/D123559
The file was modifiedllvm/lib/Analysis/DependenceAnalysis.cpp
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
Commit fa5a4e1b95c8f37796c7ec53ce45d7e5971d281a by sguelton
[iwyu] Handle regressions in libLLVM header include

Running iwyu-diff on LLVM codebase since a96638e50ef5 detected a few
regressions, fixing them.
The file was modifiedllvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/lib/LTO/ThinLTOCodeGenerator.cpp
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
The file was modifiedllvm/include/llvm/Bitcode/BitcodeReader.h
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
Commit e78f70bccb8919d74bbbe492aa2fb0eb230b7467 by Matthew.Arsenault
AMDGPU: Relax test check on tablegen debug output

Try to match tN and pointer for asserts and non-assert builds.
The file was modifiedllvm/test/CodeGen/AMDGPU/store-to-constant-error.ll
Commit 681b9466c9209ee6c7209761a309fb78c6fa1ef6 by Matthew.Arsenault
RegAllocGreedy: Remove redundant check for virtual registers

The set of interfering virtual registers obviously only includes
virtual registers.
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
Commit d791de0e25e13cd8ae066e6f0fa03b384502b02e by efriedma
Restrict lvalue-to-rvalue conversions in CGExprConstant.

We were generating wrong code for cxx20-consteval-crash.cpp: instead of
loading a value of a variable, we were using its address as the
initializer.

Found while adding code to verify the size of constant initializers.

Differential Revision: https://reviews.llvm.org/D123648
The file was modifiedclang/lib/CodeGen/CGExprConstant.cpp
The file was modifiedclang/test/CodeGenCXX/cxx20-consteval-crash.cpp
Commit 26eec9e9dbc20186f6b810fe01d3a01aac8ae6f4 by joker.eph
Revert "[clang] Implement Change scope of lambda trailing-return-type"

This reverts commit adff142dc253d65b6560e420bba6b858d88d4a98.
This broke clang bootstrap: it made existing C++ code in LLVM invalid:

llvm/include/llvm/CodeGen/LiveInterval.h:630:53: error: captured variable 'Idx' cannot appear here
              [=](std::remove_reference_t<decltype(*Idx)> V,
                                                    ^
The file was modifiedclang/lib/Sema/Scope.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/www/cxx_status.html
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was removedclang/test/SemaCXX/lambda-capture-type-deduction.cpp
The file was modifiedclang/test/SemaCXX/warn-shadow-in-lambdas.cpp
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
Commit 5b1b7108c8975159c1112ceea1cd7e213e1be97a by thomasraoux
[mlir][vector] Add unrolling pattern for TransposeOp

Support unrolling for vector.transpose following the same interface as
other vector unrolling ops.

Differential Revision: https://reviews.llvm.org/D123688
The file was modifiedmlir/include/mlir/Dialect/Vector/IR/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorUnrollDistribute.cpp
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/IR/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-unroll-options.mlir
Commit bbcf11f5af98a6e0fa008e180404cfc397f336fa by yitzhakm
[clang][dataflow] Weaken abstract comparison to enable loop termination.

Currently, when the framework is used with an analysis that does not override
`compareEquivalent`, it does not terminate for most loops. The root cause is the
interaction of (the default implementation of) environment comparison
(`compareEquivalent`) and the means by which locations and values are
allocated. Specifically, the creation of certain values (including: reference
and pointer values; merged values) results in allocations of fresh locations in
the environment. As a result, analysis of even trivial loop bodies produces
different (if isomorphic) environments, on identical inputs. At the same time,
the default analysis relies on strict equality (versus some relaxed notion of
equivalence). Together, when the analysis compares these isomorphic, yet
unequal, environments, to determine whether the successors of the given block
need to be (re)processed, the result is invariably "yes", thus preventing loop
analysis from reaching a fixed point.

There are many possible solutions to this problem, including equivalence that is
less than strict pointer equality (like structural equivalence) and/or the
introduction of an explicit widening operation. However, these solutions will
require care to be implemented correctly. While a high priority, it seems more
urgent that we fix the current default implentation to allow
termination. Therefore, this patch proposes, essentially, to change the default
comparison to trivally equate any two values. As a result, we can say precisely
that the analysis will process the loop exactly twice -- once to establish an
initial result state and the second to produce an updated result which will
(always) compare equal to the previous. While clearly unsound -- we are not
reaching a fix point of the transfer function, in practice, this level of
analysis will find many practical issues where a single iteration of the loop
impacts abstract program state.

Note, however, that the change to the default `merge` operation does not affect
soundness, because the framework already produces a fresh (sound) abstraction of
the value when the two values are distinct. The previous setting was overly
conservative.

Differential Revision: https://reviews.llvm.org/D123586
The file was modifiedclang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
The file was modifiedclang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp
The file was modifiedclang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
The file was modifiedclang/unittests/Analysis/FlowSensitive/TransferTest.cpp
Commit b8bac957d18bc159b9e0bb9978473faa4b8df03b by msebor
Replace %0 in function arguments with descriptive names.
The file was modifiedllvm/test/Transforms/InstCombine/memrchr-4.ll
The file was modifiedllvm/test/Transforms/InstCombine/memrchr-2.ll
The file was modifiedllvm/test/Transforms/InstCombine/memrchr-3.ll
Commit 2f98c5febce2840034010c7ad9931988fc8dc61b by och95
[BOLT] Update skipRelocation for aarch64

The ld might relax ADRP+ADD or ADRP+LDR sequences to the ADR+NOP, add
the new case to the skipRelocation for aarch64.

Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei

Differential Revision: https://reviews.llvm.org/D123334
The file was modifiedbolt/lib/Core/Relocation.cpp
The file was addedbolt/test/AArch64/skip-got-rel.test
The file was modifiedbolt/test/runtime/plt-lld.test
The file was addedbolt/test/AArch64/Inputs/skip-got-rel.yaml
Commit acc56e55feee61fc0038bc132a94e54ce56ced98 by Jonas Devlieghere
[lldb] Expand $ when using tcsh

Unlike for any of the other shells, we were escaping $ when using tcsh.
There's nothing special about $ in tcsh and this prevents you from
expanding shell variables, one of the main reasons this functionality
exists in the first place.

Differential revision: https://reviews.llvm.org/D123690
The file was modifiedlldb/unittests/Utility/ArgsTest.cpp
The file was modifiedlldb/source/Utility/Args.cpp
The file was addedlldb/test/Shell/Process/TestShell.test
The file was addedlldb/test/Shell/Process/Inputs/echo.c
Commit 5d4df59de10396f13f9b011b58968c716318362d by Vitaly Buka
Revert "[sanitizer] Don't run malloc hooks for stacktraces"

Breaks android and iOS bots.
https://green.lab.llvm.org/green/job/clang-san-iossim/5229/consoleFull#711521816a1ca8a51-895e-46c6-af87-ce24fa4cd561
https://lab.llvm.org/buildbot/#/builders/77/builds/16456

This reverts commit 6345d7f2a829faea56ad522a7d5180043f862a5c.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/msan/msan_allocator.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was removedcompiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp
Commit 2a6669060f3533d144b12d1ec0faafe2de537994 by jezng
[lld-macho][nfc] De-templatize UnwindInfoSection

Follow-on to {D123276}. Now that we work with an internal
representation of compact unwind entries, we no longer need to template
our UnwindInfoSectionImpl code based on the pointer size of the target
architecture.

I've still kept the split between `UnwindInfoSectionImpl` and
`UnwindInfoSection`. I'd introduced that split in order to do type
erasure, but I think it's still useful to have in order to keep
`UnwindInfoSection`'s definition in the header file clean.

Reviewed By: #lld-macho, oontvoo

Differential Revision: https://reviews.llvm.org/D123277
The file was modifiedlld/MachO/UnwindInfoSection.h
The file was modifiedlld/MachO/UnwindInfoSection.cpp
Commit 1732242bee499d639fd481a32f36c5c64e008e8e by Matthew.Arsenault
RegAlloc: Fix remaining virtual registers after allocation failure

This testcase fails register allocation, but at the failure point
there were also new split virtual registers. Previously this was
assigning the failing register and not enqueueing the newly created
split virtual registers. These would then never be allocated and
assert in VirtRegRewriter.
The file was addedllvm/test/CodeGen/AMDGPU/remaining-virtual-register-operands.ll
The file was modifiedllvm/lib/CodeGen/RegAllocBase.cpp
Commit 667925d45a9ebd9c6e4ba7cac76d82fb9b735274 by nikolasklauser
[libc++] `bitset::operator[] const` should return bool

Fixes https://github.com/llvm/llvm-project/issues/10686

Reviewed By: Mordante, ldionne, var-const, #libc

Spies: jloser, libcxx-commits, arphaman

Differential Revision: https://reviews.llvm.org/D122092
The file was modifiedlibcxx/include/vector
The file was modifiedlibcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp
The file was modifiedlibcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
The file was modifiedlibcxx/include/bitset
The file was addedlibcxx/test/std/containers/sequences/vector.bool/const_reference.pass.cpp
The file was modifiedlibcxx/include/__config
Commit d8d793f29b40767925578f721b35fba352d8296c by corentinjabot
Fix compatibility with retroactive C++23 change [NFC]

Referring to capture in parameter list is now ill-formed.
This change is made to prepare for https://reviews.llvm.org/D119136
The file was modifiedllvm/include/llvm/CodeGen/LiveInterval.h
Commit 03b807d3f2999888bbe395945987af06f201c142 by msebor
Replace numbered function arguments with descriptive names.
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-5.ll
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-3.ll
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-2.ll
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-4.ll
Commit c729d5be781a8e80137c11ab28aa14d9ace148db by corentinjabot
[clang] Implement Change scope of lambda trailing-return-type

Implement P2036R3.

Captured variables by copy (explicitely or not), are deduced
correctly at the point we know whether the lambda is mutable,
and ill-formed before that.

Up until now, the entire lambda declaration up to the start
of the body would  be parsed in the parent scope, such that
captures would not be available to look up.

The scoping is changed to have an outer lambda scope,
followed by the lambda prototype and body.

The lambda scope is necessary because there may be a template scope
between the start of the lambda (to which we want to attach
the captured variable) and the prototype scope.

We also need to introduce a declaration context to attach the captured
variable to (and several parts of clang assume captures are handled from
the call operator context), before we know the type of the call operator.

The order of operations is as follow:

* Parse the init capture in the lambda's parent scope
* Introduce a lambda scope
* Create the lambda class and call operator
* Add the init captures to the call operator context and the lambda scope.
  But the variables are not capured yet (because we don't know their type).
  Instead, explicit  captures are stored in a temporary map that
  conserves the order of capture (for the purpose of having a stable order in the ast dumps).

* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.

* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context,
  we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).

* The lambda qualifiers are parsed, at this point,
  we can switch (for the second time) inside the lambda context,
  unset the flag indicating that we have not parsed the lambda qualifiers,
  record the lambda is mutable and capture the explicit variables.

* We can parse the rest of the lambda type, transform the lambda and call operator's types and also
  transform the call operator to a template function decl where necessary.

At this point, both captures and parameters can be injected in the body's scope.
When trying to capture an implicit variable, if we are before the qualifiers of a lambda,
we need to remember that the variables are still in the parent's context (rather than in the call operator's).

This is a recommit of adff142dc2 after a fix in d8d793f29b4

Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119136
The file was modifiedclang/lib/Sema/Scope.cpp
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/test/SemaCXX/warn-shadow-in-lambdas.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/www/cxx_status.html
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was addedclang/test/SemaCXX/lambda-capture-type-deduction.cpp
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/AST/DeclCXX.h
Commit d038135e1913f3d68585fae6d5cf30da25b4d31a by spatel
[SimplifyCFG] add more tests for switch to select transform; NFC

Also, make test names more descriptive -
additional coverage for D122485
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
Commit 0ef46dc0f9f3f87fc3391bf6a407e22aa139e286 by spatel
[SimplifyCFG] improve readability in switch-to-select; NFC
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit d951d937a07ea2f8fb811675dc776277d2d124d1 by Stanislav.Mekhanoshin
[AMDGPU] Increate hazard for store dwordx3/4 to 2 waitstates on gfx940

Fixes: SWDEV-327053

Differential Revision: https://reviews.llvm.org/D123687
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx940-hazards.mir
The file was modifiedllvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir
Commit 763ff89c0e0dcf77ee14c92936205bcf1b38385a by Jonas Devlieghere
[debugserver ] Un-conditionalize use of libcompression

Jason removed the include guards in 681f6c2f552f. This patch removes the
corresponding CMake logic as well.

Differential revision: https://reviews.llvm.org/D123616
The file was modifiedlldb/tools/debugserver/source/CMakeLists.txt
Commit bf38bdf7b3c8c8d84425188fc6d0db20adea39ad by msebor
Run update_test_checks.py after parameter renaming in r03b807d3f2999888bbe395945987af06f201c142 (NFC).
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-5.ll
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-3.ll
The file was modifiedllvm/test/Transforms/InstCombine/strnlen-4.ll
Commit 343f3de559c636dcec941613dca91e4fff6547a3 by Jonas Devlieghere
[lldb] Fix a bug in the decorator matching logic.

This changes the decorator helper `_match_decorator_property` to
consider `None` as the actual value as not a match. Using `None` for the
pattern continues to be considered a match.

I discovered the issue because marking a test as NO_DEBUG_INFO_TESTCASE
will cause the call to `self.getDebugInfo()` to return `None` and
incorrectly skip or XFAIL the corresponding test.

I used the above scenario to create a test for the decorators.

Differential revision: https://reviews.llvm.org/D123401
The file was addedlldb/test/API/test_utils/TestDecorators.py
The file was modifiedlldb/packages/Python/lldbsuite/test/decorators.py
Commit 8887c63e327fb726b502b3b2fad44e50de60d5aa by julian.lettner
Adapt "cross compile?" check for Apple Silicon

This piece of code tries to implement the semantics "cross compile?" to
determine CFLAGS used for test binary compilation.
```
if(ANDROID OR ${arch} MATCHES "arm|aarch64|riscv32|riscv64")
```

Since Apple Silicon, macOS runs on arm64e, so we take the wrong branch
when compiling and running tests locally "on the host" on an AS machine.

Furthermore, for Apple code, we use the separate
`get_test_cflags_for_apple_platform` function to determine these test
compiliation flags and `get_test_cc_for_arch` is only ever used in the
"compile & run on host" case, so we can short-curcuit the "cross
compile?" check here.

rdar://91446703

Differential Revision: https://reviews.llvm.org/D123633
The file was modifiedcompiler-rt/cmake/config-ix.cmake
Commit 77d2c815f50b20d18f1207e4f442e2cf8eb8cec0 by thomasraoux
[MLIR][GPU] Add GPU ops nvvm.mma.sync, nvvm.mma.ldmatrix, lane_id

This change adds three new operations to the GPU dialect: gpu.mma.sync,
gpu.mma.ldmatrix, and gpu.lane_id. The former two are meant to target
the lower level nvvm.mma.sync and nvvm.ldmatrix instructions, respectively.
Lowerings are added for the new GPU operations for conversion to
NVVM.

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D123647
The file was addedmlir/test/Conversion/GPUToNVVM/mma-sync-to-nvvm.mlir
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
Commit c709f503d7969945f7242a71325c2d4632b32b1c by pklausler
[flang] Emit a portability warning for padding in COMMON

When padding is required in a COMMON block to ensure alignment
of a component, emit a portability warning.

Differential Revision: https://reviews.llvm.org/D123706
The file was modifiedflang/lib/Semantics/compute-offsets.cpp
Commit f253a577b296cdf9a2319661079bf87fe31ccbe6 by rouson
[flang] expand the num_images test coverage

Add a test with a range of num_images() intrinsic function
invocations, including the standard-conforming but previously
untested 'team' argument.  Also test that several non-conforming
num_images() invocations generate the correct error messages.

Differential Revision: https://reviews.llvm.org/D121938
The file was removedflang/test/Semantics/num_images.f90
The file was addedflang/test/Semantics/num_images01.f90
The file was addedflang/test/Semantics/num_images02.f90
Commit f19e90bc1f1726452058fb73b5dd5453e5fa0c99 by joker.eph
Apply clang-tidy fixes for readability-identifier-naming in OpenMPDialect.cpp (NFC)
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
Commit 93b23c84399bd9f95332ebcbc170ea6edadd404e by joker.eph
Apply clang-tidy fixes for llvm-else-after-return in SCF.cpp (NFC)
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
Commit 80c600fe98ed1d0be4cc2a34d791cdaffdfb9c8e by Jonas Devlieghere
[lldb] Format LocateSymbolFileMacOSX (NFC)
The file was modifiedlldb/source/Symbol/LocateSymbolFileMacOSX.cpp
Commit 6443d0d413df7b67b149e7618c295c38869ecbcb by Jonas Devlieghere
[lldb] Remove reproducer logic from LocateSymbolFileMacOSX
The file was removedlldb/test/Shell/Reproducer/Inputs/dsymforuuid.sh
The file was modifiedlldb/source/Symbol/LocateSymbolFileMacOSX.cpp
The file was removedlldb/test/Shell/Reproducer/TestDebugSymbols.test
Commit 2f70fe1b5966621cc266eaa060348f8c64aa25ce by aeubanks
[gn build] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL=1

Matches official cmake build.
The file was modifiedllvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn
Commit 08bd7d557c23d4ff903608a19868e7f3fbc9ec20 by aeubanks
[bazel] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to 1

Matches official cmake build.
The file was modifiedutils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h
Commit d3531fc7f0053a7fe68317521ee6491da6e36733 by Vitaly Buka
[sanitizer] Don't run malloc hooks for stacktraces

Usually when we generated stacktraces the process is in error state, so
running hooks may crash the process and prevent meaningfull error report.

Symbolizer, unwinder and pthread are potential source of mallocs.

https://b.corp.google.com/issues/228110771

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D123566
The file was addedcompiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
The file was modifiedcompiler-rt/lib/msan/msan_allocator.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.cpp
Commit ab8abeaf48abb3addcbdb6136b1975b4afa3b37c by i
[Driver] Change CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to affect driver default instead of cc1 default

The current cc1 CLANG_ENABLE_OPAQUE_POINTERS=on default difference is not ideal
in that people contribute %clang_cc1 tests may assume the default ON behavior,
which will cause failures on systems set to OFF.

cc1 option default dependent on CMake options should be used prudently
(generally avoided). We prefer to limit target differences to Driver.

Change the CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL mechanism introduced in D123122
to use a driver default instead. This is similar to the mechanism used for the
-flegacy-pass-manager transition to new PM transition.

Reviewed By: #opaque-pointers, rsmith, aeubanks

Differential Revision: https://reviews.llvm.org/D123744
The file was modifiedclang/test/Driver/rewrite-objc.m
The file was addedclang/test/Driver/opaque-pointers-off.c
The file was modifiedclang/test/CMakeLists.txt
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/lit.cfg.py
The file was modifiedclang/test/Driver/rewrite-legacy-objc.m
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 18a01527eab65926405bad45a9be287677303b4c by okkwon
[mlir] Fix a typo to load lsp-mode correctly.

Differential Revision: https://reviews.llvm.org/D123745
The file was modifiedmlir/utils/emacs/mlir-lsp-client.el
Commit 34cc706b9664882c6b4564a42d3c108abd043009 by pklausler
[flang] Fold IBITS() intrinsic function

Implement constant folding of IBITS(); add test.

Differential Revision: https://reviews.llvm.org/D123707
The file was addedflang/test/Evaluate/fold-ibits.f90
The file was modifiedflang/lib/Evaluate/fold-integer.cpp
Commit c98b601b7fad9500742a9221bd8de4a86d68175e by i
[randstruct] Fix -Wunused-but-set-variable with Clang>=D122271 in -DLLVM_ENABLE_ASSERTIONS=off builds
The file was modifiedclang/lib/AST/Randstruct.cpp
Commit 65d3850efe227f0375a25d1cc862059a695698ee by thakis
[gn build] (manually) port ab8abeaf48ab
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
Commit 3a54bbb0f2860b1d4c18b84ea2bc2f8c07330ac8 by Vitaly Buka
[sanitizer] Disable malloc_hook_skip on Darwin

Followup to D123566
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp
Commit a73f7ababb4b2de65c6e2cdd832fc1f8c21207cf by pklausler
[flang] Error handling for out-of-range CASE values

Catch and nicely describe errors in CASE range values
that are out of range for the type of the SELECT CASE.

Differential Revision: https://reviews.llvm.org/D123708
The file was modifiedflang/lib/Semantics/check-case.cpp
The file was modifiedflang/test/Semantics/case01.f90
Commit ffd656a2fe5da8c3ad50fe353bcadeae009f0eb4 by fmayer
[HWASan] symbolize: use buildid index for locals.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D123644
The file was modifiedcompiler-rt/lib/hwasan/scripts/hwasan_symbolize
Commit d0828c5af9cedf13e41b92a94a8e4e0417a8cd27 by pc.wang
[RISCV][NFC] Use addExpr() instead of createExpr()

It seems to be neater.

Reviewed By: asb

Differential Revision: https://reviews.llvm.org/D123675
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
Commit ef95a6e827e5e348b310d504535ed69c0303b695 by arjunpitchanathan
[MLIR][Presburger] change some post-increments/decrements to pre-increments/decrements
The file was modifiedmlir/lib/Analysis/Presburger/IntegerRelation.cpp
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
Commit 094ad0667c5eb61817b68a65a89201310157e57d by arjunpitchanathan
[MLIR][Presburger] change some `push_back`s to `emplace_back`s
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
The file was modifiedmlir/lib/Analysis/Presburger/PWMAFunction.cpp
Commit 7226e7fd14c4e57f8ab5729990ee04bcdb1579af by smeenai
[cmake] Loosen multi-distribution restrictions

We've found that there are cases where it's useful to be able to include
the same target in multiple distributions (e.g. if you want a
distribution that's a superset of another distribution, for convenience
purposes), and that there are cases where the distribution of a target
and its umbrella can legitimately differ (e.g. the LTO library would
commonly be distributed alongside your tools, but it also falls under
the llvm-libraries umbrella, which would commonly be distributed
separately). Relax the restrictions while providing an option to restore
them (which is mostly useful to ensure you aren't accidentally placing
targets in the wrong distributions).

There could be further refinements here (e.g. excluding a target from an
umbrella if it's explicitly included in some other distribution, or
having variables to control which targets are allowed to be duplicated
or placed in a separate distribution than their umbrellas), but we can
punt on those until there's an actual need.
The file was modifiedllvm/cmake/modules/LLVMDistributionSupport.cmake
The file was modifiedllvm/docs/BuildingADistribution.rst
Commit 71d88b4ba8b0d45070b2f52b807f461fec737638 by brad
[Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D123438
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedclang/lib/Driver/ToolChains/Hexagon.h
The file was modifiedclang/lib/Driver/ToolChains/VEToolchain.h
Commit 4f7585195d59877624ecaab003131e1662b4f5b2 by stellaraccident
[NFC] Generically resolve body in FunctionOpInterface verifyBody.

Since the actual implementation class can arbitrarily shadow parts of the FunctionOpInterface exported API, access the body generically instead of via the use of the interface being defined.

Fixes https://github.com/llvm/llvm-project/issues/54807

Differential Revision: https://reviews.llvm.org/D123757
The file was modifiedmlir/include/mlir/IR/FunctionInterfaces.td
Commit e0c44544655d0f799831004962b1f22fece31c5e by bgaston2
[Darwin][ASan][Sanitizer] Fixes Sanitizer NonUnique Identifier to Account for Mac arm64 architectures.

    Current check assumes iOS as the only Apple devices running arm64.
    ```#if SANITIZER_MAC && !(defined(__arm64__) && SANITIZER_IOS)```
    Stops Apple Silicon from being flagged as requiring unique RTTI.
    This introduced unexpected behavior within the sanitizer.

    rdar://91446703

Differential Revision: https://reviews.llvm.org/D123736
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h
Commit a4f47a99aafe57db0176ef7dad1a9ba72854439f by changhu779
RISCV] Add clang builtins for CLZ instruction.

add intrinsic for CLZ

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D121915
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/include/clang/Basic/BuiltinsRISCV.def
The file was modifiedclang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
The file was modifiedclang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
Commit 836e610d9332772ad4511e86ef126a200f1ab281 by richard
Revert "[clang] Implement Change scope of lambda trailing-return-type"

This reverts commit c729d5be781a8e80137c11ab28aa14d9ace148db.

This change breaks thread safety annotations on lambdas.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
The file was modifiedclang/lib/Sema/Scope.cpp
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was removedclang/test/SemaCXX/lambda-capture-type-deduction.cpp
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
The file was modifiedclang/www/cxx_status.html
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/test/SemaCXX/warn-shadow-in-lambdas.cpp
Commit 61352a580a1f8e5818a6e5445517058d959bb86f by stellaraccident
[mlir] Introduce ml_program dialect.

Differential Revision: https://reviews.llvm.org/D120203
The file was addedmlir/test/Dialect/MLProgram/invalid.mlir
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was addedmlir/lib/Dialect/MLProgram/IR/MLProgramOps.cpp
The file was modifiedmlir/include/mlir/Dialect/CMakeLists.txt
The file was modifiedmlir/include/mlir/InitAllDialects.h
The file was addedmlir/lib/Dialect/MLProgram/IR/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/MLProgram/IR/CMakeLists.txt
The file was addedmlir/test/Dialect/MLProgram/ops.mlir
The file was addedmlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was addedmlir/include/mlir/Dialect/MLProgram/IR/MLProgram.h
The file was addedmlir/lib/Dialect/MLProgram/IR/MLProgramDialect.cpp
The file was addedmlir/lib/Dialect/MLProgram/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/MLProgram/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/MLProgram/IR/MLProgramOps.td
Commit d2b339f17683465ecd04e905f60b93aed3502555 by pklausler
[flang] Respect left tab limit with Tn editing after ADVANCE='NO'

Correct the implementation of non-advancing I/O after some testing
to ensure that T tab edit descriptors are not allowed to back up
into positions of a record prior to where it stood at the beginning
of the I/O statement.

Differential Revision: https://reviews.llvm.org/D123709
The file was modifiedflang/runtime/io-stmt.cpp
The file was modifiedflang/runtime/unit.cpp
The file was modifiedflang/runtime/unit.h
The file was modifiedflang/runtime/connection.h
The file was modifiedflang/runtime/io-stmt.h
Commit bfafa105aab05e2c243e74114739b7d37f8ab0be by i
[Driver] Simplify some hasFlag patterns with addOptInFlag/addOptOutFlag. NFC
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 7c87d75d74f3c2943b286b239ec6ff96fc5109c7 by ruiling.song
test: Don't depend on behavior of switch lower in one test. NFC

This is a preliminary change to update the test so that it does not
depend on how switch-case will be lowered. The following change will
lower switch-case more optimally that will make the test no longer
valid.

Reviewed by: arsenm

Differential Revision: https://reviews.llvm.org/D123606
The file was modifiedllvm/test/CodeGen/AMDGPU/ipra-return-address-save-restore.ll
Commit 1e01f95057a702658a88879223586fde0122f038 by ruiling.song
LowerSwitch: Avoid inserting NewDefault block

The NewDefault was used to simplify the updating of PHI nodes, but it
causes some inefficiency for target that will run structurizer later. For
example, for a simple two-case switch, the extra NewDefault is causing
unstructured CFG like:

        O
       / \
      O   O
     / \ / \
    C1  ND C2
     \  |  /
      \ | /
        D

The change is to avoid the ND(NewDefault) block, that is we will get a
structured CFG for above example like:

        O
       / \
      /   \
     O     O
    / \   / \
   C1  \ /  C2
    \-> D <-/

The IR change introduced by this patch should be trivial to other targets,
so I am doing this unconditionally.

Fall-through among the cases will also cause unstructured CFG, but it need
more work and will be addressed in a separate change.

Reviewed by: arsenm

Differential Revision: https://reviews.llvm.org/D123607
The file was modifiedllvm/test/Transforms/LowerSwitch/feature.ll
The file was modifiedllvm/test/Transforms/UnifyLoopExits/switch.ll
The file was modifiedllvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll
The file was modifiedllvm/test/Transforms/LowerSwitch/2014-06-23-PHIlowering.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/multilevel-break.ll
The file was modifiedllvm/lib/Transforms/Utils/LowerSwitch.cpp
The file was modifiedllvm/test/Transforms/Util/lowerswitch.ll
The file was modifiedllvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll
The file was modifiedllvm/test/Transforms/FixIrreducible/switch.ll
Commit 73da7eed8fac84c9005518740f12d58389998d95 by i
[clang-tidy] Add portability-std-allocator-const check

Report use of ``std::vector<const T>`` (and similar containers of const
elements). These are now allowed in standard C++ due to undefined
``std::allocator<const T>``. They do not compile with libstdc++ or MSVC.
Future libc++ will remove the extension (D120996).
See docs/clang-tidy/checks/portability-std-allocator-const.rst for detail.

I have attempted clean-up in a large code base. Here are some statistics:

* 98% are related to the container `std::vector`, among `deque/forward_list/list/multiset/queue/set/stack/vector`.
* 24% are related to `std::vector<const std::string>`.
* Both `std::vector<const absl::string_view>` and `std::vector<const int>` contribute 2%. The other contributors spread over various class types.

The check can be useful to other large code bases and may serve as an example
for future libc++ strictness improvement.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D123655
The file was modifiedclang-tools-extra/clang-tidy/portability/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h
The file was addedclang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was addedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp
Commit bd4463bebfe8545c8e626fc7828beac3509b656f by llvmgnsyncbot
[gn build] Port 73da7eed8fac
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn
Commit 26dbb93704bf39a198909d04ad8c49b4bde46cce by i
[Driver] Fix -fpascal-strings on Darwin
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit 376c2df0baeb6c7bf1b37d4ef25844d77d298cb3 by brad
[Driver] Sort Generic_GCC::IsIntegratedAssemblerDefault, NFC
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
Commit c36fbe05a719cd5c88b5f655f3d49d6b4e32ab51 by Vitaly Buka
Revert "[sanitizer] Don't run malloc hooks for stacktraces"

Msan crashes on clang-s390x-linux bot

This reverts commit d3531fc7f0053a7fe68317521ee6491da6e36733.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
The file was removedcompiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
The file was modifiedcompiler-rt/lib/msan/msan_allocator.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Commit 392d55c1e2d777e9843864e1022d476599334dc9 by uday
[MLIR][GPU] Add canonicalization patterns for folding simple gpu.wait ops.

* Fold away redundant %t = gpu.wait async + gpu.wait [%t] pairs.

* Fold away %t = gpu.wait async ... ops when %t has no uses.

* Fold away gpu.wait [] ops.

* In case of %t1 = gpu.wait async [%t0], replace all uses of %t1
  with %t0.

Differential Revision: https://reviews.llvm.org/D121878
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/test/Dialect/GPU/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
Commit 35ea326047ef1220f26dc69593db9842a7dfeec1 by carl.ritson
[AMDGPU] Try to avoid inserting duplicate s_inst_prefetch

Check for existing s_inst_prefetch instructions when
configuring prefetches during loop alignment.

Reviewed By: rampitec, foad

Differential Revision: https://reviews.llvm.org/D123569
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/no-dup-inst-prefetch.ll
Commit ea47373af4bf4d1a7f4b8f9b23da55220670ae37 by mahesha.comp
[AMDGPU][NFC] Organize code around reserving VGPR32 for AGPR copy.

This is an NFC patch in preparation to fix a bug related to always
reserving VGPR32 for AGPR copy.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D123651
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
Commit 3766ca75f87452736f8e4718b75de0eb3b3dcc4e by uday
[MLIR] Fix missing return statement warning in PatternMatch.h

Fix missing return statement warning in PatternMatch.h. NFC.

```
mlir/include/mlir/IR/PatternMatch.h:983:3: warning: no return statement in
function returning non-void [-Wreturn-type]
```

Differential Revision: https://reviews.llvm.org/D123756
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
Commit 38706dd9401407fa9de649f6acbb2f2bec756279 by Lian.Wang
[RISCV][NFC] Refactor patterns for Multiply Add instructions

Reviewed By: craig.topper, frasercrmck

Differential Revision: https://reviews.llvm.org/D123355
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Commit 3100893f633facf7a02f5403a58f665cddb33825 by Lian.Wang
[RISCV] Remove sext_inreg+riscv_grev/riscv_gorc isel patterns

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D123565
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoZb.td
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbp.ll
Commit 62d4686be3a2cd864b92b16a4ff7137be8d15e89 by momchil.velikov
Revert "[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer"

This reverts commit ecbf32dd88fc91b4fe709dc14bb3493dda6e8854.

It's possible this patch is the reason for an asertion failure
`!NodePtr->isKnownSentinel()` in `AArch64LoadStoreOpt::mergeUpdateInsn`
(https://lab.llvm.org/buildbot/#/builders/185/builds/1555) reverting while I
investigate.
The file was modifiedllvm/test/CodeGen/AArch64/fcopysign.ll
The file was modifiedllvm/test/CodeGen/AArch64/swifttail-call.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fp128.ll
The file was modifiedllvm/test/CodeGen/AArch64/tail-call.ll
Commit defce20cbb774ebc818a15445bc21a38739afad6 by jay.foad
[AMDGPU] Add a test for flat scratch SVS addressing
The file was addedllvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
Commit d79ad2f1dbc2db63121620f55d6cfa915f2733ac by Jan Svoboda
[clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective()

This patch changes type of the `File` parameter in `PPCallbacks::InclusionDirective()` from `const FileEntry *` to `Optional<FileEntryRef>`.

With the API change in place, this patch then removes some uses of the deprecated `FileEntry::getName()` (e.g. in `DependencyGraph.cpp` and `ModuleDependencyCollector.cpp`).

Reviewed By: dexonsmith, bnbarham

Differential Revision: https://reviews.llvm.org/D123574
The file was modifiedclang/tools/libclang/CXIndexDataConsumer.cpp
The file was modifiedclang-tools-extra/clang-move/Move.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeInserter.cpp
The file was modifiedclang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
The file was modifiedclang/lib/Frontend/PrintPreprocessedOutput.cpp
The file was modifiedclang-tools-extra/pp-trace/PPCallbacksTracker.h
The file was modifiedclang/lib/Frontend/DependencyFile.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang-tools-extra/clangd/Headers.cpp
The file was modifiedclang-tools-extra/clangd/unittests/ParsedASTTests.cpp
The file was modifiedclang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp
The file was modifiedclang-tools-extra/modularize/CoverageChecker.cpp
The file was modifiedclang-tools-extra/clangd/unittests/HeadersTests.cpp
The file was modifiedclang/unittests/Lex/PPCallbacksTest.cpp
The file was modifiedclang-tools-extra/clang-tidy/bugprone/SuspiciousIncludeCheck.cpp
The file was modifiedclang-tools-extra/clangd/Headers.h
The file was modifiedclang-tools-extra/clangd/index/IndexAction.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
The file was modifiedclang/include/clang/Lex/PPCallbacks.h
The file was modifiedclang/lib/Lex/PreprocessingRecord.cpp
The file was modifiedclang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
The file was modifiedclang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.h
The file was modifiedclang/lib/Frontend/Rewrite/InclusionRewriter.cpp
The file was modifiedclang-tools-extra/modularize/PreprocessorTracker.cpp
The file was modifiedclang-tools-extra/pp-trace/PPCallbacksTracker.cpp
The file was modifiedclang/lib/Frontend/ModuleDependencyCollector.cpp
The file was modifiedclang-tools-extra/clang-tidy/llvm/IncludeOrderCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
The file was modifiedclang/lib/CodeGen/MacroPPCallbacks.cpp
The file was modifiedclang/lib/CodeGen/MacroPPCallbacks.h
The file was modifiedclang-tools-extra/clangd/ParsedAST.cpp
The file was modifiedclang/tools/libclang/CXIndexDataConsumer.h
The file was modifiedclang-tools-extra/clang-tidy/readability/DuplicateIncludeCheck.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/include/clang/Lex/PreprocessingRecord.h
The file was modifiedclang/tools/libclang/Indexing.cpp
The file was modifiedclang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp
The file was modifiedclang/lib/Frontend/DependencyGraph.cpp
The file was modifiedclang/lib/Frontend/PrecompiledPreamble.cpp
The file was modifiedclang/lib/Lex/PPDirectives.cpp
Commit 8de6cb129736bdb47c8d6305a8bf5033fbac9f2f by andrzej.warzynski
[flang] Fix DYLIB builds

https://reviews.llvm.org/D123211 broke builds that set both
`LLVM_BUILD_LLVM_DYLIB` and `LLVM_LINK_LLVM_DYLIB` (see [1]). This patch
fixes that.

The build failure was caused by the fact that the LLVMPasses library,
which is an LLVM "component", was listed directly as link-time
dependency. Instead, one should use `LINK_COMPONENTS` in CMake files. I
made an identical mistake recently and then subsequently fixed it in
https://reviews.llvm.org/D121461 - please visit that revision for more
detail.

I'm merging this without a review. The change is straightforward, we
recently discussed it and I was able to confirm locally that it fixes
the build issue.

[1] https://lab.llvm.org/buildbot/#/builders/177/builds/4619
The file was modifiedflang/lib/Frontend/CMakeLists.txt
Commit 49b39c4f2e4b0dfac3eff10cfed309a13a243c59 by Stanislav.Mekhanoshin
[AMDGPU] Remove redundand RequiredAlignment assignment. NFCI.

Differential Revision: https://reviews.llvm.org/D123699
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 6ba1b9075dc1fef6c32eafa71495bfec803321e4 by hokein.wu
Reland "[AST] Add a new TemplateKind for template decls found via a using decl.""

This is the template version of https://reviews.llvm.org/D114251.

This patch introduces a new template name kind (UsingTemplateName). The
UsingTemplateName stores the found using-shadow decl (and underlying
template can be retrieved from the using-shadow decl). With the new
template name, we can be able to find the using decl that a template
typeloc (e.g. TemplateSpecializationTypeLoc) found its underlying template,
which is useful for tooling use cases (include cleaner etc).

This patch merely focuses on adding the node to the AST.

Next steps:
- support using-decl in qualified template name;
- update the clangd and other tools to use this new node;
- add ast matchers for matching different kinds of template names;

Differential Revision: https://reviews.llvm.org/D123127
The file was modifiedclang/lib/AST/ODRHash.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/include/clang/AST/PropertiesBase.td
The file was addedclang/unittests/AST/TemplateNameTest.cpp
The file was modifiedclang/test/CXX/temp/temp.deduct.guide/p3.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/AST/Type.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
The file was modifiedclang/lib/AST/ASTStructuralEquivalence.cpp
The file was modifiedclang/unittests/AST/CMakeLists.txt
The file was modifiedclang/include/clang/AST/TextNodeDumper.h
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
The file was addedclang/test/AST/ast-dump-using-template.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/AST/TemplateName.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang-tools-extra/clangd/DumpAST.cpp
The file was modifiedclang/lib/AST/TemplateName.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
Commit 04a3f3f167dbf90fb11524c00af5313c2b135ad3 by llvmgnsyncbot
[gn build] Port 6ba1b9075dc1
The file was modifiedllvm/utils/gn/secondary/clang/unittests/AST/BUILD.gn
Commit 6c93e1d329e6c6ef828ec63c66f4cb39ee9cb9ce by andrzej.warzynski
[flang][driver] Add support for `-mmlir`

The semantics of `-mmlir` are identical to `-mllvm`. The only notable
difference is that `-mmlir` options should be forwarded to MLIR rather
than LLVM.

Note that MLIR llvm::cl options are lazily constructed on demand (see
the definition of options in PassManagerOptions.cpp). This means that:
  * MLIR global options are only visible when explicitly initialised and
    displayed only when using `-mmlir --help`,
  * Flang and LLVM global options are always visible and displayed when
    using either `-mllvm -help` or `-mmlir --help`.

In other words, `-mmlir --help` is a superset of `-mllvm --help`. This is not
ideal, but we'd need to refactor all option definitions in Flang and
LLVM to improve this. I suggesting leaving this for later.

Differential Revision: https://reviews.llvm.org/D123297
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedflang/include/flang/Frontend/FrontendOptions.h
The file was addedflang/test/Driver/mllvm_vs_mmlir.f90
The file was modifiedclang/lib/Driver/ToolChains/Flang.cpp
The file was modifiedflang/test/Driver/driver-help.f90
The file was modifiedflang/test/Driver/driver-help-hidden.f90
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedflang/lib/FrontendTool/CMakeLists.txt
Commit 2d06420879d7c139cb40e9a4dc3677897672c1ec by joker.eph
Apply clang-tidy fixes for performance-for-range-copy in SCF.cpp (NFC)
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
Commit 35f48edb91fff12e52373dd48cea2133ce52f37f by joker.eph
Apply clang-tidy fixes for llvm-qualified-auto in VectorTransforms.cpp (NFC)
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
Commit d2bcb0a129f1e60d291fe967426e3686d9ea0587 by fruitclover
[flang] Allow IMPLICIT NONE(EXTERNAL) with GenericDetails

Restrictions of IMPLICIT NONE(EXTERNAL) prohibits usage of c_associated from
iso_c_binding (with explicit interface) without external definiton - relax
associated check.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D120971
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was addedflang/test/Semantics/implicit12.f90
Commit ba038a308021203d9d565b96c2eea5bd2f231ce2 by fruitclover
[flang] Do not ICE on out-of-range data statement designator

Print error message instead of assert trigger.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D123132
The file was modifiedflang/lib/Evaluate/fold-designator.cpp
The file was modifiedflang/test/Semantics/data06.f90
Commit 68efe6356551237e967c23c1bf5fd01dc4a2fc90 by fruitclover
[flang] Fix ICE for sqrt(0.0) evaluation

    During real range reduction to [0.5, 4) with

           SQRT(2**(2a) * x) = SQRT(2**(2a)) * SQRT(x) = 2**a * SQRT(x)

    we fall into inf. recursion if IsZero() == true.

    Explicitly handle SQRT(0.0) instead of additional checks during folding. Also
    add helpers for +0.0/-0.0 generation to clean up a bit.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D123131
The file was modifiedflang/lib/Evaluate/real.cpp
The file was modifiedflang/test/Evaluate/folding28.f90
The file was modifiedflang/include/flang/Evaluate/real.h
Commit 2c14cdf831b677063a6518904b765c1f08d8557b by flo
[VPlan] Turn external defs in Value -> VPValue mapping.

This addresses an existing TODO by keeping a mapping of external IR
Value * definitions wrapped in VPValues for use in a VPlan.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D123700
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 0c44115e5120167fc573e36dd878f4f95f5d63e6 by paul.walker
[SVE] Add support for non-element-type sized scaling when lowering MGATHER/MSCATTER.

The lowering code did not use the scale operand of MGATHER/MSCATTER
nodes, but instead assumed scaled indices were always scaled based
on the element type of the memory type. This patch adds the missing
support by rewritting the nodes as unscaled variants.

Differential Revision: https://reviews.llvm.org/D123670
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-masked-scatter.ll
The file was modifiedllvm/include/llvm/CodeGen/ValueTypes.h
The file was modifiedllvm/test/CodeGen/AArch64/sve-masked-gather.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/Support/MachineValueType.h
Commit 2366a43b3c50be09f70ba4bd795d95349ab90908 by zinenko
[mlir] initial support for opaque pointers in the LLVM dialect

LLVM IR has introduced and is moving forward with the concept of opaque
pointers, i.e. pointer types that are not carrying around the pointee type.
Instead, memory-related operations indicate the type of the data being accessed
through the opaque pointer. Introduce the initial support for opaque pointers
in the LLVM dialect:

  - `LLVMPointerType` to support omitting the element type;
  - alloca/load/store/gep to support opaque pointers in their operands and
    results; this requires alloca and gep to store the element type as an
    attribute;
  - memory-related intrinsics to support opaque pointers in their operands;
  - translation to LLVM IR for the ops above is no longer using methods
    deprecated in LLVM API due to the introduction of opaque pointers.

Unlike LLVM IR, MLIR can afford to support both opaque and non-opaque pointers
at the same time and simplify the transition. Translation to LLVM IR of MLIR
that involves opaque pointers requires the LLVMContext to be configured to
always use opaque pointers.

Reviewed By: wsmoses

Differential Revision: https://reviews.llvm.org/D123310
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/test/Dialect/LLVMIR/types.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/TypeDetail.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Target/LLVMIR/TypeToLLVM.cpp
The file was modifiedmlir/docs/Dialects/LLVM.md
The file was addedmlir/test/Target/LLVMIR/opaque-ptr.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was addedmlir/test/Dialect/LLVMIR/opaque-ptr.mlir
Commit 09141f1adf2dd400e0104e87270f7b7fb6a5cd8d by zinenko
[mlir] Split intrinsics out of LLVMOps.td

Move the operations that correspond to LLVM IR intrinsics in a separate .td
file. This makes it easier to maintain the intrinsics and decreases the compile
time of LLVMDialect.cpp by ~25%.

Depends On D123310

Reviewed By: wsmoses, jacquesguan

Differential Revision: https://reviews.llvm.org/D123315
The file was addedmlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was addedmlir/lib/Dialect/LLVMIR/IR/LLVMIntrinsicOps.cpp
The file was modifiedmlir/docs/Dialects/LLVM.md
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
Commit d064c4801c927ad5a706b66eaee4814fcc5ea45e by zinenko
[mlir] Introduce Transform dialect

This dialect provides operations that can be used to control transformation of
the IR using a different portion of the IR. It refers to the IR being
transformed as payload IR, and to the IR guiding the transformation as
transform IR.

The main use case for this dialect is orchestrating fine-grain transformations
on individual operations or sets thereof. For example, it may involve finding
loop-like operations with specific properties (e.g., large size) in the payload
IR, applying loop tiling to those and only those operations, and then applying
loop unrolling to the inner loops produced by the previous transformations. As
such, it is not intended as a replacement for the pass infrastructure, nor for
the pattern rewriting infrastructure. In the most common case, the transform IR
will be processed and applied to payload IR by a pass. Transformations
expressed by the transform dialect may be implemented using the pattern
infrastructure or any other relevant MLIR component.

This dialect is designed to be extensible, that is, clients of this dialect are
allowed to inject additional operations into this dialect using the newly
introduced in this patch `TransformDialectExtension` mechanism. This allows the
dialect to avoid a dependency on the implementation of the transformation as
well as to avoid introducing dialect-specific transform dialects.

See https://discourse.llvm.org/t/rfc-interfaces-and-dialects-for-precise-ir-transformation-control/60927.

Reviewed By: nicolasvasilache, Mogball, rriddle

Differential Revision: https://reviews.llvm.org/D123135
The file was addedmlir/test/Dialect/Transform/test-interpreter.mlir
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
The file was modifiedutils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/lib/Dialect/Transform/IR/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt
The file was addedmlir/lib/Dialect/Transform/CMakeLists.txt
The file was addedmlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was addedmlir/lib/Dialect/Transform/IR/TransformDialect.cpp
The file was addedmlir/test/Dialect/Transform/test-dialect-injection.mlir
The file was addedmlir/test/lib/Dialect/Transform/CMakeLists.txt
The file was addedmlir/test/lib/Dialect/Transform/TestTransformDialectExtension.h
The file was addedmlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
The file was addedmlir/test/lib/Dialect/Transform/TestTransformDialectInterpreter.cpp
The file was addedmlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
The file was modifiedmlir/lib/Dialect/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/Transform/CMakeLists.txt
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.td
The file was modifiedmlir/include/mlir/InitAllDialects.h
The file was addedmlir/test/lib/Dialect/Transform/lit.local.cfg
Commit 53fd8db79192f38feaec11c761e0d0fbdf1516b0 by david.truby
[Clang][AArch64][SVE] Allow subscript operator for SVE types

Undefined behaviour is just passed on to extract_element when the
index is out of bounds. Subscript on svbool_t is not allowed as
this doesn't really have meaningful semantics.

Differential Revision: https://reviews.llvm.org/D122732
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was addedclang/test/Sema/aarch64-sve-vector-subscript-ops.c
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was addedclang/test/CodeGen/aarch64-sve-vector-subscript-ops.c
Commit 66c44b20b4a538fbb1bae8bc9533c25f5a006bd5 by david.truby
[Clang][AArch64][SVE] Add shift operators for SVE vector types

This patch enables shift operators on SVE vector types, as well as
supporting vector-scalar shift operations.
Shifts by a scalar that is wider than the contained type in the
vector are permitted but as in the C standard if the value is larger
than the width of the type the behavior is undefined.

Differential Revision: https://reviews.llvm.org/D123303
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was addedclang/test/CodeGen/aarch64-sve-vector-shift-ops.c
The file was addedclang/test/Sema/aarch64-sve-vector-shift-ops.c
The file was modifiedclang/test/SemaCXX/sizeless-1.cpp
The file was modifiedclang/test/Sema/sizeless-1.c
Commit a305d8f44ec8e91739c1f1e714cbfd19acc80489 by llvm-dev
[X86] Adjust fsetcc/fmin/fmax costs to match SoG (Issue #54889)

znver1/2 models were incorrectly modelling these as 3 cycle latency instructions on the wrong pipe and znver1 ymm variants also require double pumping.

Now matches AMD SoG, Agner and instlatx64 numbers.

Thanks to @fabian-r for the report
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver2.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver1.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
Commit 52d346e715cfaa08a71cdc8982627a3a598e47dd by paul.robinson
[PS4] NFC refactor of PS4 toolchain class, prep for PS5
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.h
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.cpp
Commit bc408afbfebef71460a7f8b4313021956633ef21 by antiagainst
[mlir][vector] Fold splat constant transpose

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D123595
The file was modifiedmlir/lib/Dialect/Vector/IR/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
Commit e54236dfb5982bc8358bad62a27e6048f06a0272 by antiagainst
[mlir][vector] Cast away leading one dims for insert ops

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D123621
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
Commit a29d9ba1f584745c1a169da5d08f10b27623cfb0 by thakis
Revert "[gn build] Port 73da7eed8fac"

This reverts commit bd4463bebfe8545c8e626fc7828beac3509b656f.
Breaks check-clang-tools on Windows, see comment on
https://reviews.llvm.org/D123655
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn
Commit 33ab2e3c84fe877f742f2c361c0a97b3451610c3 by llvmgnsyncbot
[gn build] Port 73da7eed8fac
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn
Commit dd47ab750b584a320bf61d58a3965a03f3871c1b by thakis
Revert "[clang-tidy] Add portability-std-allocator-const check"

This reverts commit 73da7eed8fac84c9005518740f12d58389998d95.
Breaks check-clang-tools on Windows, see comment on
https://reviews.llvm.org/D123655
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was removedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h
The file was modifiedclang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
The file was removedclang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp
The file was modifiedclang-tools-extra/clang-tidy/portability/CMakeLists.txt
The file was removedclang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst
The file was removedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
Commit 65fcd31ef153b5f8f17140483fb5de3e1c2deff4 by llvmgnsyncbot
[gn build] Port dd47ab750b58
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn
Commit e5a5e008256c20f4c2d870d687eda4caef25f9ea by zinenko
[mlir] fix compiler warnings

-Wsign-compare and -Wunsued-value in the recently introduced code.
The file was modifiedmlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
The file was modifiedmlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
Commit 0ff322246bcd5c20fdda5e6d1215ee961db2abdc by qiaopeixin
[flang] Fix float-number representation bug

The float number is represented as (-1)^s * 1.f * 2^(-127) for 32-bit,
where s is the signed flag, f is the mantissa. When the exponent bits
are all zeros, the float number is represented as (-1)^s * 0.f *2^(-126)
for 32-bit, in which case, the intPart is '0'.

Reviewed By: Jean Perier

https://reviews.llvm.org/D123673
The file was modifiedflang/lib/Evaluate/real.cpp
The file was modifiedflang/unittests/Evaluate/real.cpp
The file was addedflang/test/Lower/Intrinsics/real.f90
Commit 0b55a8dc6fe81a9b3f8c67ec0b5192baa4bc80b8 by qiaopeixin
[flang] Fix intrinsic interface for DIMAG/DCONJG

The intrinsics DREAL, DIMAG, and DCONJG are from Fortran 77 extensions.
For DREAL, the type of argument is extended to any complex. For DIMAG
and DCONJG, the type of argument for them should be complex(8). For DIMAG,
the result type should be real(8). For DCONJG, the result type should be
complex(8). Fix the intrinsic interface for them and add test cases for
the semantic checks and the lowering.

Reviewed By: Jean Perier

Differential Revision: https://reviews.llvm.org/D123459
The file was modifiedflang/unittests/Evaluate/intrinsics.cpp
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
The file was addedflang/test/Semantics/intrinsics01.f90
The file was addedflang/test/Lower/Intrinsics/dreal.f90
The file was addedflang/test/Lower/Intrinsics/dconjg.f90
The file was addedflang/test/Lower/Intrinsics/dimag.f90
Commit 58d9ab70aef3d7ad5b34c525afc430e122409054 by nikolasklauser
[libc++][ranges] Implement ranges::minmax and ranges::minmax_element

Reviewed By: var-const, #libc, ldionne

Spies: sstefan1, ldionne, BRevzin, libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D120637
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/__functional/identity.h
The file was addedlibcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax.pass.cpp
The file was modifiedlibcxx/include/algorithm
The file was addedlibcxx/include/__algorithm/ranges_minmax.h
The file was modifiedlibcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
The file was modifiedlibcxx/include/__algorithm/minmax_element.h
The file was addedlibcxx/include/__algorithm/ranges_minmax_element.h
The file was modifiedlibcxx/benchmarks/algorithms.bench.cpp
The file was modifiedlibcxx/test/libcxx/private_headers.verify.cpp
The file was modifiedlibcxx/include/module.modulemap
The file was modifiedlibcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp
The file was addedlibcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax_element.pass.cpp
The file was modifiedlibcxx/docs/Status/RangesAlgorithms.csv
The file was modifiedlibcxx/include/__algorithm/minmax.h
The file was addedlibcxx/test/libcxx/algorithms/alg.sorting/assert.min.max.pass.cpp
The file was modifiedlibcxx/docs/Status/Cxx20Issues.csv
The file was modifiedlibcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
The file was modifiedlibcxx/include/type_traits
Commit 5bf9aa38abc6ed8d959e2401639b97deadccd225 by llvmgnsyncbot
[gn build] Port 58d9ab70aef3
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 369adba0435e22722c6291142b2ce4265ee36ca3 by andrew.savonichev
[NVPTX] 64-bit atom.{and,or,xor,min,max} require sm_32 or higher

PTX ISA spec, s9.7.12.4. Parallel Synchronization and Communication
Instructions: atom

Target ISA Notes
64-bit atom.{and,or,xor,min,max} require sm_32 or higher.

Differential Revision: https://reviews.llvm.org/D123038
The file was modifiedllvm/lib/Target/NVPTX/NVPTXIntrinsics.td
The file was modifiedllvm/test/CodeGen/NVPTX/atomics.ll
The file was modifiedllvm/lib/Target/NVPTX/NVPTXInstrInfo.td
Commit 230f32696497bf788ac7f4365aecabb26f6670f1 by andrew.savonichev
[NVPTX] shfl.sync is introduced in PTX 6.0

PTX ISA spec, s9.7.8.6. Data Movement and Conversion Instructions:
shfl.sync

PTX ISA Notes
Introduced in PTX ISA version 6.0.

Target ISA Notes
Requires sm_30 or higher.

Differential Revision: https://reviews.llvm.org/D123039
The file was modifiedllvm/test/CodeGen/NVPTX/shfl-sync-p.ll
The file was modifiedllvm/test/CodeGen/NVPTX/shfl-sync.ll
The file was modifiedllvm/lib/Target/NVPTX/NVPTXIntrinsics.td
Commit 4cef5c397d5fae8256318e8c74a2653f5c54eeb7 by andrew.savonichev
[NVPTX] .attribute(.managed) is only supported for sm_30 and PTX 4.0

PTX ISA spec, s5.4.8. Variable Attribute Directive: .attribute

PTX ISA Notes
Introduced in PTX ISA version 4.0.

Target ISA Notes
.managed attribute requires sm_30 or higher.

Differential Revision: https://reviews.llvm.org/D123040
The file was modifiedllvm/test/CodeGen/NVPTX/managed.ll
The file was modifiedllvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
Commit 32949401a86aea1cfc0a04bef566c2af30c82e39 by andrew.savonichev
[NVPTX] Avoid dots in global names

It seems that ptxas cannot parse them:
ptxas fatal: Parsing error near '.2': syntax error

Differential Revision: https://reviews.llvm.org/D123041
The file was modifiedllvm/test/CodeGen/NVPTX/b52037.ll
The file was modifiedllvm/test/CodeGen/NVPTX/shfl.ll
The file was modifiedllvm/test/CodeGen/NVPTX/vote.ll
The file was modifiedllvm/test/CodeGen/NVPTX/ld-st-addrrspace.py
The file was modifiedllvm/test/CodeGen/NVPTX/shfl-sync-p.ll
The file was modifiedllvm/test/CodeGen/NVPTX/shfl-sync.ll
The file was modifiedllvm/test/CodeGen/NVPTX/match.ll
The file was modifiedllvm/test/CodeGen/NVPTX/shfl-p.ll
The file was modifiedllvm/test/CodeGen/NVPTX/barrier.ll
Commit b6183a57a10b03bdad83e4bef02990673c155011 by andrew.savonichev
[NVPTX] Fix barrier.ll LIT test

The second parameter should be a multiple of the warp size (32).

PTX ISA spec, s9.7.12.1. Parallel Synchronization and Communication
Instructions: bar, barrier

barrier.sync{.aligned}      a{, b};

Operand b specifies the number of threads participating in the
barrier. If no thread count is specified, all threads in the CTA
participate in the barrier. When specifying a thread count, the value
must be a multiple of the warp size.

Differential Revision: https://reviews.llvm.org/D123470
The file was modifiedllvm/test/CodeGen/NVPTX/barrier.ll
Commit 1ba8f4f67dcf52cf628caa6e84c3526e936fa6b4 by david.green
[AArch64] Move v4i8 concat load lowering to a combine.

The existing code was not updating the uses of loads that it recreated,
leading to incorrect chains which could break the ordering between
nodes. This moves the code to a combine instead, and makes sure we
update the chain references. This does mean it happens earlier -
potentially before the concats are simplified. This can lead to
inefficiencies in the codegen, which will be fixed in followups.
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/insert-extend.ll
The file was modifiedllvm/test/CodeGen/AArch64/insert-subvector.ll
Commit 4ff70dba3839ce9510499a79f93522b67cab504c by fabian.wolff
[libc++] Fix undefined behavior in `std::filebuf`

Fixes https://github.com/llvm/llvm-project/issues/49267.
Fixes https://github.com/llvm/llvm-project/issues/49282.
Fixes https://github.com/llvm/llvm-project/issues/49789.

Reviewed By: ldionne

Differential Revision: https://reviews.llvm.org/D122257
The file was modifiedlibcxx/include/fstream
The file was addedlibcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap.pass.cpp
Commit ef141aec3c81b33bd2022f258e6ca8d4b1611fd3 by pklausler
[flang] Improve appearance of message attachments

Error messages can have a list of attachments; these are used to point
to related source locations, supply additional information, and to
encapsulate error messages that were *not* emitted in a given context
to explain why a warning was justified.

This patch adds a message severity ("Because") for that last case,
and extends to AttachTo() API to provide a means for overriding
the severity of an attached message.

Some existing message attachments had their severities adjusted,
now that we're printing them.  And operator==() for Message was
cleaned up while debugging after I noticed that it was recursively
O(N**2) and subject to returning a false positive.

Differential Revision: https://reviews.llvm.org/D123710
The file was modifiedflang/include/flang/Parser/message.h
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Semantics/check-select-rank.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/call25.f90
The file was modifiedflang/lib/Parser/message.cpp
The file was modifiedflang/lib/Semantics/check-call.cpp
Commit 11f47b791f96ca04b4cf9233d72febc704606dcf by jhuber6
[OpenMP] Make offloading sections have the SHF_EXCLUDE flag

Offloading sections can be embedded in the host during codegen via a
section. This section was originally marked as metadata to prevent it
from being loaded, but these sections are completely unused at runtime
so the linker should automatically drop them from the final executable
or shard library. This flag adds support for the SHF_EXCLUDE flag in
target lowering and uses it.

Reviewed By: JonChesterfield, MaskRay

Differential Revision: https://reviews.llvm.org/D122987
The file was modifiedllvm/include/llvm/MC/SectionKind.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modifiedllvm/test/CodeGen/X86/offload_sections.ll
Commit e471ba3d0122d4c6601029d81c385cb6ebb9d7a4 by jhuber6
[Object] Add binary format for bundling offloading metadata

We need to embed certain metadata along with a binary image when we wish
to perform a device-linking job on it. Currently this metadata was
embedded in the section name of the data itself. This worked, but made
adding new metadata very difficult and didn't work if the user did any
sort of section linking.

This patch introduces a custom binary format for bundling offloading
metadata with a device object file. This binary format is fundamentally
a simple string map table with some additional data and an embedded
image. I decided to use a custom format rather than using an existing
format (ELF, JSON, etc) because of the specialty use-case of this. We
need a simple binary format that can be concatenated without requiring
other external dependencies.

This extension will make it easier to extend the linker wrapper's
capabilties with whatever data is necessary. Eventually this will allow
us to remove all the external arguments passed to the linker wrapper and
embed it directly in the host's linker so device linking behaves exactly
like host linking.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D122069
The file was addedllvm/unittests/Object/OffloadingTest.cpp
The file was modifiedllvm/lib/Object/CMakeLists.txt
The file was addedllvm/lib/Object/OffloadBinary.cpp
The file was modifiedllvm/unittests/Object/CMakeLists.txt
The file was addedllvm/include/llvm/Object/OffloadBinary.h
Commit 4f1065156b828f447b8b1a6848c3264184b5c860 by llvmgnsyncbot
[gn build] Port e471ba3d0122
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Object/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Object/BUILD.gn
Commit 1fdf952deeb9a02aa34794af3c1a7d13a30e068e by chris.bieneman
[HLSL] Add Semantic syntax, and SV_GroupIndex

HLSL has a language feature called Semantics which get attached to
declarations like attributes and are used in a variety of ways.

One example of semantic use is here with the `SV_GroupIndex` semantic
which, when applied to an input for a compute shader is pre-populated
by the driver with a flattened thread index.

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

# Conflicts:
# clang/include/clang/Basic/Attr.td
# clang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/Parse/ParseDecl.cpp
The file was modifiedclang/include/clang/Basic/Attributes.h
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was addedclang/test/SemaHLSL/Semantics/entry_parameter.hlsl
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was addedclang/test/ParserHLSL/lit.local.cfg
The file was modifiedclang/include/clang/Parse/Parser.h
The file was addedclang/lib/Parse/ParseHLSL.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
The file was modifiedclang/include/clang/Basic/AttributeCommonInfo.h
The file was addedclang/test/ParserHLSL/semantic_parsing.hlsl
The file was modifiedclang/lib/Parse/CMakeLists.txt
The file was modifiedclang/include/clang/Basic/Attr.td
Commit f80e47884cf676dfa69dcda1ffa7479b47444f8a by llvmgnsyncbot
[gn build] Port 1fdf952deeb9
The file was modifiedllvm/utils/gn/secondary/clang/lib/Parse/BUILD.gn
Commit d43d9e1d5c98e64db1054b4fb91d044299d3f717 by kevin.neal
[FPEnv][InstSimplify] Fold fsub -0.0, -X ==> X

Currently the fsub optimizations in InstSimplify don't know how to fold
-0.0 - (-X) to X when the constrained intrinsics are used. This adds partial
support. The rest of the support will come later with work on the IR
matchers.

This review is split out from D107285.

Differential Revision: https://reviews.llvm.org/D123396
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/strictfp-fsub.ll
Commit 12c1022679d40e2442c9f6020281c5a010e27dee by john.brawn
[AArch64] Lowering and legalization of strict FP16

For strict FP16 to work correctly needs some changes in lowering and
legalization:
* SelectionDAGLegalize::PromoteNode was missing handling for some
   strict fp opcodes.
* Some of the custom lowering of strict fp operations needed to be
   adjusted to work with FP16.
* Custom lowering needed to be added for round-to-int operations.

With this, and the previous patches for the rest of the strict fp
isel, we can set IsStrictFPEnabled = true.

Differential Revision: https://reviews.llvm.org/D115620
The file was addedllvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/fp-intrinsics.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit 1b1466c346694c02ff0e30c96a50701b58bc4830 by john.brawn
[AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL

Remove the checking of the generated asm, as that's already tested
elsewhere, and adjust some tests that were expecting the wrong
intrinsic to be generated.

Differential Revision: https://reviews.llvm.org/D118259
The file was modifiedclang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics-constrained.c
The file was modifiedclang/test/CodeGen/aarch64-neon-intrinsics-constrained.c
Commit 27a8735a444fb311838f06f8d0d5b10ca9b541f6 by john.brawn
[AArch64] Add mayRaiseFPException to appropriate instructions

This is mostly handled by adding "let mayRaiseFPException = 1" before
the definition of the relevant instruction classes, but there are a
couple of complications:
* When we have a multiclass where currently some instantiations are
   of instructions that can raise an exception and others aren't we
   need to split that into two multiclasses, one inheriting from the
   other using a multiclass parameter to enable exceptions.
* In a couple of places in the globalisel instruction selector we
   need to manually set the NoFPExcept flag. There's also another
   place that looks like it should need it, but that code is never hit
   for those opcodes due to them being handled by the generic
   instruction selector, so I've instead just removed them from the
   switch.

Differential Revision: https://reviews.llvm.org/D115352
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-brcond-fcmp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-intrinsic-trunc.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-fp-casts.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-fmul-indexed.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-floor.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-faddp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-static.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-ceil.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-imm.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select.mir
The file was addedllvm/test/CodeGen/AArch64/strict-fp-opt.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-frint.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-nearbyint.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-fcmp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-select.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-fp-select.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-neon-vector-fcmp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-sqrt.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-fma.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-intrinsic-round.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-with-no-legality-check.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-frint-nofp16.mir
Commit 9b200074b17af425bc4366b7b0c3ba74c1f5b89a by pklausler
[flang] Fix combining cases of USE association & generic interfaces

Fortran admits a few ways to have multiple symbols with the
same name in the same scope.  Two of them involve generic
interfaces (from INTERFACE or GENERIC, the syntax doesn't matter);
these are allowed to inhabit a scope with either a derived type or
a subprogram that is also a specific procedure of the generic.
(But not both a derived type and a subprogram; they could not
cohabit a scope anyway, generic or not.)

In cases of USE association, f18 needs to be capable of combining
use-associated generic interfaces with other use-associated entities.
Two generics get merged (this case was nearly correct); a generic
and a derived type can merge into a GenericDetails with a shadowed
derivedType(); and a generic can replace or ignore a use-associated
procedure of the same name so long as that procedure is already
one of its specifics.

Further, these modifications to the use-associated generic
interface must be made to a local copy of the symbol.  The previous
code was messing directly with the symbol in the module's scope.

The fix is basically a reimplementation of the member function
DoAddUse() in name resolution.

Differential Revision: https://reviews.llvm.org/D123704
The file was modifiedflang/test/Semantics/resolve17.f90
The file was modifiedflang/lib/Semantics/symbol.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/test/Semantics/modfile07.f90
Commit 00871e2f4f9fdebcfe84f998c17c47465079bc67 by chenglin.bi
[SimplifyCFG] Try to fold switch with single result value and power-of-2 cases to mask+select

When switch with 2^n cases go to one result, check if the 2^n cases can be covered by n bit masks.
If yes we can use "and condition, ~mask" to simplify the switch

case 0 2 4 6 -> and condition, -7
https://alive2.llvm.org/ce/z/jjH_0N

case 0 2 8 10 -> and condition, -11
https://alive2.llvm.org/ce/z/K7E-2V

case 2 4 8 12 -> and (sub condition, 2), -11
https://alive2.llvm.org/ce/z/CrxbYg

Fix one case of https://github.com/llvm/llvm-project/issues/39957

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D122485
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
Commit a5a258e208b44508b877e2395df51f92403245b3 by paul.walker
[SVE] Refactor MGATHER lowering for unsupported passthru values.

Handle unsupported passthru values before lowering the gather to
target specific nodes. This is a simplification that's on the road
to moving more of MGATHER lowering into td based isel.

Differential Revision: https://reviews.llvm.org/D123683
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit f14ebe91c5dd6be5b64a45e479291cd08676be0c by aeubanks
[clang-format] Skip preprocessor lines when finding the record lbrace

With D117142, we would now format

```
struct A {
#define A
  void f() { a(); }
#endif
};
```

into

```
struct A {
#ifdef A
  void f() {
    a();
  }
#endif
};
```

because we were looking for the record lbrace without skipping preprocess lines.

Fixes https://github.com/llvm/llvm-project/issues/54901.

Reviewed By: curdeius, owenpan

Differential Revision: https://reviews.llvm.org/D123737
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
Commit 4c564940a14f55d2315d2676b10fea0660ea814a by thomasraoux
[mlir][nvgpu] Add NVGPU dialect (architectural specific gpu dialect)

This introduce a new dialect for vendro specific ptx operations. This
also adds the first operation ldmatrix as an example. More operations
will be added in follow up patches.
This new dialect is meant to be a bridge between GPU and Vector
dialectis and NVVM dialect.

This is based on the RFC proposed here:
https://discourse.llvm.org/t/rfc-add-nv-gpu-dialect-hw-specific-extension-of-gpu-dialect-for-nvidia-gpus/61466/8

Differential Revision: https://reviews.llvm.org/D123266
The file was modifiedmlir/include/mlir/InitAllDialects.h
The file was addedmlir/include/mlir/Dialect/NVGPU/NVGPU.td
The file was addedmlir/lib/Dialect/NVGPU/IR/CMakeLists.txt
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was modifiedmlir/lib/Dialect/CMakeLists.txt
The file was addedmlir/lib/Dialect/NVGPU/CMakeLists.txt
The file was addedmlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp
The file was addedmlir/include/mlir/Dialect/NVGPU/CMakeLists.txt
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was addedmlir/test/Dialect/NVGPU/roundtrip.mlir
The file was modifiedmlir/include/mlir/Dialect/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/NVGPU/NVGPUDialect.h
Commit a919d3d8881ebb11ca7c815080b0c199df7579e0 by andrew.litteken
[IROutliner] Ensure that incoming blocks of PHINodes are included in the unique numbering gneration for phi nodes for each exit path

Issue: https://github.com/llvm/llvm-project/issues/54431

PHINodes that need to be generated to accommodate a PHINode outside the region due to different output paths need to have their own numbering to determine the number of output schemes required to properly handle all the outlined regions. This numbering was previously only determined by the order and values of the incoming values, as well as the parent block of the PHINode. This adds the incoming blocks to the calculation of a hash value for these PHINodes as well, and the supporting infrastructure to give each block in a region a corresponding canonical numbering.

Reviewer: paquette

Differential Revision: https://reviews.llvm.org/D122207
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was addedllvm/test/Transforms/IROutliner/phi-node-exit-path-order.ll
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp
Commit 7ef9dd3c61fd85b430bcd74f7ce2c075d93fe4fa by paul.robinson
[PS4] Fix a couple of typos
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.h
Commit d6eb480afbc038871570fa053d772c913cd77a61 by andrew.litteken
[IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments

Issue: https://github.com/llvm/llvm-project/issues/54430

For incoming values of phi nodes added to an outlined function to accommodate different exit paths in the function, when a value is a constant that is passed into the outlined function as an argument, we find the corresponding value in the first extracted function used to fill the overall outlined function. When this value is an argument, the corresponding value used will be the old value, prior to outlining. This patch maintains a mapping from these values to arguments, and uses this mapping to update the added phi node accordingly.

Reviewers: paquette

Differential Revision: https://reviews.llvm.org/D122206
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp
The file was addedllvm/test/Transforms/IROutliner/exit-phi-nodes-incoming-value-constant-argument.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/IROutliner.h
Commit 6f8eba06c289728176371f4b18831506ca6abddc by andrew.litteken
Revert "[IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments"

Failing test due to typo

This reverts commit d6eb480afbc038871570fa053d772c913cd77a61.
The file was modifiedllvm/include/llvm/Transforms/IPO/IROutliner.h
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp
The file was removedllvm/test/Transforms/IROutliner/exit-phi-nodes-incoming-value-constant-argument.ll
Commit 6111ddedc8910d2b55dba4036c5489873791ceb3 by pklausler
[flang] Defer all function result type processing

When a type specification appears in the prefix of a FUNCTION statement,
defer its processing as late as possible so that any symbols in the
tpe specification can be resolved in the function's scope to local
declarations, including use-associated symbols.  f18 was already doing
this deferral in a limited form for derived types, and this patch
makes it work for intrinsic type parameter values as well.

In short, "real(kind(x)) function foo(x)" now works as it should.

"As late as possible" means the end of the specification part, or
the first appearance of the function result name in the specification
part.

Differential Revision: https://reviews.llvm.org/D123705
The file was modifiedflang/test/Semantics/resolve108.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit 48fbcedb385d5086dff5cb1cefd35b94f786d338 by koraq
[libc++] Adds a missing include.

This fixes the modular build.
The file was modifiedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.sentinel/base.pass.cpp
Commit 77b75ca53f464d4400d0b86458f97037b35a4999 by maks
[BOLT][perf2bolt] Fix base address calculation for shared objects

When processing profile data for shared object or PIE, perf2bolt needs
to calculate base address of the binary based on the map info reported
by the perf tool. When the mapping data provided is for the second
(or any other than the first) segment and the segment's file offset
does not match its memory offset, perf2bolt uses wrong assumption
about the binary base address.

Add a function to calculate binary base address using the reported
memory mapping and use the returned base for further address
adjustments.

Reviewed By: yota9

Differential Revision: https://reviews.llvm.org/D123755
The file was modifiedbolt/include/bolt/Core/BinaryContext.h
The file was modifiedbolt/lib/Core/BinaryContext.cpp
The file was modifiedbolt/unittests/Core/CMakeLists.txt
The file was addedbolt/unittests/Core/BinaryContext.cpp
The file was modifiedbolt/lib/Profile/DataAggregator.cpp
The file was modifiedbolt/include/bolt/Profile/DataAggregator.h
Commit 104e086a4f095cd53a384f0e37c97506106eda3e by msebor
Use descriptive register names for readability (NFC).
The file was modifiedllvm/test/Transforms/InstCombine/strlen-4.ll
Commit 64d9b233b9905a951b450eff5b258707a35e110f by Jonas Devlieghere
[lldb] Prevent crash when adding a stop hook with --shlib

Currently, lldb crashes when adding a stop hook with --shlib because we
unconditionally use the target in SymbolContextSpecifier::AddSpecification.
This patch prevents the crash and add a test.

rdar://68524781

Differential revision: https://reviews.llvm.org/D123746
The file was modifiedlldb/source/Symbol/SymbolContext.cpp
The file was addedlldb/test/Shell/Commands/command-stop-hook-no-target.test
Commit 99d9c44434f57df5f188146925eea3bd8771260d by Jonas Devlieghere
[lldb] Port Process::PrintWarning* to use the new diagnostic events

Port the two Process::PrintWarning functions to use the new diagnostic
events through Debugger::ReportWarning. I kept the wrapper function in
the process, but delegated the work to the Module. Consistent with the
current code, the Module ensures the warning is only printed once per
module.

Differential revision: https://reviews.llvm.org/D123698
The file was modifiedlldb/include/lldb/Core/Module.h
The file was modifiedlldb/test/Shell/Process/Optimization.test
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/include/lldb/Target/Process.h
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/test/Shell/Process/UnsupportedLanguage.test
Commit ef7cba71486df8d6905000f932805774f1cbcc46 by zequanwu
[LLDB][NativePDB] Fix inline line info in line table

It fixes the following case:
```
0602      line 1 (+1)
0315      code 0x15 (+0x15)
0B2B      code 0x20 (+0xB) line 2 (+1)
0602      line 3 (+1)
0311      code 0x31 (+0x11)
...
```

Inline ranges should have following mapping:
`[0x15, 0x20) -> line 1`
`[0x20, 0x31) -> line 2`
Inline line entries:
`0x15, line 1`, `0x20, line 2`, `0x31, line 3`.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D123092
The file was modifiedlldb/test/Shell/SymbolFile/NativePDB/inline_sites.test
The file was modifiedlldb/test/Shell/SymbolFile/NativePDB/Inputs/inline_sites.lldbinit
The file was modifiedlldb/test/Shell/SymbolFile/NativePDB/Inputs/inline_sites.s
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
Commit 3dbf524ad75bf4aa6d4a1f72b82000943a1d967c by zequanwu
[LLDB][NativePDB] Fix a crash when S_DEFRANGE_SUBFIELD_REGISTER descirbes a simple type

When a variable is simple type and has 64 bits, the debug info may look like the following when targeting 32bit windows. The variable's content is split into two 32bits registers.
```
480 | S_LOCAL [size = 12] `x`
      type=0x0013 (__int64), flags = param
492 | S_DEFRANGE_SUBFIELD_REGISTER [size = 20]
      register = EAX, may have no name = true, offset in parent = 0
      range = [0001:0073,+7), gaps = []
512 | S_DEFRANGE_SUBFIELD_REGISTER [size = 20]
      register = ECX, may have no name = true, offset in parent = 4
      range = [0001:0073,+7), gaps = []
```

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D122943
The file was addedlldb/test/Shell/SymbolFile/NativePDB/subfield_register_simple_type.s
The file was addedlldb/test/Shell/SymbolFile/NativePDB/Inputs/subfield_register_simple_type.lldbinit
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
Commit 78d70a1c976934587e6d4c5698c348b8f09d9d96 by andrew.savonichev
[NVPTX] Disable parens for identifiers starting with '$'

ptxas fails to parse such syntax:

    mov.u64 %rd1, ($str);
    fatal   : Parsing error near '$str': syntax error

A new MCAsmInfo option was added because InParens parameter of
MCExpr::print is not sufficient to disable parens
completely. MCExpr::print resets it to false for a recursive call in
case of unary or binary expressions.

Differential Revision: https://reviews.llvm.org/D123702
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h
The file was addedllvm/test/CodeGen/NVPTX/no-extra-parens.ll
The file was modifiedllvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
The file was modifiedllvm/lib/MC/MCExpr.cpp
Commit b9ca972b1ff0548a831fe416cec8d39f7e569c94 by i
[clang-tidy] Add portability-std-allocator-const check

Report use of `std::vector<const T>` (and similar containers of const
elements). These are now allowed in standard C++ due to undefined
`std::allocator<const T>`. They do not compile with libstdc++ or MSVC.
Future libc++ will remove the extension (D120996).
See docs/clang-tidy/checks/portability-std-allocator-const.rst for detail.

I have attempted clean-up in a large code base. Here are some statistics:

* 98% are related to the container `std::vector`, among `deque/forward_list/list/multiset/queue/set/stack/vector`.
* 24% are related to `std::vector<const std::string>`.
* Both `std::vector<const absl::string_view>` and `std::vector<const int>` contribute 2%. The other contributors spread over various class types.

The check can be useful to other large code bases and may serve as an example
for future libc++ strictness improvement.

Note: on MSVC where -fdelayed-template-parsing is the default, the check cannot
catch cases in uninstantiated templates.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D123655
The file was addedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp
The file was addedclang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst
The file was modifiedclang-tools-extra/clang-tidy/portability/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was modifiedclang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp
Commit 664c111c958c14e3250fe9e82ba16de05fb4772f by pklausler
[flang] Always encode multi-byte output in UTF-8

A recent change to implement UTF-8 encoding should have
made the encoding conditional only for CHARACTER(KIND=1)
to enable UTF-8 output vs. Latin-1 or whatever.  UTF-8 output
of wider CHARACTER kinds should not be conditional (until we choose
to support UCS-16, maybe).  So wider CHARACTER kinds are being
emitted with extra zero bytes; this patch fixes them.

Differential Revision: https://reviews.llvm.org/D123711
The file was modifiedflang/runtime/connection.h
The file was modifiedflang/runtime/io-stmt.cpp
The file was modifiedflang/runtime/edit-output.cpp
Commit 5193f2a55816c484c3343a5fc04dbd30e22a372c by andrew.savonichev
Revert "[NVPTX] Disable parens for identifiers starting with '$'"

This reverts commit 78d70a1c976934587e6d4c5698c348b8f09d9d96.

Failed on Mips32:
https://lab.llvm.org/buildbot#builders/109/builds/36628

   # CHECK: # fixup A - offset: 0, value: ($tmp0), kind: fixup_Mips_26
   <stdin>:580:2: note: possible intended match here
   # fixup A - offset: 0, value: $tmp0, kind: fixup_Mips_26
The file was removedllvm/test/CodeGen/NVPTX/no-extra-parens.ll
The file was modifiedllvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
The file was modifiedllvm/lib/MC/MCExpr.cpp
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h
Commit 2c2568f39ec641aa8f1dcc011f2ce642c2d3423f by spatel
[InstCombine] canonicalize select with signbit test

This is part of solving issue #54750 - in that example
we have both forms of the compare and do not recognize
the equivalence.
The file was modifiedllvm/test/Transforms/InstCombine/logical-select.ll
The file was modifiedllvm/test/Transforms/InstCombine/ashr-lshr.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/truncating-saturate.ll
Commit 02eab52866775f1476028129d1b114235fddc127 by i
[ELF][AArch64] Fix unneeded thunk for branches to hidden undefined weak

Similar to D119787 for PPC64.

A hidden undefined weak may change its binding to local before some
`isUndefinedWeak` code, so some `isUndefinedWeak` code needs to be changed to
`isUndefined`. The undefined non-weak case has been errored, so just using
`isUndefined` is fine.

The Linux kernel recently has a usage that a branch from 0xffff800008491ee0
references a hidden undefined weak symbol `vfio_group_set_kvm`.
It relies on the behavior that a branch to undefined weak resolving to the next
instruction, otherwise it'd see spurious relocation out of range errors.

Fixes https://github.com/ClangBuiltLinux/linux/issues/1624

Differential Revision: https://reviews.llvm.org/D123750
The file was modifiedlld/ELF/Arch/AArch64.cpp
The file was modifiedlld/ELF/InputSection.cpp
The file was modifiedlld/test/ELF/aarch64-undefined-weak.s
Commit 3efad612d234f938d5012317cfb827e2bf8a1ee7 by chris.bieneman
[HLSL] Pointers are unsupported in HLSL

HLSL does not support pointers or references. This change generates
errors in sema for generating pointer, and reference types as well as
common operators (address-of, dereference, arrow), which are used with
pointers and are unsupported in HLSL.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D123167
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was addedclang/test/SemaHLSL/prohibit_reference.hlsl
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was addedclang/test/SemaHLSL/prohibit_pointer.hlsl
The file was modifiedclang/lib/Sema/SemaExprMember.cpp
Commit 6ee71e53e56b382d3f3a38751f84b02feb0befda by yhs
[BPF] handle opaque-pointer for __builtin_preserve_enum_value

Opaque pointer [1] is enabled as the default with commit [2].
Andrii found that current __builtin_preserve_enum_value() can only handle
non opaque pointer code pattern and will segfault with latest
llvm main branch where opaque-pointer is enabled by default.

This patch added the opaque pointer support.
Besides llvm selftests, also verified with bpf-next bpf selftests.

  [1] https://llvm.org/docs/OpaquePointers.html
  [2] https://reviews.llvm.org/D123122

Differential Revision: https://reviews.llvm.org/D123800
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-enum-value-opaque-pointer.ll
Commit 234678fbf9cf05c232221bb8253ed658507f3b49 by llvmgnsyncbot
[gn build] Port b9ca972b1ff0
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn
Commit 5955a0f9375a8c0b134eeb4a8de5155dcce7c94f by efriedma
Allow flexible array initialization in C++.

Flexible array initialization is a C/C++ extension implemented in many
compilers to allow initializing the flexible array tail of a struct type
that contains a flexible array. In clang, this is currently restricted
to C. But this construct is used in the Microsoft SDK headers, so I'd
like to extend it to C++.

For now, this doesn't handle dynamic initialization; probably not hard
to implement, but it's extra code, and I don't think it's necessary for
the expected uses.  And we explicitly fail out of constant evaluation.

I've added some additional code to assert that initializers have the
correct size, with or without flexible array init. This might catch
issues unrelated to flexible array init.

Differential Revision: https://reviews.llvm.org/D123649
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx11.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was addedclang/test/CodeGenCXX/flexible-array-init.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticASTKinds.td
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/include/clang/AST/Decl.h
Commit d054959786eeec6311218efd857c0cca658b6f77 by pklausler
[flang] Fix shape analysis of RESHAPE result

Shape analysis of RESHAPE(..., SHAPE=s) should of course return
the SHAPE= actual argument when it is constant; but when it is
not, its length is still known, and thus so is the rank of the
result of RESHAPE(), and shape analysis should at least return
a shape vector of the right length rather than a result that
makes the result appear to be a scalar, which can lead to some
bogus error messages.

Also, while here: rename a private GetShapeHelper::AsShape()
routine so that it can't be confused with the ones in the API
of shape.h.

Differential Revision: https://reviews.llvm.org/D123712
The file was modifiedflang/lib/Evaluate/shape.cpp
The file was modifiedflang/test/Semantics/call03.f90
The file was modifiedflang/include/flang/Evaluate/shape.h
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
Commit 428775d5186fb075e76563c5ebab8607c3620a13 by Jonas Devlieghere
[lldb] Remove TestShell.test

Remove TestShell.test because it's failing on the bot with "this is a
non-interactive debug session, cannot get permission to debug
processes." The only thing that's special about this test is the shell
we're launching with. I need to do a bit of digging to understand why
that's causing this error.

rdar://91766931
The file was removedlldb/test/Shell/Process/TestShell.test
Commit 7726ad04e2633a843fb9743e5adfbb404446e657 by paul.robinson
[PS5] Add basic PS5 driver behavior

This adds a PS5-specific ToolChain subclass, which defines some basic
PS5 driver behavior. Future patches will add more target-specific
driver behavior.
The file was removedclang/test/Driver/ps4-linker-win.c
The file was addedclang/test/Driver/ps4-ps5-linker-win.c
The file was addedclang/test/Driver/ps4-ps5-linker-non-win.c
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/test/Driver/inhibit-downstream-commands.c
The file was modifiedclang/test/Driver/no-integrated-as.c
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.h
The file was addedclang/test/Driver/ps4-ps5-relax-relocations.c
The file was modifiedclang/test/Driver/no-integrated-as.s
The file was addedclang/test/Driver/ps4ps5base.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was removedclang/test/Driver/ps4-header-search.c
The file was removedclang/test/Driver/ps4-runtime-flags.c
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.cpp
The file was removedclang/test/Driver/ps4cpu.c
The file was removedclang/test/Driver/ps4-linker-non-win.c
The file was addedclang/test/Driver/ps5-sdk-root.c
The file was addedclang/test/Driver/ps4-ps5-header-search.c
The file was modifiedclang/lib/Lex/InitHeaderSearch.cpp
The file was removedclang/test/Driver/ps4-relax-relocations.c
The file was addedclang/test/Driver/ps4-ps5-runtime-flags.c
Commit 8cf83e96591b2ab3e748c0dc5ff019397e00f1ab by brad
[VE][compiler-rt] Correct location of VE support in clear_cache function, NFC

Looks like when the VE support was added it was added a few lines below where it should have been.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D123439
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
Commit 96e45a8958cbfb5906f5b8b3c2423ad5dd884963 by vdonaldson
[flang] Use full result range for clock_gettime implementation of SYSTEM_CLOCK

Update the primary clock_gettime implementation of SYSTEM_CLOCK to use
the full range of values, dependent on the type kind of the requested
result.  Counts/sec and count max for supported kinds become:

kind          counts/sec             count max

    1                  10                   127
    2                1000                 32767
    4                1000            2147483647
    8          1000000000   9223372036854775807
   16          1000000000   9223372036854775807

The secondary "fallback" implementation is not changed.

Real valued COUNT_RATE arguments are not changed.

The test program below has calls for kinds 1, 2, 4, 8, 16.  Support for
these types varies by compiler.  The code as given can be restricted to
accommodate these variations, with results shown below.

subroutine c
  integer(1) c1, r1, m1
  integer(2) c2, r2, m2
  integer(4) c4, r4, m4
  integer(8) c8, r8, m8
  integer(16) c16, r16, m16

  print*
  print '(a5,3a22)', 'kind', 'counts/sec', 'count max', 'count'
  print*

  call system_clock(c1, r1, m1)
  print '(i5,3i22)', 1, r1, m1, c1

  call system_clock(c2, r2, m2)
  print '(i5,3i22)', 2, r2, m2, c2

  call system_clock(c4, r4, m4)
  print '(i5,3i22)', 4, r4, m4, c4

  call system_clock(c8, r8, m8)
  print '(i5,3i22)', 8, r8, m8, c8

  call system_clock(c16, r16, m16)
  print '(i5,3i22)', 16, r16, m16, c16
end

subroutine k(j)
  j = 0
  do i=1,1000000000
    j = j + i
  enddo
end

program p
  do i=1,1 ! increase loop count to check for (kind=1) wraparound
    call k(j)
    call c
  enddo
end

=== flang output without change (last column counts vary per run) ===

kind          counts/sec             count max                 count

    1                 -24                   127                    83
    2                1000                   290                   211
    4                1000                   290                   211
    8          1000000000             290448383             211631452
   16          1000000000             290448383             211633853

=== flang output with change (last column counts vary per run) ===

    1                  10                   127                    21
    2                1000                 32767                  2100
    4                1000            2147483647                  2100
    8          1000000000   9223372036854775807            2100183374
   16          1000000000   9223372036854775807            2100185353

Other compilers; kind support varies (last column counts vary per run).
Test and ouput modified to avoid crashes and normalize results.
Some negative values indicate unsupported kinds; others are bugs.

kind          counts/sec             count max                 count

    1                   0                     0                  -127
    2                   0                     0                -32767
    4                1000            2147483647              69271692
    8          1000000000   9223372036854775807        69271692353290
   16          1000000000   9223372036854775807        69271692354794

=======

    1                  10                   127                     0
    2                1000                 32767                     0
    4             1000000            2147483647                     0
    8            10000000   9223372036854775807                     9

=======

    1                   0                     0                  -127
    2                1000                 32767                  3263
    4               10000            2147483647            1788192630
    8             1000000   9223372036854775807      1649443459263095

=======

    1                 -24                    -1                    36
    2                1000                    -1                -10716
    4                1000            2147483647             176018980
    8                1000   9223372036854775807         1649443460644

=======

    2                 100                 28799                 23080
    4                 100               8639999               4285480
    8                 100               8639999               4285480
   16                 100               8639999               4285480

=======

    1                 -24                    -1                     4
    2                1000                 23551                -26108
    4                1000              86399999              67541508
    8             1000000   9223372036854775807      1649443541508087
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/runtime/time-intrinsic.cpp
Commit f14334ffa1191ad734d2a994609cf8220c5b7abf by michaelrj
[libc][docs] Add doc for libc string functions

This patch adds a document describing the status of the string functions
in LLVM-libc.

Reviewed By: sivachandra, jeffbailey

Differential Revision: https://reviews.llvm.org/D123645
The file was modifiedlibc/test/src/__support/CMakeLists.txt
The file was modifiedlibc/docs/index.rst
The file was addedlibc/docs/strings.rst
Commit c4f059e5094edd216761fd8345ceb6345836d91d by Louis Dionne
[libc++][NFC] Add missing 'return 0' to test
The file was modifiedlibcxx/test/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp
Commit 753aabeaae6547975e7212d38100e9c6201c0aa5 by vtjnash
[X86] Fix test case for SoftPromoteHalf of STRICT_FP_EXTEND/STRICT_FP_ROUND.

Tests that should have been with
33b9f3abd78ffe31e2f468f64d36dbdf75b25d6e
when writing the tests that should have been with
0daf9b8e41327b1511b2bbc272184ff4fdb8de79.

Differential Revision: https://reviews.llvm.org/D123739
The file was modifiedllvm/test/CodeGen/X86/half-constrained.ll
Commit eb14135e35bf2463a5c52394f311d47c18d72dee by pklausler
[flang] Correct interaction between generics and intrinsics

Fortran allows a generic interface to have he same name as an
intrinsic procedure.  If the intrinsic is explicitly marked with
the INTRINSIC attribute, restrictions apply (C848) - the generic
must contain only functions or subroutines, depending on the
intrinsic.  Explicit or not, the generic overrides the intrinsic,
but the intrinsic behavior must still be available for calls
whose actual arguments do not match any of the specific procedures.

Semantics was not checking constraint C848, and it didn't allow
an explicit INTRINSIC attribute on a name of a generic interface.

Differential Revision: https://reviews.llvm.org/D123713
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was addedflang/test/Semantics/resolve109.f90
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit 6cf0b1b3da3e8662baf030a2d741e3becaaab2b0 by efriedma
Comment out assertions about initializer size added in D123649.

They're causing failures in LLVM test-suite.  Added some regression
tests that explain the issue.
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/test/CodeGen/flexible-array-init.c
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit cddcf2170ae8d5a199bb99aac2fd27f520696efe by browneee
[DFSan] Avoid replacing uses of functions in comparisions.

This can cause crashes by accidentally optimizing out checks for
extern_weak_func != nullptr, when replaced with a known-not-null wrapper.

This solution isn't perfect (only avoids replacement on specific patterns)
but should address common cases.

Internal reference: b/185245029

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D123701
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/Inputs/abilist.txt
The file was addedllvm/test/Instrumentation/DataFlowSanitizer/extern_weak.ll
Commit eb156cb25e209b31eca2aaccae2bd56535986d03 by tra
[NVPTX][tests] Do not run the test CodeGen/Generic/2010-11-04-BigByval.ll

NVPTX does not support the testcase llvm/test/CodeGen/Generic/2010-11-04-BigByval.ll
There are NVPTX specific testcases for byval args in the llvm/test/CodeGen/NVPTX
The test is marked as UNSUPPORTED for NVPTX due to unacceptable run time when using XFAIL

Differential Revision: https://reviews.llvm.org/D122939
The file was modifiedllvm/test/CodeGen/Generic/2010-11-04-BigByval.ll
Commit de026aeb8ebb92717ead36bf14bf82356d9b11e1 by pklausler
[flang] Raise FP exceptions from runtime conversion to binary

Formatted READs of REAL should convert the exception flags from
the decimal-to-binary conversion library into real runtime FP
exceptions so that they at least show up in the termination message
of a STOP statement.

Differential Revision: https://reviews.llvm.org/D123714
The file was modifiedflang/runtime/edit-input.cpp
Commit cb6f8d77a207d87094cc4e775bc44a501381ac50 by bixia
[mlir][sparse][taco] Use the SparseCompiler from python/tools.

Copy the implementation of SparseCompiler from python/tools to taco/tools until we have a common place to install it. Modify TACO to use this SparseCompiler for compilation and jitting.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D123696
The file was addedmlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_sparse_compiler.py
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_pytaco_utils.py
Commit f20968e00667955f9911864ea922d5a24f548d0d by i
[Driver] Remove unneeded -f[no-]pascal-strings translation. NFC

They used to translate to -m[no-]pascal-strings.
This is unneeded after 28c96319c8ab397c2e7d1a47b852bf2afae4f04b or some point in
2009 when -m[no-]pascal-strings became aliases for -f[no-]pascal-strings.
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit 724709e09ddcb4951a5f1c42238d3a8491424831 by pklausler
[flang] Make F0.1 output editing of zero edge case consistent

The statement
  PRINT '(2F0.1)', 0.0, 0.5
should emit consistent ".0 .5" output, not "0.0 .5".

Differential Revision: https://reviews.llvm.org/D123715
The file was modifiedflang/unittests/Runtime/NumericalFormatTest.cpp
The file was modifiedflang/runtime/edit-output.cpp
Commit a68612a964b43d8382a93bb36084b51f2add756f by pklausler
[flang][runtime] Preserve effect of positioning in record in non-advancing output

When formatted non-advancing output ends in a control edit descriptor
like nX or Tn or TRn that effectively extends the record, fill any
gap with explicit blanks at the completion of the WRITE.

Differential Revision: https://reviews.llvm.org/D123716
The file was modifiedflang/runtime/io-stmt.cpp
Commit 31ea4798ad0990838ccd27f80ca112f177ce91d9 by isanbard
[randstruct] Add test for "-frandomize-layout-seed-file" flag

This test makes sure that the "-frandomize-layout-seed" and
"-frandomize-layout-seed-file" flags generate the same layout for the
record.

Reviewed By: aaron.ballman, MaskRay

Differential Revision: https://reviews.llvm.org/D123636
The file was modifiedclang/unittests/AST/RandstructTest.cpp
Commit 8065e482189104af30acf46c16ac6c5f6e270d0a by pklausler
[flang] Inner INTRINSIC must not shadow host generic

A generic interface (however spelled) can have the same name as
an intrinsic procedure in the same scope.  When an explicit INTRINSIC
attribute statement appears in a nested scope, semantics was
unconditionally declaring a new symbol that hid the generic entirely.
Catch this case and create instead a host association symbol for
the generic that can then be decorated with the INTRINSIC attribute.

Differential Revision: https://reviews.llvm.org/D123718
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit 95199af4ae36c0e05714a99d084237d8e1cd14c2 by pklausler
[flang] Local generics must not shadow host-associated generics

It is possible for generic interfaces of equivalent (but not necessarily
identical -- operator(.eq.) is equivalent to operator(==)) names to
be declared in a host scope and a nested scope, and the nested declaration
should function as an extension of the host's.

Differential Revision: https://reviews.llvm.org/D123719
The file was addedflang/test/Semantics/resolve110.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit db6796dfa8645e87629dc8b8c165dd6ccbc64dfa by joker.eph
Apply clang-tidy fixes for modernize-use-default-member-init in SparseTensorUtils.cpp (NFC)
The file was modifiedmlir/lib/ExecutionEngine/SparseTensorUtils.cpp
Commit 72e2b4e7a762b4768a068c25909f8bedca47112e by joker.eph
Apply clang-tidy fixes for modernize-use-default-member-init in PDLLServer.cpp (NFC)
The file was modifiedmlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
Commit 27dead3e3a532625704654a0b66d77f8654d1af2 by isanbard
Revert "[randstruct] Add test for "-frandomize-layout-seed-file" flag"

There's a test failure.

This reverts commit 31ea4798ad0990838ccd27f80ca112f177ce91d9.
The file was modifiedclang/unittests/AST/RandstructTest.cpp
Commit 142cbd500b1a635d8933e033b7a5fc5c5e0f04b3 by pklausler
[flang] Fix TYPE/CLASS IS (T(...)) in SELECT TYPE

TYPE IS and CLASS IS guards in SELECT TYPE constructs are
allowed to specify the same type as the type of the selector
but f18's implementation of that predicate required strict
equality of the derived type representations.  We need to
allow for assumed values of LEN type parameters to match
explicit and deferred type parameter values in the selector
and require equality for KIND type parameters.  Implement
DerivedTypeSpec::Match() to perform this more relaxed type
comparison, and use it in check-select-type.cpp.

Differential Revision: https://reviews.llvm.org/D123721
The file was modifiedflang/lib/Semantics/type.cpp
The file was modifiedflang/lib/Semantics/check-select-type.cpp
The file was modifiedflang/test/Semantics/selecttype01.f90
The file was modifiedflang/include/flang/Semantics/type.h
Commit 03049c51251189b5aafed825095f3adcd52b3dee by Jonas Devlieghere
Revert "[lldb] Pin the shared cache when iterating over its images"

This reverts commit af969141fa285157044e34fb6b27963c3278241b because it
didn't have the intended performance benefit to offset the increase in
our (virtual) memory usage.
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Commit 8c77a75fb6a82a4cc2182bca89e007e7190a83de by isanbard
[randstruct] Add test for "-frandomize-layout-seed-file" flag

This test makes sure that the "-frandomize-layout-seed" and
"-frandomize-layout-seed-file" flags generate the same layout for the
record.

Reviewed By: aaron.ballman, MaskRay

Differential Revision: https://reviews.llvm.org/D123636
The file was modifiedclang/unittests/AST/RandstructTest.cpp
Commit 894a591cf6fc542e6fc5d84222c839495a3d832f by thomasraoux
[mlir][nvgpu] Move mma.sync and ldmatrix in nvgpu dialect

Move gpu operation mma.sync and ldmatrix in nvgpu as they are specific
to nvidia target.

Differential Revision: https://reviews.llvm.org/D123824
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/test/Conversion/NVGPUToNVVM/mma-sync-to-nvvm.mlir
The file was addedmlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was removedmlir/test/Conversion/GPUToNVVM/mma-sync-to-nvvm.mlir
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was addedmlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
The file was modifiedmlir/include/mlir/Dialect/NVGPU/NVGPU.td
The file was modifiedmlir/test/Dialect/NVGPU/roundtrip.mlir
The file was addedmlir/include/mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h
The file was modifiedmlir/include/mlir/Conversion/Passes.td
Commit af91446aa2903324c81d9e0b0a8a9fc037edc1a4 by Jonas Devlieghere
[lldb] Show the DBGError if dsymForUUID can't find a dSYM

Show the user the DBGError (if available) when dsymForUUID fails.

rdar://90949180

Differential revision: https://reviews.llvm.org/D123743
The file was modifiedlldb/source/Symbol/LocateSymbolFileMacOSX.cpp
The file was addedlldb/test/Shell/SymbolFile/Inputs/dsymforuuid.sh
The file was addedlldb/source/Symbol/LocateSymbolFileMacOSX.cpp.rej
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was addedtest/Shell/SymbolFile/Inputs/dsymforuuid.sh
The file was modifiedlldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
The file was modifiedlldb/source/Symbol/LocateSymbolFile.cpp
The file was modifiedlldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was addedtest/Shell/SymbolFile/add-dsym.test
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
The file was addedlldb/test/Shell/SymbolFile/add-dsym.test
The file was modifiedlldb/include/lldb/Symbol/LocateSymbolFile.h
The file was modifiedlldb/source/Interpreter/CommandReturnObject.cpp
The file was addedlldb/test/Shell/SymbolFile/Inputs/a.yaml
The file was modifiedlldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
The file was addedtest/Shell/SymbolFile/Inputs/a.yaml
Commit 625dedc3fe60f1b1010a96c9fee43119f6dfe121 by pklausler
[flang] Allow modification of construct entities

Construct entities from ASSOCIATE, SELECT TYPE, and SELECT RANK
are modifiable if the are associated with modifiable variables
without vector subscripts.  Update WhyNotModifiable() to accept
construct entities that are appropriate.

A need for more general error reporting from one overload of
WhyNotModifiable() caused its result type to change to
std::optional<parser::Message> instead of ::MessageFixedText,
and this change had some consequences that rippled through
call sites.

Some test results that didn't allow for modifiable construct
entities needed to be updated.

Differential Revision: https://reviews.llvm.org/D123722
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/test/Semantics/resolve57.f90
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/test/Semantics/modifiable01.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/test/Semantics/selecttype03.f90
The file was modifiedflang/include/flang/Semantics/tools.h
Commit 1255e9734880608f4b56a9fa8e9e99baf41d9784 by Jonas Devlieghere
Remove folder introduced by incorrect patch level
The file was removedtest/Shell/SymbolFile/Inputs/a.yaml
The file was removedtest/Shell/SymbolFile/add-dsym.test
The file was removedtest/Shell/SymbolFile/Inputs/dsymforuuid.sh
Commit 4975c3a9494c37997774bf9254ff79a85c5e5c7f by Matthew.Arsenault
MachineFunction: Remove unused field
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
Commit 6f3f19a36b72e6cc91318f61386ba4fbda8bb388 by Matthew.Arsenault
llvm-reduce: Fix some copy-pasted comment errors
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
Commit 9196f5dab757cc2d2f59b5295140fb1f7f4354c2 by Matthew.Arsenault
MachineCSE: Report this requires SSA
The file was modifiedllvm/lib/CodeGen/MachineCSE.cpp
The file was addedllvm/test/CodeGen/AMDGPU/machine-cse-ssa.mir
Commit a0f9e4ed2a472f0a41a4d292a9c5fc939ae064ad by Matthew.Arsenault
llvm-reduce: Fix handling of generic virtual registers

Try to preserve register banks, types and names. Fixes the lowest
hanging fruit in issue 54894.
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp
The file was addedllvm/test/tools/llvm-reduce/mir/generic-vreg.mir
Commit b4ace5da45672bbfa36c9adc74f5399d1ccd8a65 by Matthew.Arsenault
llvm-reduce: Fix asserting on undef virtual registers

This was only populating the virtual register map for def operands
that appeared in the function, but that may not exist if there are
only undef uses.
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
The file was addedllvm/test/tools/llvm-reduce/mir/undef-virt-reg.mir
Commit c528fbf8824b5004f9ff895de392ef731644edea by Matthew.Arsenault
AMDGPU: Fix assert if v_mov_b32_dpp is last instruction in the block

This can happen if the use instruction is a phi.

Fixes issue 49961
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/dpp_combine.mir
Commit 7c71ce97e7be0a00322459527564ad1194e1e4b5 by pklausler
[flang] Defer NAMELIST group item name resolution

Items in NAMELIST groups might be host-associated implicitly-typed
variables, but name resolution can't know that when the NAMELIST
appears in a specification part and the host's execution part has
not yet been analyzed.  So defer NAMELIST group item name resolution
to the end of the execution part.  This is safe because nothing
else in name resolution depends on whether a variable is in a
NAMELIST group or not.

Differential Revision: https://reviews.llvm.org/D123723
The file was modifiedflang/test/Semantics/resolve40.f90
The file was modifiedflang/test/Semantics/call19.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit df29ec2f548ba717f80270952ca5754131c4e1fb by Matthew.Arsenault
AMDGPU: Select i8/i16 global and flat atomic load/store

As far as I know these should be atomic anyway, as long as the address
is aligned. Unaligned atomics hit an ugly error in AtomicExpand.
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/flat_atomics.ll
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/global_atomics.ll
Commit 3217ca0863681c5e73e1e0f19e9de350249c45b8 by Matthew.Arsenault
llvm-reduce: Copy register allocation hints to clone
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
The file was addedllvm/test/tools/llvm-reduce/mir/preserve-reg-hints.mir
Commit e33b07f8599523e1e39b20b134dfc870635353bc by Matthew.Arsenault
llvm-reduce: Inform MRI of used phys reg masks

I'm not sure how to directly observe this invisible cache for a test.
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
Commit 7086a1db80e1e09463744f6f6840eb771e3faeef by Dhruva.Chakrabarti
[libomptarget] [amdgpu] Hostcall offset check should consider implicit args

Fixed hostcall offset check to compare against kernarg segment size
and implicit arguments. Improved the corresponding debug print.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D123827
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit 2503f286486c1f545d22dd03923478727946caf4 by pklausler
[flang] Accept TYPE(intrinsic type) in declarations only for non-extension type

To avoid clashing with names of user derived types, the redundant
syntax TYPE(intrinsic type spec) must be interpreted as a monomorphic
derived type when "intrinsic type spec" is a single word.  This
affects TYPE(BYTE) and TYPE(DOUBLECOMPLEX), but not TYPE(DOUBLE COMPLEX)
in free form source.

Differential Revision: https://reviews.llvm.org/D123724
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/lib/Parser/Fortran-parsers.cpp
Commit f163106f394a57708b1a12d321231a200372023d by Matthew.Arsenault
llvm-reduce: Handle cloning MachineFrameInfo and stack objects

This didn't work at all before, and would assert on any frame
index. Also copy the other fields, which I believe should cover
everything. There are a few that are untested since MIR serialization
is apparently still missing them (isStatepointSpillSlot,
ObjectSSPLayout, and ObjectSExt/ObjectZExt).
The file was modifiedllvm/tools/llvm-reduce/ReducerWorkItem.cpp
The file was addedllvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h
Commit ffdba713f5bb338ffc7cb6b6e807c0c969daac8e by joker.eph
Fix MLIR website generation
The file was modifiedmlir/include/mlir/Dialect/NVGPU/CMakeLists.txt
Commit 2d9b7fdaa379cfa3ce21259bf6669b71cab2b75d by ben.shi
[utils] Use git to checkout code instead of svn in building docker image

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D123795
The file was modifiedllvm/utils/docker/nvidia-cuda/Dockerfile
The file was modifiedllvm/utils/docker/build_docker_image.sh
The file was modifiedllvm/utils/docker/scripts/checkout.sh
The file was modifiedllvm/utils/docker/debian10/Dockerfile
Commit 6d45558c1a05d4ae925bdf628b8cefa947a589f3 by Matthew.Arsenault
Mips/GlobalISel: Add stub post-legalizer combiner

This enables no combines, just adds the boilerplate for the new pass.
The file was addedllvm/lib/Target/Mips/MipsCombine.td
The file was modifiedllvm/lib/Target/Mips/Mips.h
The file was modifiedllvm/lib/Target/Mips/Mips.td
The file was modifiedllvm/lib/Target/Mips/CMakeLists.txt
The file was modifiedllvm/lib/Target/Mips/MipsTargetMachine.cpp
The file was addedllvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp
Commit a1303b23c9de6ef6d667aa923ec266ca4a0334e7 by Matthew.Arsenault
clang/AMDGPU: Define macro for -munsafe-fp-atomics

The HIP headers want to use this to swap the implementation of the
function, rather than relying on backend expansion of the generic
atomic instruction.

Fixes: SWDEV-332998
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedclang/test/Driver/amdgpu-macros.cl
Commit 0cefd53d6eed5d5ed5d117580d4feecf6d1b74b7 by i
[gcov][test] Change some legacy PM tests to new PM and remove others
The file was modifiedllvm/test/Transforms/GCOVProfiling/three-element-mdnode.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/version.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/global-ctor.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/linezero.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/linkagename.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/exit-block.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/function-numbering.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/modules.ll
Commit 3d79c52f31041e0a11ea48814c0d009518063a3d by jacquesguan
[mlir][LLVMIR] Add more vector predication intrinsic ops.

This revision adds vector predication select, merge and load/store intrinsic ops.

Differential Revision: https://reviews.llvm.org/D123477
The file was modifiedmlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
Commit 2a9386726b3e28a45c8bef2f640970e688875572 by aaupov
[BOLT][NFC] Use LLVM_REVISION instead of BOLT_VERSION_STRING

Remove duplicate version string identification

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D123549
The file was modifiedbolt/lib/Utils/CommandLineOpts.cpp
The file was modifiedbolt/CMakeLists.txt
The file was removedbolt/include/bolt/Utils/BoltRevision.inc.in
Commit f4cc757560b8282bd321e1547f6e8a13722be2bc by Matthew.Arsenault
Add missing word in llc docs
The file was modifiedllvm/docs/CommandGuide/llc.rst
Commit 1aa4f0bb6cc21b7666718f5534c88d03152ddfb1 by jacquesguan
[RISCV][VP] Add RVV codegen for vp.trunc.

Differential Revision: https://reviews.llvm.org/D123579
The file was addedllvm/test/CodeGen/RISCV/rvv/vtrunc-vp-mask.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was addedllvm/test/CodeGen/RISCV/rvv/vtrunc-vp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vector-trunc-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vector-trunc-vp-mask.ll
Commit 35bd41916b10a9312ec33e90580497bc4c7f22fe by jpienaar
[mlir] Add assert to fail with more info (NFC)

This would have assert before during tensor type construction with
opaque error, assert and fail earlier now.
The file was modifiedmlir/lib/Interfaces/InferTypeOpInterface.cpp
Commit b5d884a38c3524fdba82c525f2cd0237e85c60ee by i
[PGO][test] Change opt -foo tests to -passes= and remove duplicates
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_promotion_musttail.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_promotion.ll
The file was modifiedllvm/test/Transforms/PGOProfile/PR41279.ll
The file was modifiedllvm/test/Transforms/PGOProfile/noreturncall.ll
The file was modifiedllvm/test/Transforms/PGOProfile/unreachable_bb.ll
The file was modifiedllvm/test/Transforms/PGOProfile/PR41279_2.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/fix_bfi.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_covariant_call_return.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_from_strlen.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_vararg.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_promotion_byval.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_promotion_vla.ll
The file was modifiedllvm/test/Transforms/PGOProfile/suppl-profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/irreducible.ll
The file was modifiedllvm/test/Transforms/PGOProfile/branch2.ll
The file was modifiedllvm/test/Transforms/Util/call-promotion-utils-ptrcast.ll
The file was modifiedllvm/test/Transforms/PGOProfile/noprofile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/loop2.ll
The file was modifiedllvm/test/Transforms/PGOProfile/multiple_hash_profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/X86/macho.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_hash.ll
The file was modifiedllvm/test/Transforms/PGOProfile/counter_promo_nest.ll
The file was modifiedllvm/test/Transforms/PGOProfile/large_count_remarks.ll
The file was modifiedllvm/test/Transforms/PGOProfile/single_bb.ll
The file was modifiedllvm/test/Transforms/PGOProfile/diag_mismatch.ll
The file was modifiedllvm/test/Transforms/PGOProfile/thinlto_samplepgo_icp.ll
The file was modifiedllvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll
The file was modifiedllvm/test/Transforms/PGOProfile/PR28219.ll
The file was modifiedllvm/test/Transforms/PGOProfile/infinite_loop_gen.ll
The file was modifiedllvm/test/Transforms/PGOProfile/loop1.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_opt_skip_ranges_promote_three.ll
The file was modifiedllvm/test/Transforms/PGOProfile/select2.ll
The file was modifiedllvm/test/Transforms/PGOProfile/counter_promo_mexits.ll
The file was modifiedllvm/test/Transforms/PGOProfile/branch1.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_opt.ll
The file was modifiedllvm/test/Transforms/PGOProfile/landingpad.ll
The file was modifiedllvm/test/Transforms/Util/call-promotion-utils-ptrcast-attribute.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memcpy.ll
The file was modifiedllvm/test/Transforms/PGOProfile/diag_no_profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_vararg_sret.ll
The file was modifiedllvm/test/Transforms/PGOProfile/diag_no_funcprofdata.ll
The file was modifiedllvm/test/Transforms/PGOProfile/fix_entry_count.ll
The file was modifiedllvm/test/Transforms/PGOProfile/criticaledge.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_opt_zero.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile_funclet.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirectbr.ll
The file was modifiedllvm/test/Transforms/PGOProfile/switch.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_invoke_nouse.ll
The file was modifiedllvm/test/Transforms/PGOProfile/consecutive-zeros.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_annotation.ll
The file was modifiedllvm/test/Transforms/PGOProfile/counter_promo_nest-inseltpoison.ll
The file was modifiedllvm/test/Transforms/PGOProfile/diag_no_value_sites.ll
The file was modifiedllvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll
The file was modifiedllvm/test/Transforms/PGOProfile/select1.ll
The file was modifiedllvm/test/Transforms/PGOProfile/diag_FE_profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/bfi_verification.ll
The file was modifiedllvm/test/Transforms/PGOProfile/select_hash_conflict.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_clone.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_covariant_invoke_return.ll
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_annotation.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_mismatch_msg.ll
The file was modifiedllvm/test/Transforms/PGOProfile/comdat_internal.ll
The file was modifiedllvm/test/Transforms/PGOProfile/do-not-instrument.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_sample.ll
The file was modifiedllvm/test/Transforms/PGOProfile/icp_invoke.ll
The file was modifiedllvm/test/Transforms/PGOProfile/callbr.ll
The file was modifiedllvm/test/Transforms/PGOProfile/comdat_rename.ll
The file was modifiedllvm/test/Transforms/PGOProfile/instr_entry_bb.ll
The file was modifiedllvm/test/Transforms/PGOProfile/counter_promo.ll
The file was modifiedllvm/test/Transforms/PGOProfile/statics_counter_naming.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_profile_funclet.ll
Commit 59058c441a9ba421b8f45cf1482544fd72ecb558 by thomasraoux
[mlir][vector] Add operations used for Vector distribution

Add vector op warp_execute_on_lane_0 that will be used to do incremental
vector distribution in order to target warp level vector programming for
architectures with GPU-like SIMT programming model.
The idea behing the op is discussed further on discourse:
https://discourse.llvm.org/t/vector-vector-distribution-large-vector-to-small-vector/1983/23

Differential Revision: https://reviews.llvm.org/D123703
The file was modifiedmlir/lib/Dialect/Vector/IR/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Vector/IR/VectorOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/IR/VectorOps.h
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/IR/VectorOps.td
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
Commit 407b613d7344a37662a9933d5684dd207917e577 by luweining
[LoongArch] Add support for selecting constant materializations.

Integer materializing can generate LU12I_W, ORI, LU32I_D, LU52I_D and
ADDI_W instructions.

According to the sign-extended behavior of these instructions
(except ORI), the generated instruction sequence can be improved.

For example, load -1 into general register:
The ADDI_W instruction performs the operation that the [31:0] bit data
in the general register `rj` plus the 12-bit immediate `simm12` sign
extension 32-bit data; the resultant [31:0] bit is sign extension, then
written into the general register `rd`.

Normal sequence:

```
lu12i.w $a0, -1
ori $a0, $a0, 2048
```

Improved with sign-extended instruction:

```
addi.w $a0, $zero,  -1
```

Reviewed By: SixWeining, MaskRay

Differential Revision: https://reviews.llvm.org/D123290
The file was addedllvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp
The file was modifiedllvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp
The file was addedllvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.h
The file was addedllvm/test/CodeGen/LoongArch/imm.ll
The file was modifiedllvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt
Commit d324d6b5dc80f5a6d477a5fc8404bfa9e2f708b4 by i
[PGO][test] Remove duplicate --pgo-instr-memop tests
The file was modifiedllvm/test/Transforms/PGOProfile/statics_counter_naming.ll
Commit 98c22f68e6605c3ee802d57f130c724731411856 by i
[PGO][test] Fix memop_size_opt.ll
The file was modifiedllvm/test/Transforms/PGOProfile/memop_size_opt.ll
Commit f9486f213975ffdcf794036d0785f594d13ad612 by michael.hliao
[LoongArch] Fix shared build. NFC.
The file was modifiedllvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt
Commit fa2762a251f316d2a83f12a3147494ecfd311a6e by thomasraoux
[mlir] Update bazel file after adding nvgpu to nvvm conversion
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Commit e6873bfbcd356c6aeb0e0bc165326f9fc8f02cbd by pklausler
[flang][runtime] Don't skip input spaces when they are significant

When formatted input (not list-directed or NAMELIST) is in "BZ" mode,
either because a BZ control edit descriptor appeared in a FORMAT or
BLANK="ZERO" appeared in OPEN or READ, input editing must not skip
over blanks before or within the input field.

Differential Revision: https://reviews.llvm.org/D123725
The file was modifiedflang/unittests/Runtime/NumericalFormatTest.cpp
The file was modifiedflang/runtime/iostat.cpp
The file was modifiedflang/runtime/io-stmt.h
The file was modifiedflang/include/flang/Runtime/iostat.h
The file was modifiedflang/runtime/edit-input.cpp
Commit 90a17ef6cc3451945d7f3c40a0a9b5ab1b3a26e5 by nicolai.haehnle
AMDGPU: Add mixed sign/zero-extend multiply-add test

There's a missed opportunity here that a later patch will exploit.
The file was modifiedllvm/test/CodeGen/AMDGPU/mad_64_32.ll
Commit 5232c5c5d41489a07d0e72a0e87229a58950f94a by chiahungduan
[mlir] Fix verification order of nested ops.

In order to increase parallism, certain ops with regions and have the
IsIsolatedFromAbove trait will have their verification delayed. That
means the region verifier may access the invalid ops and may lead to a
crash.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D122771
The file was modifiedmlir/test/Dialect/MemRef/invalid.mlir
The file was modifiedmlir/test/Dialect/Func/invalid.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was addedmlir/test/IR/test-verification-order.mlir
The file was modifiedmlir/lib/IR/Verifier.cpp
Commit f097088b0515eea5fb8a3bb6d6a4ad66a907eee2 by nicolai.haehnle
AMDGPU: Add more mad_64_32 test cases

Test the behavior when a MUL is used multiple times, as well as when it
is uniform.

Run the tests for gfx9 as well, which added S_MUL_HI_[IU]32.
The file was modifiedllvm/test/CodeGen/AMDGPU/mad_64_32.ll
Commit b483ce12281e31311efacf0047f95767517dcde9 by i
[ELF][ARM] Fix unneeded thunk for branches to hidden undefined weak

Similar to D123750 for AArch64.
The file was modifiedlld/test/ELF/arm-undefined-weak.s
The file was modifiedlld/ELF/Arch/ARM.cpp
Commit 545d353b3cab4c739246651e06e8bccd134627c0 by Lian.Wang
[RISCV][NFC] Refactor VL patterns for vnsrl and vnsra

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D123274
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Commit 43e0cedc1e3d01cb8b2a7ada4418cf76e9382613 by Vitaly Buka
[NFC] Reformat a part of TestingConfig.py
The file was modifiedllvm/utils/lit/lit/TestingConfig.py
Commit b61f173f243136594287d68d3781a92b29cb102c by Vitaly Buka
[lit] Forward more sanitizer env in TestingConfig
The file was modifiedllvm/utils/lit/lit/TestingConfig.py
Commit 5206c2c167ed8826bf233d0e424a87c5e11bc807 by brad
[Driver] Move Lanai IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC

Reviewed By: MaskRay, jpienaar

Differential Revision: https://reviews.llvm.org/D123836
The file was modifiedclang/lib/Driver/ToolChains/Lanai.h
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
Commit 7a80912dd8430489f5090a84abcb212d9c40842f by joker.eph
Apply clang-tidy fixes for modernize-use-default-member-init in ControlFlowSinkUtils.cpp (NFC)
The file was modifiedmlir/lib/Transforms/Utils/ControlFlowSinkUtils.cpp
Commit 4197475eb06ed8d6fd021414635fe21b50c6b1b7 by joker.eph
Apply clang-tidy fixes for readability-identifier-naming in TestTypes.cpp (NFC)
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.cpp
Commit 8e43cbab33765c476337571e5ed11b005199dd0d by daniil
[UpdateTestChecks] Add NVPTX support in update_llc_test_checks.py

This patch makes possible generating NVPTX assembly check lines with
update_llc_test_checks.py utility.

Differential Revision: https://reviews.llvm.org/D122986
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/nvptx-basic.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/nvptx-basic.ll.expected
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
The file was modifiedllvm/utils/UpdateTestChecks/isel.py
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/nvptx-basic.test
Commit afa7c5ddc6bd35213948eb91b434e3c04e6b14bc by brad
[WebAssembly] Remove TODO comment for IAS, NFC

IAS has been enabled on WebAssembly since commit 0a55d3f557a74cfb459b24e442072302d5444baf.
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
Commit 866bd4df477706c6ad1e5d6d2876d7a6eed4def8 by courbet
[NFC] Add test in preparation for D123849.
The file was addedllvm/test/Transforms/ExpandMemCmp/X86/bcmp.ll
Commit 46a13a0ef847dbe3226f4b3d8726ef25c8909293 by courbet
[ExpandMemCmp] Properly expand `bcmp` to an equality pattern.

Before that change, constant-size `bcmp` would miss an opportunity to generate
a more efficient equality pattern and would generate a -1/0-1 pattern
instead.

Differential Revision: https://reviews.llvm.org/D123849
The file was modifiedllvm/lib/CodeGen/ExpandMemCmp.cpp
The file was modifiedllvm/test/CodeGen/X86/memcmp-pgso-x32.ll
The file was modifiedllvm/test/CodeGen/X86/memcmp-optsize-x32.ll
The file was modifiedllvm/test/Transforms/ExpandMemCmp/X86/bcmp.ll
The file was modifiedllvm/test/CodeGen/X86/memcmp-pgso.ll
The file was modifiedllvm/test/CodeGen/X86/memcmp-optsize.ll
Commit f097885b07435bb6cd64440ed23c60660024285e by thakis
[gn build] (manually) port 6d45558c1a05d (MipsGenPostLegalizeGICombiner)
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/Mips/BUILD.gn
Commit 49cb4fef02e635bf304906232214166c7531d753 by zhongyunde
[AArch64][SelectionDAG] Refactor to support more scalable vector extending stores

Similar to D122281, we should firstly exclude all scalable vector extending
stores and then selectively enable those which we directly support.

Also merge integer and float scalable vector into scalable_vector_valuetypes.

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D123449
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 1d83750f631d60bf6f371fa3fd0efc0499470d3f by nikolasklauser
[libc++] Implement ranges::copy{, _n, _if, _backward}

Reviewed By: Mordante, var-const, #libc

Spies: sstefan1, libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D122982
The file was modifiedlibcxx/include/module.modulemap
The file was modifiedlibcxx/include/__algorithm/copy.h
The file was addedlibcxx/include/__algorithm/ranges_copy_if.h
The file was addedlibcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_n.pass.cpp
The file was addedlibcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
The file was modifiedlibcxx/test/libcxx/private_headers.verify.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_if.pass.cpp
The file was addedlibcxx/include/__algorithm/ranges_copy_n.h
The file was modifiedlibcxx/include/__algorithm/unwrap_iter.h
The file was modifiedlibcxx/include/__algorithm/copy_backward.h
The file was addedlibcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
The file was modifiedlibcxx/include/algorithm
The file was addedlibcxx/include/__algorithm/ranges_copy.h
The file was modifiedlibcxx/docs/Status/RangesAlgorithms.csv
The file was addedlibcxx/include/__algorithm/ranges_copy_backward.h
Commit 4dba3d4c539f5ffa025d6dc356862dff3e70784f by llvmgnsyncbot
[gn build] Port 1d83750f631d
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 8fbed6870bb290d8f62840b3bb29c16ffec7f3ed by lebedev.ri
[UpdateTestChecks] Prevent rapid onset insanity when forced to write LoopVectorize-driven costmodel tests

Subj, or on other words, we have a lot of tests that are driven by
the LoopVectorizer's debug output, but we don't have
any meaningful way to autogenerate checklines in them,
which means that an insurmountable amount of manual work
is required when modifying the appropriate cost models.

That is not sustainable, so this presents a solution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D121133
The file was addedllvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test
The file was modifiedllvm/utils/update_analyze_test_checks.py
The file was addedllvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll
The file was modifiedllvm/utils/UpdateTestChecks/common.py
Commit 5865a74755aceacaee624c66fcfac803d8c8ebf9 by lebedev.ri
Require asserts in newly added test
The file was modifiedllvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test
Commit 24c84bd2363a7195d928ce9beb568b66d8e64869 by momchil.velikov
[AArch64] Async unwind - Fix MTE codegen emitting frame adjustments in a loop

When untagging the stack, the compiler may emit a sequence like:
```
        .LBB0_1:
          st2g sp, [sp], #32
          sub x8, x8, #32
          cbnz x8, .LBB0_1
          stg sp, [sp], #16
```
These stack adjustments cannot be described by CFI instructions.

This patch disables merging of SP update with untagging, i.e. makes the
compiler use an additional scratch register (there should be plenty
available at this point as we are in the epilogue) and generate:
```
            mov     x9, sp
            mov     x8, #256
            stg     x9, [x9], #16
    .LBB0_1:
            sub     x8, x8, #32
            st2g    x9, [x9], #32
            cbnz    x8, .LBB0_1
            add     sp, sp, #272
```
Merging is disabled only when we need to generate asynchronous unwind
tables.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D114548
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/settag.ll
Commit 4db65e279b96e2af9a4ea2c1e2acc40a64de2a0e by antiagainst
[mlir][vector] Reorder elementwise(transpose)

Similar to the existing pattern for reodering cast(transpose),
this makes transpose following transpose and increases the chance
of embedding the transposition inside contraction op. Actually
cast ops are just special instances of elementwise ops.

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D123596
The file was modifiedmlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-reduce-to-contract.mlir
Commit 33d3fc4466479285121cbb1a62db249454da0bda by aaron
[C89/C2x] Diagnose calls to a function without a prototype but passes arguments

This catches places where a function without a prototype is
accidentally used, potentially passing an incorrect number of
arguments, and is a follow-up to the work done in
https://reviews.llvm.org/D122895 and described in the RFC
(https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c).
The diagnostic is grouped under the new -Wdeprecated-non-prototypes
warning group and is enabled by default.

The diagnostic is disabled if the function being called was implicitly
declared (the user already gets an on-by-default warning about the
creation of the implicit function declaration, so no need to warn them
twice on the same line). Additionally, the diagnostic is disabled if
the declaration of the function without a prototype was in a location
where the user explicitly disabled deprecation warnings for functions
without prototypes (this allows the provider of the API a way to
disable the diagnostic at call sites because the lack of prototype is
intentional).
The file was modifiedclang/test/Analysis/svalbuilder-float-cast.c
The file was modifiedclang/test/Analysis/nullability.c
The file was modifiedclang/test/Sema/warn-deprecated-non-prototype.c
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
Commit f263dac4465c251e37af9787baf5e9f56138e369 by Jan Svoboda
[clang][parse] NFCI: Use FileEntryRef in Parser::ParseModuleImport()

This patch removes use of the deprecated `DirectoryEntry::getName()` from `Parser` by using `{File,Directory}EntryRef` instead.

Reviewed By: bnbarham

Differential Revision: https://reviews.llvm.org/D123767
The file was modifiedclang/lib/Parse/Parser.cpp
Commit 9d98f58959b12b6ddab5ac10453e1464bb830e96 by Jan Svoboda
[clang][CodeGen] NFCI: Use FileEntryRef

This patch removes use of the deprecated `DirectoryEntry::getName()` from clangCodeGen by using `{File,Directory}EntryRef` instead.

Reviewed By: bnbarham

Differential Revision: https://reviews.llvm.org/D123768
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/CodeGen/CGObjCGNU.cpp
Commit 99b4874a53cf4cd39a164a63b5505baace825d7c by Jan Svoboda
[clang] NFCI: Use DirectoryEntryRef in collectIncludePCH

This patch removes use of the deprecated `DirectoryEntry::getName()` from `collectIncludePCH` by using `{File,Directory}EntryRef` instead.

Reviewed By: bnbarham

Differential Revision: https://reviews.llvm.org/D123769
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit 713e716cdaef1ee069f27bb71fd232a782565e0a by Jan Svoboda
[clang] NFCI: Use FileEntryRef in FileManagerTest

This patch removes use of the deprecated `{File,Directory}Entry::getName()` from `FileManager` unit tests by using `{File,Directory}EntryRef` instead.

Reviewed By: bnbarham

Differential Revision: https://reviews.llvm.org/D123770
The file was modifiedclang/unittests/Basic/FileManagerTest.cpp
Commit 0b09b5d44837ea71c6bf017607b33f283c4417c6 by Jan Svoboda
[clang][lex] NFC: Use FileEntryRef in PreprocessorLexer::getFileEntry()

This patch changes the return type of `PreprocessorLexer::getFileEntry()` so that its clients may stop using the deprecated APIs of `FileEntry`.

Reviewed By: bnbarham

Differential Revision: https://reviews.llvm.org/D123772
The file was modifiedclang/include/clang/Lex/PreprocessorLexer.h
The file was modifiedclang/lib/Sema/SemaCodeComplete.cpp
The file was modifiedclang/lib/Lex/PreprocessorLexer.cpp
Commit 57a4f9bd493bca0dc78b16951c7d3f3fadfbc2f2 by aaron
Fix failing test case found by bots:

https://lab.llvm.org/buildbot#builders/109/builds/36683
https://lab.llvm.org/buildbot#builders/164/builds/15456
(and others)
The file was modifiedclang/test/SemaObjC/nonnull.m
Commit 4f277f28ab88bb96c8da1da96dda11bab17a3da7 by aaupov
[BOLT] Check if LLVM_REVISION is defined

Handle the case where LLVM_REVISION is undefined (due to LLVM_APPEND_VC_REV=OFF
or otherwise) by setting "<unknown>" value as before D123549.

Reviewed By: yota9

Differential Revision: https://reviews.llvm.org/D123852
The file was modifiedbolt/lib/Utils/CommandLineOpts.cpp
Commit 61bd985f2a6f58a5f796ba742a7378e60bf1c51a by gribozavr
Adjust Bazel BUILD files for 6d45558c1
The file was modifiedutils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Commit be0905a333d6f7c4d7f5c70c18211463e53473cd by jun
[Clang][Sema] Fix invalid redefinition error in if/switch/for statement

Clang should no longer incorrectly diagnose a variable declaration inside of a
lambda expression that shares the name of a variable in a containing
if/while/for/switch init statement as a redeclaration.

After this patch, clang is supposed to accept code below:

void foo() {
  for (int x = [] { int x = 0; return x; }(); ;) ;
}

Fixes https://github.com/llvm/llvm-project/issues/54913

Differential Revision: https://reviews.llvm.org/D123840
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Sema/IdentifierResolver.cpp
The file was modifiedclang/test/SemaCXX/cxx1z-init-statement.cpp
Commit 7ed01ba88d67a0eb79663547f9ec21d106f7b281 by Jan Svoboda
[clang][deps] NFC: Inline function with single caller
The file was modifiedclang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
Commit 26b0ecb8985b7e76a5ca0965d3d464611eda14f0 by Jan Svoboda
[clang][deps] NFC: Update documentation
The file was modifiedclang/tools/clang-scan-deps/ClangScanDeps.cpp
Commit be5c15c7aee1ef4964c88031555ed6b0f59ebc23 by lebedev.ri
[NFC][Costmodel][LV][X86] Refresh one or two interleaved load/store tests
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-3.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-3.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-3.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-3.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-8.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-7.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-4.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-4.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-8.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-4.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-7.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-4.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-8.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-8.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-5.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-7.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-6.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-8.ll
Commit 04000c2f928a7adc32138a664d167f01b642bef3 by corentinjabot
[clang] Implement Change scope of lambda trailing-return-type

Implement P2036R3.

Captured variables by copy (explicitely or not), are deduced
correctly at the point we know whether the lambda is mutable,
and ill-formed before that.

Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that capture would not be available to look up.

The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.

The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.

We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.

The order of operations is as follow:

* Parse the init capture in the lambda's parent scope

* Introduce a lambda scope

* Create the lambda class and call operator

* Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type).
Instead, explicit  captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).

* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.

* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).

* The lambda qualifiers are parsed, at this point We can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers,
record the lambda is mutable and capture the explicit variables.

* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.

At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).

Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119136
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/Scope.cpp
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was addedclang/test/SemaCXX/lambda-capture-type-deduction.cpp
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/www/cxx_status.html
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
The file was modifiedclang/test/SemaCXX/warn-shadow-in-lambdas.cpp
Commit b1bb76a731d283368ae2b0a0913d76f18f107a6d by daniil
[NFC][UpdateTestChecks] Fix whitespace in common.py and asm.py

While working on D122986, noticed that indentation size varies even within
one file. Fixed that - now indentation is 2 spaces everywhere. This indentation

Differential Revision: https://reviews.llvm.org/D123859
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
Commit eafe182fdc6b595486b419156b713d11a2cee384 by fraser
[VP] Rename ISD::VP_FPROUND and ISD::VP_FPEXT

Rename them to be more closely related to their non-VP counterparts.

Reviewed By: jacquesguan, ym1813382441

Differential Revision: https://reviews.llvm.org/D123847
The file was modifiedllvm/include/llvm/IR/VPIntrinsics.def
Commit 52e6a27690ca8e5f07cc646716c3736475b7746b by i
Clean up `OMPAtomicDirective::Create`
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
Commit c7d4a05228090cb6b1b7f6e5d300f197897ac756 by aaron
Properly identify builtins in a diagnostic note

When emitting a "conflicting types" warning for a function declaration,
it's more clear to diagnose the previous declaration specifically as
being a builtin if it one.
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/Sema/prototype-redecls.c
Commit 6c5ae8e9744b6dab85efab404b0338fe70b0bd73 by zinenko
[mlir] Support opaque types in LLVM IR -> MLIR translation

LLVM IR is moving towards adoption of opaque pointer types. These require extra
information to be passed when constructing some operations, in particular GEP
and Alloca. Adapt the builders of said operations and modify the translation
code to handle both opaque and non-opaque pointers.

This incidentally adds the translation for Alloca alignment and fixes the translation
of struct-related GEP indices that must be constant.

Reviewed By: wsmoses

Differential Revision: https://reviews.llvm.org/D123792
The file was addedmlir/test/Target/LLVMIR/import-opaque.ll
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/lib/Target/LLVMIR/TypeFromLLVM.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/test/Target/LLVMIR/import.ll
Commit bed8212157bbf298cddf2e156940452e5067ea05 by jeffniu22
[mlir][ods][NFC] Move enum attribute definitions from OpBase.td to EnumAttr.td

This diff moves `EnumAttr` tablegen definitions (specifically, `IntEnumAttr` and
`BitEnumAttr`-related classes) from `OpBase.td` to `EnumAttr.td`. No
functionality is changed.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D123551
The file was modifiedmlir/include/mlir/IR/EnumAttr.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/mlir-tblgen/op-attribute.td
The file was modifiedmlir/include/mlir/Dialect/Arithmetic/IR/ArithmeticBase.td
The file was modifiedmlir/unittests/TableGen/enums.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/include/mlir/Dialect/Vector/IR/VectorOps.td
The file was modifiedmlir/include/mlir/Dialect/GPU/ParallelLoopMapperAttr.td
Commit ca2be81e34a6d87edb8e555dfac94ab68ee20f70 by pklausler
[flang] Fix Symbol::Rank for ProcEntityDetails

When a procedure pointer or procedure dummy argument has a
defined interface, the rank of the pointer (or dummy) is the
rank of the interface.

Also tweak code discovered in shape analysis when investigating
this problam so that it returns a vector of emptied extents rather
than std::nullopt when the extents are not scope-invariant, so that
the rank can at least be known.

Differential Revision: https://reviews.llvm.org/D123727
The file was modifiedflang/lib/Evaluate/shape.cpp
The file was modifiedflang/include/flang/Semantics/symbol.h
The file was modifiedflang/test/Evaluate/rewrite01.f90
Commit ed499ddcdaa6a47d21d98c12f29a94386cd4643a by gh
[MLIR] Fix operation clone

Operation clone is currently faulty.

Suppose you have a block like as follows:

```
(%x0 : i32) {
   %x1 = f(%x0)
   return %x1
}
```

The test case we have is that we want to "unroll" this, in which we want to change this to compute `f(f(x0))` instead of just `f(x0)`. We do so by making a copy of the body at the end of the block and set the uses of the argument in the copy operations with the value returned from the original block.
This is implemented as follows:
1) map to the block arguments to the returned value (`map[x0] = x1`).
2) clone the body

Now for this small example, this works as intended and we get the following.

```
(%x0 : i32) {
   %x1 = f(%x0)
   %x2 = f(%x1)
   return %x2
}
```

This is because the current logic to clone `x1 = f(x0)` first looks up the arguments in the map (which finds `x0` maps to `x1` from the initialization), and then sets the map of the result to the cloned result (`map[x1] = x2`).

However, this fails if `x0` is not an argument to the op, but instead used inside the region, like below.

```
(%x0 : i32) {
   %x1 = f() {
      yield %x0
   }
   return %x1
}
```

This is because cloning an op currently first looks up the args (none), sets the map of the result (`map[%x1] = %x2`), and then clones the regions. This results in the following, which is clearly illegal:

```
(%x0 : i32) {
   %x1 = f() {
      yield %x0
   }
   %x2 = f() {
      yield %x2
   }
   return %x2
}
```

Diving deeper, this is partially due to the ordering (how this PR fixes it), as well as how region cloning works. Namely it will first clone with the mapping, and then it will remap all operands. Since the ordering above now has a map of `x0 -> x1` and `x1 -> x2`, we end up with the incorrect behavior here.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D122531
The file was modifiedmlir/include/mlir/IR/Operation.h
The file was addedmlir/test/lib/IR/TestClone.cpp
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/test/IR/test-clone.mlir
Commit 04e094a33629e97d4ec51db4d5ca56066d82b030 by i
[PGO] Remove legacy PM passes

Legacy PM for optimization pipeline was deprecated in 13.0.0 and Clang dropped
legacy PM support in D123609. This change removes legacy PM passes for PGO so
that downstream projects won't be able to use it. It seems appropriate to start
removing such "add-on" features like instrumentations, before we remove more
stuff after 15.x is branched.

I have checked many LLVM users and only ldc[1] uses the legacy PGO pass.

[1]: https://github.com/ldc-developers/ldc/issues/3961

Reviewed By: davidxl

Differential Revision: https://reviews.llvm.org/D123834
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/include/llvm/Transforms/Instrumentation.h
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
The file was modifiedllvm/include/llvm/LinkAllPasses.h
The file was modifiedllvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
The file was modifiedllvm/lib/Transforms/Instrumentation/Instrumentation.cpp
Commit 3430ae1e7baa11992084e3624eb28f9dfd941ec7 by jeffniu22
[mlir] Update LICM to support Graph Regions

Changes the algorithm of LICM to support graph regions (no guarantee of topologically sorted order). Also fixes an issue where ops with recursive side effects and regions would not be hoisted if any nested ops used operands that were defined within the nested region.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D122465
The file was modifiedmlir/lib/Interfaces/LoopLikeInterface.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/Transforms/loop-invariant-code-motion.mlir
Commit 2f78f9455f85e61fcfeb1dc3a13d62c912aa0c96 by zequanwu
[LLDB][NativePDB] Fix subfield_register_simple_type.s test
The file was modifiedlldb/test/Shell/SymbolFile/NativePDB/subfield_register_simple_type.s

Summary

  1. [sanitizer] Enable libcxx tests (details)
  2. [msan] Disable poison_in_dtor (details)
  3. [BOLT] Disable LLVM_APPEND_VC_REV (details)
  4. [asan] Disable ODR check in libcxx (details)
  5. [sanitizer] Fix typo in bash script (details)
  6. Revert "[asan] Disable ODR check in libcxx" (details)
  7. [asan] Disable RTTI and EXPECTIONS in libcxx (details)
  8. [asan] Use -asan-use-private-alias to suppress known bug (details)
Commit 8d8f8506be3a4bf555ec74e4ae6baae2edeee2bd by Vitaly Buka
[sanitizer] Enable libcxx tests
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit 33d356964e87780520fb8fcc788960a4b8ab2b7c by Vitaly Buka
[msan] Disable poison_in_dtor

Needs cleanup after b61f173f243136594287d68d3781a92b29cb102c
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit 9116ef0ff62d55f56d423c60cd6ecf13cf8bdf34 by aaupov
[BOLT] Disable LLVM_APPEND_VC_REV

The revision is explicit in buildbot runs. Disable the option to avoid
re-linking binaries on every commit.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D123552
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit ea1c3d47d349a7569f355a8874a15901c442a6ed by Vitaly Buka
[asan] Disable ODR check in libcxx

Fails after it b61f173f243136594287d68d3781a92b29cb102c
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit e566f65592b60f930771cf6fcaafd20379d7aae6 by Vitaly Buka
[sanitizer] Fix typo in bash script
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit a3810f307f37585915b2bd0314537d7533266eda by Vitaly Buka
Revert "[asan] Disable ODR check in libcxx"

check_initialization_order has nothing to do with ODR checks.

This reverts commit ea1c3d47d349a7569f355a8874a15901c442a6ed.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit 79d3ea5cc60ad9f432f0eb59640b5c128582f949 by Vitaly Buka
[asan] Disable RTTI and EXPECTIONS in libcxx

These test were just enabled and there are some ODR report.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh
Commit 8f10f442ca5a60ac7e7be520beadf10d7c0e8344 by Vitaly Buka
[asan] Use -asan-use-private-alias to suppress known bug
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_functions.sh