AbortedChanges

Summary

  1. [MS] Apply `inreg` to AArch64 sret parms on instance methods (details)
  2. [CGBuiltin] Respect asm labels and redefine_extname for builtins with specialized emitting (details)
  3. Add missing 'override' (details)
  4. [mlir][vector] Add unrolling patterns for Transfer read/write (details)
  5. [GlobalISel] Remove scalar src from non-sequential fadd/fmul reductions. (details)
  6. [AArch64][GlobalISel] NFC: Refactor emitIntegerCompare (details)
  7. [PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting (details)
  8. [mlir] RewriterGen NativeCodeCall matcher with ConstantOp matcher (details)
  9. Switch the default of VerifyIntegerConstantExpression from constant (details)
  10. [MLIR] Fix gcc5 in D89161 (details)
  11. [llvm-cov] don't include all source files when provided source files are filtered out (details)
  12. [mlir][CAPI] Add mlirAttributeGetType function. (details)
  13. Support ObjC in IncludeInserter (details)
  14. [SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs (details)
  15. [llvm-cov] Fix test cases. (details)
  16. [RISCV] Add -mtune support (details)
  17. [RISCV] Fix -Wbraced-scalar-init after D89025 (details)
  18. [SCEV][NFC] Split out type balancing in implication engine (details)
  19. [lib/ObjectYAML] - Simplify the code that handles Content/Size fields. (details)
  20. Remove dead variable to silence compiler warning [NFC] (details)
  21. Revert "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs" (details)
  22. Fix hidden-redecls.m test for some environments (details)
  23. Recommit "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  24. [AMDGPU] Correct comment typo in AMDGPUSubtarget.h (details)
  25. [SCEV] Add a few test cases where the max BTC is limited by wrapping. (details)
  26. [MemLoc] Support memchr/memccpy in MemoryLocation::getForArgument (details)
  27. [InstCombine] foldAndOrOfICmpsOfAndWithPow2 - add vector support (details)
  28. [SVE][CodeGen]Use getFixedSize() function for TypeSize comparison in clang (details)
  29. [InstCombine] narrowRotate - minor refactoring for funnel shift support. NFC. (details)
  30. [ValueTracking] Clarify TypeSize comparisons (details)
  31. Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs" (details)
  32. [Indvars][NFC] Remove duplicating checks (details)
  33. [AMDGPU] Add a message to an assert (details)
  34. [Indvars][NFCI] Remove meaningless restrictive code in IndVars (details)
  35. [InstCombine] Add trunc+zext 'narrow' funnel shift tests (PR35155) (details)
  36. [InstCombine] Fix typo in narrow funnel shift test (details)
  37. [lldb] Fix FreeBSD build for ea3a547 (details)
  38. [InstCombine] foldSelectRotate - canonicalize to OR(SHL,LSHR). NFCI. (details)
  39. [Indvars][NFC] Merge two functions together (details)
  40. [libc++] NFC: Move iterator.range tests into the right place (details)
  41. [libc++] NFCI: Use Lit features to disable tests instead of #if (details)
  42. [globalopt] Teach to look through `addrspacecast`. (details)
  43. Revert "[llvm-cov] don't include all source files when provided source files are filtered out" (details)
  44. [libcxx] Fix printf formats in two tests. (details)
  45. [libcxxabi] Fix printf formats in a test. (details)
  46. [clang-tidy] modernize-loop-convert reverse iteration support (details)
  47. [lldb] Modernize PseudoTerminal::OpenSecondary (details)
  48. [lldb] Minidump: check for .text hash match with directory (details)
  49. AMDGPU: Don't kill super-register with overlapping copy (details)
  50. llvm-reduce: Fix typo in status message (details)
  51. llvm-reduce: Don't replace intrinsic calls with undef (details)
  52. [flang] Failed call to CHECK() for call to ASSOCIATED(NULL()) (details)
  53. clang-format: Assert in-memory file created in createInMemoryFile, NFC (details)
  54. [libcxx] [test] Use string() instead of native() as parameter to std::ifstream/ofstream in copy_file_large.pass.cpp (details)
  55. [libcxx] [test] Use fs::path::string_type instead of std::string in fs.op.relative (details)
  56. [libcxx] [test] Mark tests for libcxx specific implementation details with LIBCPP_ONLY() (details)
  57. [libcxx] [test] Add (void) return casts on functions marked nodiscard in MS STL (details)
  58. [InstCombine] Remove custom and(trunc(and(x,c1)),c2) fold (details)
  59. [InstCombine] visitAnd - add some ((val OP C1) & C2) vector test coverage (details)
  60. [InstCombine] visitAnd - pull out repeated I.getType() calls. NFCI. (details)
  61. Disable DynamicLibraryTests when using LLVM_INTEGRATED_CRT_ALLOC (PR47881) (details)
  62. [Hexagon] Fix license headers in some .td files, NFC (details)
  63. Reapply "OpaquePtr: Add type to sret attribute" (details)
  64. [MLIR] Add idempotent trait folding (details)
  65. [llc] Use -filetype=null to disable MIR printing (details)
  66. [AMDGPU] Add new llvm.amdgcn.fma.legacy intrinsic (details)
  67. [libc++] Move the oss-fuzz script to libc++ (details)
  68. [libc++] Move the oss-fuzz script to libcxx/utils/ci (details)
  69. [MemProf] Memory profiling runtime support (details)
  70. [llvm-objdump] Implement --prefix option (details)
  71. [libc++] Avoid relying on `realpath` being installed on the system (details)
  72. [GlobalISel] Add translation support for vector reduction intrinsics. (details)
  73. [AArch64][GlobalISel] Add basic legalizer rules for supported add/fadd reductions. (details)
  74. [AArch64][GlobalISel] Regbankselect reductions to use FPR bank for scalars. (details)
  75. [MemProf] Don't build memprof if sanitizer not being built (details)
  76. [AMDGPU][HIP] Switch default DWARF version to 5 (details)
  77. [Indvars][NFCI] Simplify assertion. (details)
  78. [libcxx] [test] Fix string type handling in a few fairly trivial class.path tests (details)
  79. [gn build] (manually) port 3d4bba302d246 (details)
  80. [gn build] Port 3d4bba302d2 (details)
  81. [test] Pin null-function.ll to legacy PM (details)
  82. [AArch64][GlobalISel] Add selection support for v2s32 and v2s64 reductions for FADD/ADD. (details)
  83. [llvm-objdump][test] Delete source-interleave-prefix-windows.test (details)
  84. Add support for more OS types to AddClangModuleCompilationOptionsForSDKType() (details)
  85. [llvm-objdump][test] Unsupport system-windows for source-interleave-prefix.test (details)
  86. [docs] Fix some out-of-date / inaccurate text and missing formatting in the User's Manual. (details)
  87. [mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects. (details)
  88. [mlir] Optimize symbol related checks in SymbolDCE (details)
  89. [mlir] Add a new SymbolUserOpInterface class (details)
  90. [mlir] Update SCCP and the Inliner to use SymbolTableCollection for symbol lookups (details)
  91. [AMDGPU] Run hazard recognizer pass later (details)
  92. [flang] Disallow pointer constants (details)
  93. [CGSCC] Add -abort-on-max-devirt-iterations-reached option (details)
  94. [SCEV] Add additional tests where the max BTC is limited by wrapping. (details)
  95. Revert "Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs"" (details)
  96. [AMDGPU] Drop array size in AMDGCNGPUs and R600GPUs (details)
  97. [VectorCombine] Avoid crossing address space boundaries. (details)
  98. Extend memset-to-zero optimization to C++11 aggregate functional casts (details)
  99. Treat constant contexts as being in the default rounding mode. (details)
  100. make the AsmPrinterHandler array public (details)
  101. Fix Windows llvm-objdump tests (details)
  102. [AMDGPU] Fix gfx1032 description in AMDGPUUsage.rst. NFC. (details)
  103. Revert "Fix Windows llvm-objdump tests" (details)
  104. [Format/ObjC] Correctly handle base class with lightweight generics and protocol (details)
  105. Revert "make the AsmPrinterHandler array public" (details)
  106. [lldb] Implement ObjCExceptionThrowFrameRecognizer::GetName() (details)
  107. [objdump][macho] Check arch before formating reloc name as arm64 addend (details)
  108. PR44406: Follow behavior of array bound constant folding in more recent versions of GCC. (details)
  109. Fixed a failure when const matcher fails, added a test to catch (details)
  110. [PowerPC] Implementation of 128-bit Binary Vector Rotate builtins (details)
  111. Fix accidental use of VLAs that causes these tests to fail after Clang (details)
  112. [libomptarget] Fix copy-to motion for PTR_AND_OBJ entries where PTR is a struct member. (details)
  113. Make the check for whether we should memset(0) an aggregate (details)
  114. [AArch64][GlobalISel] Select csinc if a select has a 1 on RHS. (details)
  115. [NPM] Fix some PhaseOrdering tests under NPM (details)
  116. [MemorySSA] Verify clobbering within reachable blocks. (details)
  117. [TargetLowering] Extract simplifySetCCs ctpop into a separate function. NFCI (details)
  118. [DebugInfo] Support for DWARF operator DW_OP_over (details)
  119. [LangRef] Rename the names of metadata in load/store's syntax (NFC) (details)
  120. This test includes a source that will produce basic blocks and hence sections with -fbasic-block-sections=all. (details)
  121. Add support for !noundef metatdata on loads (details)
  122. Un-indent the section on 'Writing Target Stop-Hooks in Python' (details)
  123. Revert "Register TargetCXXABI.def as a textual header" (details)
  124. [lldb] Enable cmake policy CMP0077 for option() (details)
  125. [ARM] Add a very basic active_lane_mask cost (details)
  126. [ARM] Basic getArithmeticReductionCost reduction costs (details)
  127. [NFC] fix some typos in LoopUnrollPass (details)
  128. [MemCpyOpt] Extract common function for unwinding check (details)
  129. [RISCV][ASAN] Fix passing XFAIL tests (details)
  130. [NFC][ML] Avoid source of some signed/unsigned warnings in TFUtilsTest (details)
  131. [InstCombine] (~A & B) ^ A -> A | B (details)
  132. Revert "[clang-format] Fix AlignConsecutive on PP blocks" (details)
  133. [NFC][SCEV] Add some more ptrtoint/PR46786 -related tests (details)
  134. [NFC][SCEV] Add 'getMinusOne()' method (details)
  135. [NFC][SCEV] Refactor getAbsExpr() out of createSCEV() (details)
  136. [SCEV] Model `ashr exact x, C` as `(abs(x) EXACT/u (1<<C)) * signum(x)` (details)
Commit 5fbab4025eb57b12f2842ab188ff07a110708e1d by rnk
[MS] Apply `inreg` to AArch64 sret parms on instance methods

The documentation rules indicate that instance methods should return
large, trivially copyable aggregates via X1/X0 and not X8 as is normally
done when returning such structs from free functions:
https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2019#return-values

Fixes PR47836, a bug in the initial implementation of these rules.

I tried to simplify the logic a bit as well while I'm here.

Differential Revision: https://reviews.llvm.org/D89362
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
Commit 5a338599fbaa805587227779bde0a9986cb4646d by i
[CGBuiltin] Respect asm labels and redefine_extname for builtins with specialized emitting

rL131311 added `asm()` support for builtin functions, but `asm()` for builtins with
specialized emitting (e.g. memcpy, various math functions) still do not work.

This patch makes these functions work for `asm()` and `#pragma redefine_extname`.
glibc uses `asm()` to redirect internal libc function calls to hidden aliases.

Limitation: such a function is a builtin in clang, but will not be recognized as
a libcall in optimization passes because Clang does not annotate the renamed
function as a libcall.  In GCC -O1 or above, `abs` can be optimized out but we can't.
Additionally, we cannot redirect `__builtin_sin` to `real_sin` in the following example:

  double sin(double x) asm("real_sin");
  double f(double d) { return __builtin_sin(d); }

---

According to @rsmith, the following three statements cannot be simultaneously true:

(1) The frontend function foo has known, builtin semantics X.
(2) The symbol foo has known, builtin semantics X.
(3) It's not correct to lower a call to the frontend function foo to the symbol foo.

People do want (1) (if it is profitable to expand a memcpy, do it).
This also means that people do not want to add -fno-builtin-memcpy.
People do want (3): that is why they use asm("__GI_memcpy") in the first place.

So unfortunately we make a compromise by not refuting (2) (see the limitation above).
For most libcalls, there is a small loss because compilers don't synthesize them.
For the few glibc cares about, it uses `asm("memcpy = __GI_memcpy");` to make
the assembly level redirection.
(Changing function names (e.g. `__memcpy`) is a hit to ergonomics which is not acceptable).

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D88712
The file was modifiedclang/test/CodeGen/asm-label.c
The file was modifiedclang/test/CodeGen/redefine_extname.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 4c1c88bbc114dc0abd9c2dc5548378d695124c84 by dblaikie
Add missing 'override'
The file was modifiedmlir/tools/mlir-tblgen/TypeDefGen.cpp
Commit edbdea7466d25c5e4d9f73e3043ac87efe433193 by thomasraoux
[mlir][vector] Add unrolling patterns for Transfer read/write

Adding unroll support for transfer read and transfer write operation. This
allows to pick the ideal size for the memory access for a given target.

Differential Revision: https://reviews.llvm.org/D89289
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was addedmlir/test/Dialect/Vector/vector-transfer-unroll.mlir
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
Commit c2551c1f4058d2c3cc4964b1d1d0ca5946036f6c by Amara Emerson
[GlobalISel] Remove scalar src from non-sequential fadd/fmul reductions.

It's probably better to split these into separate G_FADD/G_FMUL + G_VECREDUCE
operations in the translator rather than carrying the scalar around. The
majority of the time it'll get simplified away as the scalars are probably
identity values.

Differential Revision: https://reviews.llvm.org/D89150
The file was modifiedllvm/test/MachineVerifier/test_vector_reductions.mir
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
Commit 609d765cd3b1a4f9558b654dbb1bc7c973f3408b by Jessica Paquette
[AArch64][GlobalISel] NFC: Refactor emitIntegerCompare

Simplify emitIntegerCompare and improve comments + asserts.

Mostly making the code a little easier to follow.

Also, this code is only used for G_ICMP. The legalizer ensures that the LHS/RHS
for every G_ICMP is either a s32 or s64. So, there's no need to handle anything
else. This lets us remove a bunch of checks for whether or not we successfully
emitted the compare.

Differential Revision: https://reviews.llvm.org/D89433
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 273c299d5d649a0222fbde03c9a41e41913751b4 by Saleem Abdulrasool
[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting

This patch adds -f[no-]split-cold-code CC1 options to clang. This allows
the splitting pass to be toggled on/off. The current method of passing
`-mllvm -hot-cold-split=true` to clang isn't ideal as it may not compose
correctly (say, with `-O0` or `-Oz`).

To implement the -fsplit-cold-code option, an attribute is applied to
functions to indicate that they may be considered for splitting. This
removes some complexity from the old/new PM pipeline builders, and
behaves as expected when LTO is enabled.

Co-authored by: Saleem Abdulrasool <compnerd@compnerd.org>
Differential Revision: https://reviews.llvm.org/D57265
Reviewed By: Aditya Kumar, Vedant Kumar
Reviewers: Teresa Johnson, Aditya Kumar, Fedor Sergeev, Philip Pfaffe, Vedant Kumar
The file was modifiedllvm/test/Transforms/HotColdSplit/noreturn.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/region-overlap.ll
The file was modifiedllvm/lib/Transforms/IPO/HotColdSplitting.cpp
The file was addedclang/test/Frontend/split-cold-code.c
The file was modifiedllvm/test/Transforms/HotColdSplit/stale-assume-in-original-func.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/section-splitting-custom.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/coldentrycount.ll
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-penalty-for-outputs.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/X86/do-not-split.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-noreturn-bonus.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/forward-dfs-reaches-marked-block.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-cold-asm.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/phi-with-distinct-outlined-values.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-out-dbg-val-of-arg.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/eh-pads.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-multiple-entry-region.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/minsize.ll
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/test/Other/pass-pipelines.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/resume.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/HotColdSplitting.h
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-successor-penalty.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-while-loop.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/eh-typeid-for.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/addr-taken.ll
The file was addedclang/test/CodeGen/split-cold-code.c
The file was modifiedllvm/test/Transforms/HotColdSplit/duplicate-phi-preds-crash.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/delete-use-without-def-dbg-val.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-phis-in-exit-blocks.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-penalty-for-inputs.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/succ-block-with-self-edge.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-if-then-else.ll
The file was modifiedllvm/test/Transforms/CodeExtractor/extract-assume.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/unwind.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-disjoint-diamonds.ll
The file was modifiedllvm/test/Other/new-pm-pgo.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-cold-2.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/swifterror.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-out-dbg-label.ll
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
The file was modifiedllvm/test/Other/opt-hot-cold-split.ll
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td
The file was modifiedllvm/test/Other/X86/lto-hot-cold-split.ll
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/multiple-exits.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/update-split-loop-metadata.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/assumption-cache-invalidation.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/mark-the-whole-func-cold.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/retain-section.ll
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/transfer-debug-info.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/section-splitting-default.ll
Commit 2bf423b0218c9583e3a372950a34facbf93e63d3 by rob.suderman
[mlir] RewriterGen NativeCodeCall matcher with ConstantOp matcher

Added an underlying matcher for generic constant ops. This
included a rewriter of RewriterGen to make variable use more
clear.

Differential Revision: https://reviews.llvm.org/D89161
The file was addedmlir/test/mlir-tblgen/rewriter-errors.td
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/include/mlir/TableGen/Pattern.h
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
The file was modifiedmlir/lib/TableGen/Pattern.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
Commit fc031d29bea856f2b91a250fd81c5f9fb79dbe07 by richard
Switch the default of VerifyIntegerConstantExpression from constant
folding to not constant folding.

Constant folding of ICEs is done as a GCC compatibility measure, but new
code was picking it up, presumably by accident, due to the bad default.

While here, also switch the flag from a bool to an enum to make it more
obvious what it means at call sites. This highlighted a couple of places
where our behavior is different between C++11 and C++14 due to switching
from checking for an ICE to checking for a converted constant
expression (where there is no 'fold' codepath).
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/SemaCXX/new-delete.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/SemaCXX/enum.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaExceptionSpec.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
Commit ad1fe3963f30d0e7ef6796ad90bd4ddb6f7b117b by rob.suderman
[MLIR] Fix gcc5 in D89161

Missing .str() makes gcc5 unable to infer the template to use.

Differential Revision: https://reviews.llvm.org/D89516
The file was modifiedmlir/lib/TableGen/Pattern.cpp
Commit cd3090819c4eac750339496c8b8d3c92f8a3950c by zequanwu
[llvm-cov] don't include all source files when provided source files are filtered out

When all provided source files are filtered out either due to `--ignore-filename-regex` or not part of binary, don't generate coverage reults for all source files. Because if users want to generate coverage results for all source files, they don't even need to provid selected source files or `--ignore-filename-regex`.

Differential Revision: https://reviews.llvm.org/D89359
The file was modifiedllvm/test/tools/llvm-cov/universal_bin_wrapping_archives.test
The file was modifiedllvm/tools/llvm-cov/CodeCoverage.cpp
The file was modifiedllvm/test/tools/llvm-cov/sources-specified.test
Commit 6771b98c4e4d5c0bd0a78a876bd212a76ec80a24 by stellaraccident
[mlir][CAPI] Add mlirAttributeGetType function.

* Also fixes the const-ness of the various DenseElementsAttr construction functions.
* Both issues identified when trying to use the DenseElementsAttr functions.

Differential Revision: https://reviews.llvm.org/D89517
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/include/mlir-c/StandardAttributes.h
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/lib/CAPI/IR/StandardAttributes.cpp
Commit cc175c2cc8e638462bab74e0781e06f9b6eb5017 by alexfh
Support ObjC in IncludeInserter

Update IncludeSorter/IncludeInserter to support objective-c google style (part 1):

1) Correctly consider .mm/.m extensions
2) Correctly categorize category headers.
3) Add support for generated files to go in a separate section of imports

Reviewed By: alexfh, gribozavr2

Patch by Joe Turner.

Differential Revision: https://reviews.llvm.org/D89276
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeSorter.h
The file was modifiedclang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp
Commit 905101c36025fe1c8ecdf9a20cd59db036676073 by mkazantsev
[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs

We can sharpen the range of a AddRec if we know that it does not
self-wrap and know the symbolic iteration count in the loop. If we can
evaluate the value of AddRec on the last iteration and prove that at least
one its intermediate value lies between start and end, then no-wrap flag
allows us to conclude that all of them also lie between start and end. So
the estimate of range can be improved to union of ranges of start and end.

Differential Revision: https://reviews.llvm.org/D89381
Reviewed By: efriedma
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 19ae9b6e21e2491debeb910e2c541be9796f1b13 by zequanwu
[llvm-cov] Fix test cases.
`/dev/null` is treated as regualar file on Windows.
native_separators.c line 11 used relative path which was not correct but worked before because when `SourceFiles` is empty, it add all source files into `SourceFiles`.
The file was modifiedllvm/test/tools/llvm-cov/native_separators.c
The file was modifiedllvm/test/tools/llvm-cov/warnings.h
Commit cfa7094e49cfb7e37a84c0aa57c85c64c0581d17 by kito.cheng
[RISCV] Add -mtune support

- The goal of this patch is improve option compatible with RISCV-V GCC,
   -mcpu support on GCC side will sent patch in next few days.

- -mtune only affect the pipeline model and non-arch/extension related
   target feature, e.g. instruction fusion; in td file it called
   TuneFeatures, which is introduced by X86 back-end[1].

- -mtune accept all valid option for -mcpu and extra alias processor
   option, e.g. `generic`, `rocket` and `sifive-7-series`, the purpose is
   option compatible with RISCV-V GCC.

- Processor alias for -mtune will resolve according the current target arch,
   rv32 or rv64, e.g. `rocket` will resolve to `rocket-rv32` or `rocket-rv64`.

- Interaction between -mcpu and -mtune:
   * -mtune has higher priority than -mcpu for pipeline model and
     TuneFeatures.

[1] https://reviews.llvm.org/D85165

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D89025
The file was modifiedclang/lib/Basic/Targets/RISCV.cpp
The file was modifiedclang/test/Driver/riscv-cpus.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.h
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedllvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedllvm/include/llvm/Support/RISCVTargetParser.def
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
The file was modifiedclang/lib/Basic/Targets/RISCV.h
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.cpp
Commit 5e09c45cbb2411a9636001894b546eb05a6fee3c by i
[RISCV] Fix -Wbraced-scalar-init after D89025
The file was modifiedllvm/include/llvm/Support/RISCVTargetParser.def
Commit 1eb2c6d23f991a16afaaf898aeaf8f78e97be6fc by mkazantsev
[SCEV][NFC] Split out type balancing in implication engine

We plan to introduce more advanced ways of dealing with different types.
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 3cfd9384bff476a4579c956e0c33697fee8bcf29 by grimar
[lib/ObjectYAML] - Simplify the code that handles Content/Size fields.

This is a follow-up for D89039 patch, which adds a support for
`Content`/`Size` for all sections.

Assuming that all of sections have a support of these 2 fields,
we can simplify and generalize the code.

Depends on D89039

Differential revision: https://reviews.llvm.org/D89120
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
Commit e5e4653255ff7d78d62923038ff085fae47e950b by mikael.holmen
Remove dead variable to silence compiler warning [NFC]
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit 7d3b475810baa26eb862bb555a0335eec6b988fc by nikita.ppv
Revert "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs"

This reverts commit 905101c36025fe1c8ecdf9a20cd59db036676073.

This causes a large compile-time regression:
https://llvm-compile-time-tracker.com/compare.php?from=cc175c2cc8e638462bab74e0781e06f9b6eb5017&to=905101c36025fe1c8ecdf9a20cd59db036676073&stat=instructions
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
Commit 6030a075164c7016b29a67680ed5c9e7c5932109 by konstantin.schwarz
Fix hidden-redecls.m test for some environments

This test was failing in our CI environment, because Jenkins mounts the workspaces into Docker containers using their full path, i.e. /home/jenkins/workspaces/llvm-build.
We've seen permission denied errors because /home/jenkins is mounted with root permissions and the default cache directory under Linux is $HOME/.cache.

The fix is to explicitly provide the -fmodules-cache-path, which the other tests already seem to provide.

Reviewed By: akyrtzi

Differential Revision: https://reviews.llvm.org/D89453
The file was modifiedclang/test/Index/hidden-redecls.m
Commit 51ff04567b2f8d06b2062bd3ed72eab2e93e4466 by flo
Recommit "[DSE] Switch to MemorySSA-backed DSE by default."

After investigation by @asbirlea, the issue that caused the
revert appears to be an issue in the original source, rather
than a problem with the compiler.

This patch enables MemorySSA DSE again.

This reverts commit 915310bf14cbac58a81fd60e0fa9dc8d341108e2.
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
Commit e2af9bd6118eb9e64e28f36dd787da3905b8ba8b by Tony.Tye
[AMDGPU] Correct comment typo in AMDGPUSubtarget.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
Commit e034c3f7043a0f5a0b0af834a4b84d06e6b8948e by flo
[SCEV] Add a few test cases where the max BTC is limited by wrapping.
The file was addedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-limit-by-wrapping.ll
Commit 28691cdd714fb9b4a4d69dfc4f83a886582bf774 by Dávid Bolvanský
[MemLoc] Support memchr/memccpy in MemoryLocation::getForArgument

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D89321
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp
The file was modifiedllvm/test/Analysis/BasicAA/libfuncs.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
Commit 55991b44b7f96a0aaa33ac53fc229302ca8d5d02 by llvm-dev
[InstCombine] foldAndOrOfICmpsOfAndWithPow2 - add vector support

Support vector cases for folding:

(iszero(A & K1) | iszero(A & K2)) -> (A & (K1 | K2)) != (K1 | K2)
(!iszero(A & K1) & !iszero(A & K2)) -> (A & (K1 | K2)) == (K1 | K2)
The file was modifiedllvm/test/Transforms/InstCombine/onehot_merge.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit e8d9ee9c7cfe46d9b552111a27d866fce0498b0a by caroline.concatto
[SVE][CodeGen]Use getFixedSize() function for TypeSize comparison in clang

This patch makes sure that the instance of TypeSize comparison operator
is done with a fixed type size.

Differential Revision: https://reviews.llvm.org/D89312
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 1cf347e48b588ea277cc550b3ac57ecfa540618c by llvm-dev
[InstCombine] narrowRotate - minor refactoring for funnel shift support. NFC.

Prep work for PR35155 - renamed narrowRotate to narrowFunnelShift, rewrote some comments and adjusted code to collect separate shift values, although we bail if they don't match (still only rotations are only actually folded).

I'm trying to match matchFunnelShift as much as possible in case we finally get to merge these one day.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit fbd62fe60fb2281ca33da35dc25ca3c87ec0bb51 by cullen.rhodes
[ValueTracking] Clarify TypeSize comparisons

TypeSize comparisons using overloaded operators should be replaced by
the new isKnownXY comparators when the operands can be fixed-length or
scalable vectors.

In ValueTracking there are several uses of the overloaded operators in
`isKnownNonZero` and `ComputeMultiple`. In the former we already bail
out on scalable vectors since we currently have no way to represent
DemandedElts, and the latter is operating on scalar integers, so we can
assume fixed-size in both instances.

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D89387
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 32b72c3165bf65cca2e8e6197b59eb4c4b60392a by mkazantsev
Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs"

It was reverted because of negative compile time impact. In this version,
less powerful proof methods are used (non-recursive reasoning only), and
scope limited to constant End values to avoid explision of complex proofs.

Differential Revision: https://reviews.llvm.org/D89381
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
Commit 0ee0c7dcc3282b541befaaeaf8179abe1483370c by mkazantsev
[Indvars][NFC] Remove duplicating checks

Some facts have already been checked in widenWithVariantUse and then
checked again in widenWithVariantUseCodegen. The latter is redundant,
we can replace it with asserts.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit dd3f7a494af90c6136268fe17be857af591e2e53 by sebastian.neubauer
[AMDGPU] Add a message to an assert
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Commit bb39372e5e66e8d36735fa205d48e06c06a8fa00 by mkazantsev
[Indvars][NFCI] Remove meaningless restrictive code in IndVars

Variable ExtendOperExpr only exists to check whether it is a SCEV ext.
We create it as SCEV ext right here, so semantically this check is
trivially true. In theory, it may fail if SCEV is smart enough and can
simplify the expression. However, no matter whether it is an ext or not,
we never use this fact for further reasoning. So this code is currently
useless and in theory may become harmful with SCEV's development.

We do not expect any behavior changes with removing it. If it caused
negative changes, the patch should be reverted.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 76996470ef3e16b20498bc1ee083ef5a50e5ff8f by llvm-dev
[InstCombine] Add trunc+zext 'narrow' funnel shift tests (PR35155)

Based on the rotation equivalents in rotate.ll
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll
Commit ef0ab3cdfe205c65879e8e3288f3c63d1a809f63 by llvm-dev
[InstCombine] Fix typo in narrow funnel shift test
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll
Commit e338ca7bced14277b703325537b89d9d9674a2c6 by pavel
[lldb] Fix FreeBSD build for ea3a547
The file was modifiedlldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h
Commit 981fdf01d527e890e158c32bdc3c1a1bef731abf by llvm-dev
[InstCombine] foldSelectRotate - canonicalize to OR(SHL,LSHR). NFCI.

Match the canonicalization code that was added to matchFunnelShift at rG02295e6d1a15
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit 0857029011a91c664ba36574ab1e00faea6db532 by mkazantsev
[Indvars][NFC] Merge two functions together

Logic of widenWithVariantUse is split into check and transform
part, unlike any other transform in IndVars. We want to pass some
extra flags from analysis to transform part and standartize
the code at once, so merging them together.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit c474d829d0b80ce211f4145711e3db54c86d78e4 by Louis Dionne
[libc++] NFC: Move iterator.range tests into the right place

They seem to have been placed under stream.iterators by mistake.
This is relevant for some upcoming UNSUPPORTED markup.
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/begin_array.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/begin_non_const.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/end_const.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/begin_array.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/end_array.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/begin_non_const.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/end_non_const.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/end_non_const.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/end_array.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.range/begin_const.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/end_const.pass.cpp
The file was removedlibcxx/test/std/iterators/stream.iterators/iterator.range/begin_const.pass.cpp
Commit 13410fa79ff0176fd111b8e3e1ea64c54bc7fea1 by Louis Dionne
[libc++] NFCI: Use Lit features to disable tests instead of #if
The file was modifiedlibcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
The file was modifiedlibcxx/test/std/utilities/intseq/intseq.intseq/integer_seq.compile.fail.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp
Commit 98f254960f0c7bfa96caffca05e14b3431b916d1 by michael.hliao
[globalopt] Teach to look through `addrspacecast`.

- so that global variables in numbered address spaces could be properly
  analyzed.

Differential Revision: https://reviews.llvm.org/D89140
The file was modifiedllvm/lib/Transforms/Utils/GlobalStatus.cpp
The file was modifiedllvm/test/Transforms/GlobalOpt/unnamed-addr.ll
Commit 0a7f41739fd994a502484cea06910719e8ff1fc0 by jeremy.morse
Revert "[llvm-cov] don't include all source files when provided source files are filtered out"

This reverts commit c2bd20ef652 and the follow up fix 16605bba6fb.

The tools/llvm-cov/warnings.h continues to fail on Windows platforms even
after the follow up, for example on the llvm-clang-win-x-armv7l builder:

    http://lab.llvm.org:8011/#/builders/60/builds/94
The file was modifiedllvm/test/tools/llvm-cov/sources-specified.test
The file was modifiedllvm/test/tools/llvm-cov/native_separators.c
The file was modifiedllvm/test/tools/llvm-cov/universal_bin_wrapping_archives.test
The file was modifiedllvm/tools/llvm-cov/CodeCoverage.cpp
The file was modifiedllvm/test/tools/llvm-cov/warnings.h
Commit 4d60467f99a0b00df230c363170a29e36c8ad798 by simon.tatham
[libcxx] Fix printf formats in two tests.

rGcc69d211d0d65d7b introduced several uses of `printf` with format
directives `%lu` and `%ld` to format values of type `size_t` and
`ptrdiff_t` respectively.

That doesn't reliably work in all C implementations, because those
types aren't necessarily the same thing as 'long int': sometimes
they're not even the same size, and when they are the same size, they
might be officially defined as int rather than long (for example),
which causes clang to emit a diagnostic for the mismatch.

C has special-purpose printf modifier letters for these two types, so
it's safer to use them. Changed all `%lu` on `size_t` to `%zu`, and
all `%ld` on `ptrdiff_t` to `%td`.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D89545
The file was modifiedlibcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp
Commit bcb7b87706202cfd846500a457d93f047bfe8134 by simon.tatham
[libcxxabi] Fix printf formats in a test.

This is the libcxxabi counterpart of D89545, and would have been part
of that patch if I'd spotted it soon enough (oops). One test in
libcxxabi is using the `%lu` printf format to refer to `size_t`, which
should be `%zu`.

Reviewed By: ldionne, #libc_abi

Differential Revision: https://reviews.llvm.org/D89547
The file was modifiedlibcxxabi/test/test_fallback_malloc.pass.cpp
Commit 8a548bc203cfb0b2f830959cb7ec578c25512025 by n.james93
[clang-tidy] modernize-loop-convert reverse iteration support

Enables support for transforming loops of the form
```
for (auto I = Cont.rbegin(), E = Cont.rend(); I != E;++I)
```

This is done automatically in C++20 mode using `std::ranges::reverse_view` but there are options to specify a different function to reverse iterator over a container.
This is the first step, down the line I'd like to possibly extend this support for array based loops
```
for (unsigned I = Arr.size() - 1;I >=0;--I) Arr[I]...
```

Currently if you pass a reversing function with no header in the options it will just assume that the function exists, however as we have the ASTContext it may be as wise to check before applying, or at least lower the confidence level if we can't find it.

Reviewed By: alexfh

Differential Revision: https://reviews.llvm.org/D82089
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/modernize-loop-convert.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
The file was addedclang-tools-extra/test/clang-tidy/checkers/modernize-loop-convert-reverse.cpp
Commit daae4a84828b131395c531cd5604dc013d9073b6 by pavel
[lldb] Modernize PseudoTerminal::OpenSecondary
The file was modifiedlldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.mm
The file was modifiedlldb/unittests/Host/MainLoopTest.cpp
The file was modifiedlldb/unittests/Editline/EditlineTest.cpp
The file was modifiedlldb/include/lldb/Host/PseudoTerminal.h
The file was modifiedlldb/source/Host/common/PseudoTerminal.cpp
Commit d30797b4041ffe215b92d376af60c4f26a0555ae by jotrem
[lldb] Minidump: check for .text hash match with directory

When opening a minidump, we might discover that it reports a UUID for a
module that doesn't match the build ID, but rather a hash of the .text
section (according to either of two different hash functions, used by
breakpad and Facebook respectively).  The current logic searches for a
module by filename only to check the hash; this change updates it to
first search by directory+filename.  This is important when the
directory specified in the minidump must be interpreted relative to a
user-provided sysoort, as the leaf directory won't be in the search path
in that case.

Also add a regression test; without this change, module validation fails
because we have just the placeholder module which reports as its path
the platform path in the minidump.

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D89155
The file was addedlldb/test/API/functionalities/postmortem/minidump-new/libbreakpad-decoy.yaml
The file was modifiedlldb/source/Plugins/Process/minidump/ProcessMinidump.h
The file was modifiedlldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
The file was modifiedlldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
Commit ce16b6835bce18989e1dc0796305fe703e59ca4d by Matthew.Arsenault
AMDGPU: Don't kill super-register with overlapping copy

This would end up killing part of the result super-register, resulting
in a verifier error on a later use of the overlapping registers.  We
could add kills of any non-aliasing registers, but we should be moving
away from relying on kill flags.
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/accvgpr-copy.mir
The file was addedllvm/test/CodeGen/AMDGPU/copy-overlap-vgpr-kill.mir
Commit 952f43cb431ca77b52ba991b6dd7ecf834c75059 by Matthew.Arsenault
llvm-reduce: Fix typo in status message
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp
Commit ee6e25e4391a6d3ac0a3c89615474e512f44cda6 by Matthew.Arsenault
llvm-reduce: Don't replace intrinsic calls with undef

These don't really have function bodies to try to eliminate. This also
has a good chance of just producing invalid IR since intrinsics can
have special operand constraints (e.g. metadata arguments aren't valid
for an arbitrary call). This was wasting quite a bit of time producing
and failing on invalid IR when replacing dbg.values with undefs.
The file was addedllvm/test/Reduce/no-replace-intrinsic-callee-with-undef.ll
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp
Commit c757418869c01f5ee08f05661debabbba92edcf9 by psteinfeld
[flang] Failed call to CHECK() for call to ASSOCIATED(NULL())

Calling "ASSOCATED(NULL()) was causing an internal check of the compiler to
fail.

I fixed this by changing the entry for "ASSOCIATED" in the intrinsics table to
accept "AnyPointer" which contains a new "KindCode" of "pointerType".  I also
changed the function "FromActual()" to return a typeless intrinsic when called
on a pointer, which duplicates its behavior for BOZ literals.  This required
changing the analysis of procedure arguments.  While testing processing for
procedure arguments, I found another bad call to `CHECK()` which I fixed.

I made several other changes:
  -- I implemented constant folding for ASSOCIATED().
  -- I fixed handling of NULL() in relational operations.
  -- I implemented semantic analysis for ASSOCIATED().
    -- I noticed that the semantics for ASSOCIATED() are similar to those for
       pointer assignment.  So I extracted the code that pointer assignment uses
       for procedure pointer compatibility to a place where it could be used by
       the semantic analysis for ASSOCIATED().
    -- I couldn't figure out how to make the general semantic analysis for
       procedure arguments work with ASSOCIATED()'s second argument, which can
       be either a pointer or a target.  So I stopped using normal semantic
       analysis for arguments for ASSOCIATED().
  -- I added tests for all of this.

Differential Revision: https://reviews.llvm.org/D88313
The file was modifiedflang/lib/Evaluate/fold-logical.cpp
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/lib/Evaluate/characteristics.cpp
The file was modifiedflang/include/flang/Evaluate/type.h
The file was modifiedflang/test/Semantics/resolve63.f90
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
The file was modifiedflang/lib/Semantics/check-call.cpp
The file was modifiedflang/lib/Semantics/pointer-assignment.cpp
The file was modifiedflang/test/Semantics/call09.f90
The file was modifiedflang/include/flang/Evaluate/characteristics.h
The file was modifiedflang/test/Semantics/call02.f90
The file was addedflang/test/Semantics/associated.f90
The file was modifiedflang/test/Evaluate/folding06.f90
Commit 59a3b1afb28541d5bf37445b028bfd711e3c556a by Duncan P. N. Exon Smith
clang-format: Assert in-memory file created in createInMemoryFile, NFC

`SourceManager::createFileID` asserts that the given `FileEntry` is not
null, so remove the logic that passed in `nullptr`. Since we just added
the file to an in-memory FS via an API that cannot fail, use
`llvm_unreachable` on the error path. Didn't use an `assert` since it
seems cleaner semantically to check the error (and better,
hypothetically, for updating the API to use `Expected` instead of
`ErrorOr`).

I noticed this incidentally while auditing calls to `createFileID`.
The file was modifiedclang/tools/clang-format/ClangFormat.cpp
Commit fdbfff8fd41f874f05a4c0a3f8f20964942d7833 by martin
[libcxx] [test] Use string() instead of native() as parameter to std::ifstream/ofstream in copy_file_large.pass.cpp

This fixes building with libstdc++ for windows. MS STL has got
ifstream/ofstream overloads that taken wide strings though.

Differential Revision: https://reviews.llvm.org/D89539
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
Commit 701fa703fc7774bad01a70d6e4c721f634bbeceb by martin
[libcxx] [test] Use fs::path::string_type instead of std::string in fs.op.relative

Differential Revision: https://reviews.llvm.org/D89538
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
Commit 66427d7359ac94d11bda18d613984ddf296c0302 by martin
[libcxx] [test] Mark tests for libcxx specific implementation details with LIBCPP_ONLY()

This matches an existing marking in enum.path.format.pass.cpp.

Differential Revision: https://reviews.llvm.org/D89534
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp
Commit ddb4693a92e763d6cc0e7e2b3b60d662d0716581 by martin
[libcxx] [test] Add (void) return casts on functions marked nodiscard in MS STL

Differential Revision: https://reviews.llvm.org/D89533
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
Commit 253f24cf4c455f732423ef8ddf230b111ea41bee by llvm-dev
[InstCombine] Remove custom and(trunc(and(x,c1)),c2) fold

This is more correctly handled by canEvaluateTruncated (one use checks etc.) and covers all the tests cases that were added for this fold.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit fe8281e2d009d9ab0b89cad2cb56defceb7fa9b1 by llvm-dev
[InstCombine] visitAnd - add some ((val OP C1) & C2) vector test coverage
The file was modifiedllvm/test/Transforms/InstCombine/add.ll
The file was modifiedllvm/test/Transforms/InstCombine/and.ll
Commit 83ae625f0c6a6e86ffa80bd52c2dedccda80ff77 by llvm-dev
[InstCombine] visitAnd - pull out repeated I.getType() calls. NFCI.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit 95fb3542e8f195454ad4aa2290ca02906f5dfb78 by hans
Disable DynamicLibraryTests when using LLVM_INTEGRATED_CRT_ALLOC (PR47881)
The file was modifiedllvm/unittests/Support/CMakeLists.txt
Commit 97533b10b27db058cc77c81a4f964b66392871c6 by kparzysz
[Hexagon] Fix license headers in some .td files, NFC
The file was modifiedllvm/lib/Target/Hexagon/HexagonPatterns.td
The file was modifiedllvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td
The file was modifiedllvm/lib/Target/Hexagon/HexagonPatternsHVX.td
Commit 0a7cd99a702595ccf73c957be0127af9f25fb9a2 by Matthew.Arsenault
Reapply "OpaquePtr: Add type to sret attribute"

This reverts commit eb9f7c28e5fe6d75fed3587023e17f2997c8024b.

Previously this was incorrectly handling linking of the contained
type, so this merges the fixes from D88973.
The file was modifiedclang/test/CodeGen/c11atomics-ios.c
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/CodeGenOpenCL/addr-space-struct-arg.cl
The file was modifiedclang/test/Modules/templates.mm
The file was modifiedclang/test/CodeGen/arc/arguments.c
The file was modifiedclang/test/CodeGen/arm-aapcs-vfp.c
The file was modifiedclang/test/CodeGenCXX/aix-alignment.cpp
The file was modifiedclang/test/CodeGenCXX/thiscall-struct-return.cpp
The file was modifiedllvm/test/Bitcode/attributes-3.3.ll
The file was modifiedclang/test/CodeGen/lanai-arguments.c
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
The file was modifiedclang/test/CodeGenCXX/stack-reuse.cpp
The file was modifiedclang/test/CodeGen/vectorcall.c
The file was modifiedclang/test/CodeGenCXX/call-with-static-chain.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp
The file was modifiedclang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
The file was modifiedclang/test/CodeGenCXX/stack-reuse-miscompile.cpp
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments-win32.c
The file was modifiedclang/test/CodeGenCXX/homogeneous-aggregates.cpp
The file was modifiedclang/test/CodeGen/ppc64le-aggregates.c
The file was modifiedclang/test/CodeGen/ms_abi.c
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-unknown-arch.cpp
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments-nacl.c
The file was modifiedclang/test/CodeGen/ppc64le-f128Aggregates.c
The file was modifiedclang/test/CodeGen/arm-vector-arguments.c
The file was modifiedllvm/lib/IR/AsmWriter.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/test/Bitcode/compatibility-6.0.ll
The file was addedllvm/test/Linker/sret-types.ll
The file was modifiedclang/test/CodeGenCXX/regcall.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
The file was modifiedclang/test/CodeGen/ppc32-and-aix-struct-return.c
The file was modifiedclang/test/CodeGen/windows-swiftcall.c
The file was modifiedclang/test/CodeGenObjC/stret_lookup.m
The file was modifiedclang/test/CodeGen/arm-varargs.c
The file was modifiedclang/test/CodeGenCXX/x86_32-arguments.cpp
The file was modifiedllvm/lib/Transforms/Utils/ValueMapper.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
The file was modifiedclang/test/CodeGenCXX/x86_64-arguments.cpp
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
The file was modifiedclang/test/CodeGen/aarch64-varargs.c
The file was modifiedllvm/test/Bitcode/compatibility-3.7.ll
The file was modifiedclang/test/CodeGenCXX/builtin-source-location.cpp
The file was modifiedllvm/lib/Linker/IRMover.cpp
The file was modifiedclang/test/CodeGen/windows-struct-abi.c
The file was modifiedclang/test/CodeGen/arm64-arguments.c
The file was modifiedclang/test/CodeGen/riscv32-ilp32d-abi.c
The file was modifiedclang/test/CodeGenCXX/pass-by-value-noalias.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-returning-memptr.cpp
The file was modifiedclang/test/CodeGen/systemz-abi.cpp
The file was modifiedclang/test/CodeGenObjC/direct-method.m
The file was modifiedclang/test/CodeGen/le32-arguments.c
The file was modifiedclang/test/CodeGen/blocks.c
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/include/llvm/IR/Attributes.h
The file was modifiedclang/test/CodeGen/c11atomics.c
The file was modifiedclang/test/CodeGenObjC/arc.m
The file was modifiedllvm/lib/AsmParser/LLParser.h
The file was modifiedclang/test/CodeGen/arm-neon-vld.c
The file was modifiedclang/test/CodeGen/aix-alignment.c
The file was modifiedclang/test/CodeGenCoroutines/coro-await.cpp
The file was modifiedclang/test/CodeGen/ppc64-align-struct.c
The file was modifiedclang/test/CodeGen/wasm-arguments.c
The file was modifiedclang/test/CodeGenCXX/matrix-type-builtins.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-byval-sret.cpp
The file was modifiedclang/test/CodeGen/arm_neon_intrinsics.c
The file was modifiedllvm/test/Bitcode/compatibility-3.8.ll
The file was modifiedclang/test/CodeGenObjC/nontrivial-c-struct-exception.m
The file was modifiedclang/test/CodeGen/riscv64-lp64-lp64f-abi.c
The file was modifiedclang/test/CodeGenCoroutines/coro-gro-nrvo.cpp
The file was modifiedclang/test/CodeGen/sparcv9-abi.c
The file was modifiedllvm/include/llvm/IR/Function.h
The file was modifiedclang/test/CodeGen/wasm-varargs.c
The file was modifiedllvm/test/Bitcode/compatibility-3.6.ll
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
The file was modifiedclang/test/CodeGenCXX/cxx1z-copy-omission.cpp
The file was modifiedclang/test/CodeGen/renderscript.c
The file was modifiedclang/test/CodeGen/riscv32-ilp32-abi.c
The file was modifiedllvm/test/Bitcode/highLevelStructure.3.2.ll
The file was modifiedclang/test/CodeGenCXX/unknown-anytype.cpp
The file was modifiedclang/test/CodeGenCXX/lambda-expressions.cpp
The file was addedllvm/test/Linker/Inputs/sret-type-input.ll
The file was modifiedclang/test/CodeGen/ppc64-qpx-vector.c
The file was modifiedclang/test/CodeGenCXX/thunks.cpp
The file was modifiedllvm/test/Bitcode/compatibility-3.9.ll
The file was modifiedllvm/test/Verifier/noundef.ll
The file was modifiedllvm/test/Verifier/byref.ll
The file was modifiedclang/test/CodeGen/mcu-struct-return.c
The file was modifiedclang/test/CodeGen/mingw-long-double.c
The file was modifiedclang/test/CodeGen/powerpc-c99complex.c
The file was modifiedclang/test/CodeGen/systemz-abi.c
The file was modifiedclang/test/CodeGen/arm-homogenous.c
The file was modifiedclang/test/CodeGen/systemz-inline-asm.c
The file was modifiedllvm/lib/Bitcode/Writer/ValueEnumerator.cpp
The file was modifiedclang/test/CodeGen/ppc64-soft-float.c
The file was modifiedclang/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
The file was modifiedclang/test/CodeGenCXX/conditional-gnu-ext.cpp
The file was modifiedllvm/test/Bitcode/compatibility.ll
The file was modifiedclang/test/CodeGen/riscv32-ilp32-ilp32f-abi.c
The file was modifiedclang/test/CodeGenObjC/weak-in-c-struct.m
The file was modifiedclang/test/CodeGen/arm-vfp16-arguments.c
The file was modifiedllvm/lib/IR/Core.cpp
The file was modifiedclang/test/CodeGenCXX/arm-cc.cpp
The file was modifiedclang/test/CodeGenCXX/exceptions.cpp
The file was modifiedclang/test/CodeGenObjC/stret-1.m
The file was modifiedclang/test/CodeGen/arm-vfp16-arguments2.cpp
The file was modifiedllvm/test/Bitcode/compatibility-4.0.ll
The file was modifiedclang/test/CodeGen/regparm-struct.c
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp
The file was modifiedclang/test/CodeGen/struct-passing.c
The file was modifiedclang/test/CodeGenCXX/trivial_abi.cpp
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedclang/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
The file was modifiedllvm/include/llvm/IR/Attributes.td
The file was modifiedclang/test/CodeGen/arm-swiftcall.c
The file was modifiedclang/test/CodeGen/arm64-microsoft-arguments.cpp
The file was modifiedclang/test/CodeGenCXX/cxx1z-lambda-star-this.cpp
The file was modifiedclang/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
The file was modifiedclang/test/CodeGen/ppc64-elf-abi.c
The file was modifiedclang/test/CodeGenCXX/wasm-args-returns.cpp
The file was modifiedclang/test/CodeGen/riscv64-lp64d-abi.c
The file was modifiedclang/test/CodeGen/mips-zero-sized-struct.c
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedclang/test/CodeGen/aggregate-assign-call.c
The file was modifiedclang/test/CodeGen/ppc64-vector.c
The file was modifiedllvm/test/Bitcode/compatibility-5.0.ll
The file was modifiedclang/test/CodeGenCXX/temporaries.cpp
The file was modifiedclang/test/CodeGen/riscv32-ilp32f-abi.c
The file was modifiedclang/test/CodeGen/riscv64-lp64-abi.c
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedclang/test/CodeGen/aligned-sret.c
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedclang/test/CodeGen/mips64-padding-arg.c
The file was modifiedclang/test/CodeGen/arm64_32.c
The file was modifiedclang/test/CodeGen/ppc-aggregate-abi.cpp
The file was modifiedclang/test/CodeGenCXX/matrix-type.cpp
The file was modifiedclang/test/CodeGen/2006-05-19-SingleEltReturn.c
The file was addedllvm/test/Assembler/sret-type-attr.ll
The file was modifiedclang/test/CodeGen/X86/x86_32-arguments-darwin.c
The file was modifiedclang/test/CodeGen/X86/x86_32-arguments-iamcu.c
The file was modifiedclang/test/CodeGenOpenCLCXX/addrspace-of-this.cl
The file was modifiedllvm/lib/IR/AttributeImpl.h
The file was modifiedclang/test/CodeGen/systemz-abi-vector.c
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments.c
The file was modifiedclang/test/CodeGenObjC/objc-non-trivial-struct-nrvo.m
The file was modifiedclang/test/CodeGen/64bit-swiftcall.c
The file was modifiedllvm/test/Verifier/align.ll
The file was modifiedllvm/test/Bitcode/attributes.ll
Commit 7dff6b818b1cdd52fbc99f6256760d6eb02a7622 by lyandy
[MLIR] Add idempotent trait folding

This trait simply adds a fold of f(f(x)) = f(x) when an operation is labelled as idempotent

Reviewed By: rriddle, andyly

Differential Revision: https://reviews.llvm.org/D89421
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/mlir-tblgen/trait.mlir
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
Commit 0c1381d79567f58655561bd39f5efb1d468c930a by jay.foad
[llc] Use -filetype=null to disable MIR printing

If you use -stop-after or similar options, llc will normally print MIR.
This patch checks for -filetype=null as a special case to disable MIR
printing. As the comment says, "The Null output is intended for use for
performance analysis ...", and I found this useful for timing a subset
of the passes that llc runs without the significant overhead of printing
MIR just to send it to /dev/null.

Differential Revision: https://reviews.llvm.org/D89476
The file was addedllvm/test/tools/llc/filetype-null-stop-after.ll
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp
Commit 1417abe54c28854094230f6d3b743d5578f95dff by jay.foad
[AMDGPU] Add new llvm.amdgcn.fma.legacy intrinsic

Differential Revision: https://reviews.llvm.org/D89558
The file was addedllvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fma_legacy.ll
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
Commit e1612c38665e136279ff460e79e93fd7b37a4559 by Louis Dionne
[libc++] Move the oss-fuzz script to libc++

Instead of having this script be part of the OSS-Fuzz repository, I think
it makes more sense to have it alongside the rest of the fuzzing targets
in libc++.
The file was addedlibcxx/test/libcxx/fuzzing/oss-fuzz.sh
Commit 880fc4d581b091dbb68703c3e55c2ca2f94192c2 by Louis Dionne
[libc++] Move the oss-fuzz script to libcxx/utils/ci
The file was addedlibcxx/utils/ci/oss-fuzz.sh
The file was removedlibcxx/test/libcxx/fuzzing/oss-fuzz.sh
Commit 3d4bba302d2460b9ac6463ef920c301f1f40fb41 by tejohnson
[MemProf] Memory profiling runtime support

See RFC for background:
http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html

Follow on companion to the clang/llvm instrumentation support in D85948
and committed earlier.

This patch adds the compiler-rt runtime support for the memory
profiling.

Note that much of this support was cloned from asan (and then greatly
simplified and renamed). For example the interactions with the
sanitizer_common allocators, error handling, interception, etc.

The bulk of the memory profiling specific code can be found in the
MemInfoBlock, MemInfoBlockCache, and related classes defined and used
in memprof_allocator.cpp.

For now, the memory profile is dumped to text (stderr by default, but
honors the sanitizer_common log_path flag). It is dumped in either a
default verbose format, or an optional terse format.

This patch also adds a set of tests for the core functionality.

Differential Revision: https://reviews.llvm.org/D87120
The file was addedcompiler-rt/test/memprof/TestCases/mem_info_cache_entries.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_memintrin.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_terse.cpp
The file was modifiedcompiler-rt/test/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_interceptors.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h
The file was addedcompiler-rt/lib/memprof/memprof_interceptors.cpp
The file was addedcompiler-rt/lib/memprof/memprof_malloc_linux.cpp
The file was modifiedcompiler-rt/test/lit.common.cfg.py
The file was addedcompiler-rt/test/memprof/TestCases/malloc_hook.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_new_load_store.cpp
The file was addedcompiler-rt/test/memprof/TestCases/default_options.cpp
The file was addedcompiler-rt/lib/memprof/weak_symbols.txt
The file was addedcompiler-rt/lib/memprof/memprof_preinit.cpp
The file was addedcompiler-rt/lib/memprof/memprof_flags.h
The file was addedcompiler-rt/lib/memprof/memprof_mapping.h
The file was addedcompiler-rt/lib/memprof/memprof_flags.inc
The file was addedcompiler-rt/lib/memprof/memprof_interceptors_memintrinsics.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
The file was addedcompiler-rt/test/memprof/TestCases/interface_test.cpp
The file was modifiedcompiler-rt/test/lit.common.configured.in
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was addedcompiler-rt/test/memprof/TestCases/malloc-size-too-big.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp
The file was addedcompiler-rt/lib/memprof/memprof_flags.cpp
The file was addedcompiler-rt/test/memprof/TestCases/stress_dtls.c
The file was addedcompiler-rt/lib/memprof/memprof_allocator.cpp
The file was addedcompiler-rt/lib/memprof/memprof_internal.h
The file was addedcompiler-rt/lib/memprof/memprof_new_delete.cpp
The file was addedcompiler-rt/test/memprof/TestCases/realloc.cpp
The file was addedcompiler-rt/lib/memprof/README.txt
The file was addedcompiler-rt/test/memprof/lit.site.cfg.py.in
The file was modifiedcompiler-rt/include/CMakeLists.txt
The file was modifiedcompiler-rt/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_stats.h
The file was addedcompiler-rt/test/memprof/TestCases/test_malloc_load_store.c
The file was addedcompiler-rt/test/memprof/CMakeLists.txt
The file was addedcompiler-rt/test/memprof/TestCases/memprof_options-help.cpp
The file was addedcompiler-rt/lib/memprof/memprof_linux.cpp
The file was addedcompiler-rt/lib/memprof/memprof_stack.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_flags.inc
The file was addedcompiler-rt/lib/memprof/memprof_stats.cpp
The file was addedcompiler-rt/test/memprof/TestCases/dump_process_map.cpp
The file was addedcompiler-rt/test/memprof/TestCases/free_hook_realloc.cpp
The file was addedcompiler-rt/test/memprof/TestCases/print_miss_rate.cpp
The file was addedcompiler-rt/include/sanitizer/memprof_interface.h
The file was addedcompiler-rt/lib/memprof/memprof_thread.cpp
The file was addedcompiler-rt/lib/memprof/memprof_stack.cpp
The file was addedcompiler-rt/test/memprof/TestCases/log_path_test.cpp
The file was addedcompiler-rt/lib/memprof/memprof_allocator.h
The file was modifiedcompiler-rt/lib/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_descriptions.cpp
The file was addedcompiler-rt/test/memprof/TestCases/atexit_stats.cpp
The file was addedcompiler-rt/test/memprof/TestCases/unaligned_loads_and_stores.cpp
The file was addedcompiler-rt/test/memprof/lit.cfg.py
The file was addedcompiler-rt/lib/memprof/memprof_interceptors_memintrinsics.cpp
The file was addedcompiler-rt/lib/memprof/memprof_init_version.h
The file was addedcompiler-rt/lib/memprof/memprof_descriptions.h
The file was addedcompiler-rt/lib/memprof/memprof_shadow_setup.cpp
The file was addedcompiler-rt/lib/memprof/memprof_rtl.cpp
The file was addedcompiler-rt/lib/memprof/memprof.syms.extra
The file was addedcompiler-rt/lib/memprof/memprof_interface_internal.h
The file was addedcompiler-rt/lib/memprof/memprof_posix.cpp
The file was addedcompiler-rt/lib/memprof/memprof_thread.h
Commit e95f9a23fad52ffa3a5b6466c7dcdf910d099956 by rengolin
[llvm-objdump] Implement --prefix option

The prefix given to --prefix will be added to GNU absolute paths when
used with --source option (source interleaved with the disassembly).

This matches GNU's objdump behavior.

GNU and C++17 rules for absolute paths are different.

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

Fixes PR46368.

Differential Revision: https://reviews.llvm.org/D85024
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test
The file was modifiedllvm/docs/llvm-objdump.1
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.h
The file was modifiedllvm/docs/CommandGuide/llvm-objdump.rst
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-non-windows.test
Commit 2408fc2a1e85c0e9e9c6e8b1dd00d2507dda38f4 by Louis Dionne
[libc++] Avoid relying on `realpath` being installed on the system

It doesn't appear to be a standard utility.
The file was modifiedlibcxx/utils/ci/apple-install-libcxx.sh
Commit 6042c25b0a7a9d812ace6ffe164628af9a1e1259 by Amara Emerson
[GlobalISel] Add translation support for vector reduction intrinsics.

In order to prevent the ExpandReductions pass from expanding some intrinsics
before they get to codegen, I had to add a -disable-expand-reductions flag
for testing purposes.

Differential Revision: https://reviews.llvm.org/D89028
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-reductions.ll
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
Commit 9190411fcf65188ea8cb032253302dd4ce4baede by Amara Emerson
[AArch64][GlobalISel] Add basic legalizer rules for supported add/fadd reductions.

NEON is pretty limited in it's reduction support. As a first step add some
basic rules for the legal types we can select.

Differential Revision: https://reviews.llvm.org/D89070
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-add.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-fadd.mir
Commit 32f77eea2d0f0660647e4222332ccf5c6dfc98e6 by Amara Emerson
[AArch64][GlobalISel] Regbankselect reductions to use FPR bank for scalars.

Differential Revision: https://reviews.llvm.org/D89075
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reductions.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
Commit 3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b by tejohnson
[MemProf] Don't build memprof if sanitizer not being built

This should fix a couple of debian bot failures:
http://lab.llvm.org:8011/#builders/14/builds/380
http://lab.llvm.org:8011/#builders/109/builds/533

They disable building of the sanitizer, which memprof relies on. So
disable building of memprof in that case.
The file was modifiedcompiler-rt/lib/CMakeLists.txt
Commit c4d10e7e9bb47b77fad43d8ddcfa328298f36c88 by scott.linder
[AMDGPU][HIP] Switch default DWARF version to 5

Another attempt at this, see D59008 for previous attempt.

Reviewed By: kzhuravl, t-tye

Differential Revision: https://reviews.llvm.org/D89484
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.h
The file was modifiedclang/lib/Driver/ToolChains/HIP.h
The file was modifiedclang/test/Driver/amdgpu-toolchain.c
The file was modifiedclang/test/Driver/hip-toolchain-dwarf.hip
Commit b740899c500ba6a707711b74bfdacf104e8a8067 by benny.kra
[Indvars][NFCI] Simplify assertion.

This should be semantically identical. Also avoids unused variable
warnings in Release builds.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 3784bdf2176f38cc30134fab776efb43506c0c54 by martin
[libcxx] [test] Fix string type handling in a few fairly trivial class.path tests

Use string() for convenience for testing where possible, but keep using
native() for move tests where we want to check that no allocations are
made, constructing a reference fs::path::string_type instead.

Use the right value_type in a few places.

Make the synop test check for the right types and for the expected
preferred separator.

Differential Revision: https://reviews.llvm.org/D89537
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/synop.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
Commit 98e134f5d01afbcdf74a7ee0af8fe3bed0201e54 by thakis
[gn build] (manually) port 3d4bba302d246
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
Commit 1c54a91d11aeb5f8d5d9f299509c6bda8d993f14 by llvmgnsyncbot
[gn build] Port 3d4bba302d2
The file was modifiedllvm/utils/gn/secondary/compiler-rt/include/BUILD.gn
Commit 53b69820f420ad896780d22fd241581a779b7c2b by aeubanks
[test] Pin null-function.ll to legacy PM

The NPM prints CGSCCs in a different way.
The file was modifiedllvm/test/Transforms/Inline/null-function.ll
Commit 39c05a1a7153379f308a080b3efc5ba3ccc8be0d by Amara Emerson
[AArch64][GlobalISel] Add selection support for v2s32 and v2s64 reductions for FADD/ADD.

We'll need legalizer lower() support for the other types to work.

Differential Revision: https://reviews.llvm.org/D89159
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-reduce-fadd.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vabs.ll
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-reduce-add.mir
Commit 0b1b2a180c66d894da3202b2b56a8e11be5f7a08 by i
[llvm-objdump][test] Delete source-interleave-prefix-windows.test

It needs more work: http://45.33.8.238/win/25999/step_11.txt
The file was removedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test
Commit cf245086518efbdf96c2d86697298a8da5c97669 by Adrian Prantl
Add support for more OS types to AddClangModuleCompilationOptionsForSDKType()

This patch also avoids hardcoding the clang options, which makes it
less likely for them to become out-of-date.

rdar://problem/63791367+66927829

Differential Revision: https://reviews.llvm.org/D89428
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Commit 08d6650b7bf2d923dfc8255c090f0fbd64f5691f by i
[llvm-objdump][test] Unsupport system-windows for source-interleave-prefix.test
The file was modifiedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
Commit dd4e8a54b2ba9cec78441ba537b94f4eaa5acd84 by richard
[docs] Fix some out-of-date / inaccurate text and missing formatting in the User's Manual.
The file was modifiedclang/docs/UsersManual.rst
Commit f3df3b58e7dd7c400f9c18d16d92631823705ebd by riddleriver
[mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects.

(Note: This is a reland of D82597)

This class allows for defining thread local objects that have a set non-static lifetime. This internals of the cache use a static thread_local map between the various different non-static objects and the desired value type. When a non-static object destructs, it simply nulls out the entry in the static map. This will leave an entry in the map, but erase any of the data for the associated value. The current use cases for this are in the MLIRContext, meaning that the number of items in the static map is ~1-2 which aren't particularly costly enough to warrant the complexity of pruning. If a use case arises that requires pruning of the map, the functionality can be added.

This is especially useful in the context of MLIR for implementing thread-local caching of context level objects that would otherwise have very high lock contention. This revision adds a thread local cache in the MLIRContext for attributes, identifiers, and types to reduce some of the locking burden. This led to a speedup of several seconds when compiling a somewhat large mlir module.

Differential Revision: https://reviews.llvm.org/D89504
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/include/mlir/Support/StorageUniquer.h
The file was modifiedmlir/lib/Support/StorageUniquer.cpp
The file was addedmlir/include/mlir/Support/ThreadLocalCache.h
Commit 7bc7d0ac7ae2e2c578463758422214e80ce5e056 by riddleriver
[mlir] Optimize symbol related checks in SymbolDCE

This revision contains two optimizations related to symbol checking:
* Optimize SymbolOpInterface to only check for a name attribute if the operation is an optional symbol.
This removes an otherwise unnecessary attribute lookup from a majority of symbols.
* Add a new SymbolTableCollection class to represent a collection of SymbolTables.
This allows for perfoming non-flat symbol lookups in O(1) time by caching SymbolTables for symbol table operations. This class is very useful for algorithms that operate on multiple symbol tables, either recursively or not.

Differential Revision: https://reviews.llvm.org/D89505
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/include/mlir/IR/SymbolInterfaces.td
The file was modifiedmlir/lib/Transforms/SymbolDCE.cpp
Commit 71eeb5ec4d6edbbef31fec83fe75933d48f101df by riddleriver
[mlir] Add a new SymbolUserOpInterface class

The initial goal of this interface is to fix the current problems with verifying symbol user operations, but can extend beyond that in the future. The current problems with the verification of symbol uses are:
* Extremely inefficient:
Most current symbol users perform the symbol lookup using the slow O(N) string compare methods, which can lead to extremely long verification times in large modules.
* Invalid/break the constraints of verification pass
If the symbol reference is not-flat(and even if it is flat in some cases) a verifier for an operation is not permitted to touch the referenced operation because it may be in the process of being mutated by a different thread within the pass manager.

The new SymbolUserOpInterface exposes a method `verifySymbolUses` that will be invoked from the parent symbol table to allow for verifying the constraints of any referenced symbols. This method is passed a `SymbolTableCollection` to allow for O(1) lookups of any necessary symbol operation.

Differential Revision: https://reviews.llvm.org/D89512
The file was modifiedmlir/include/mlir/IR/SymbolInterfaces.td
The file was modifiedmlir/docs/SymbolsAndSymbolTables.md
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/docs/Interfaces.md
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/IR/SymbolTable.cpp
Commit a5ea60456c16faf7c75df98b03d5de5b9b6f506d by riddleriver
[mlir] Update SCCP and the Inliner to use SymbolTableCollection for symbol lookups

This transforms the symbol lookups to O(1) from O(NM), greatly speeding up both passes. For a large MLIR module this shaved seconds off of the compilation time.

Differential Revision: https://reviews.llvm.org/D89522
The file was modifiedmlir/lib/Interfaces/CallInterfaces.cpp
The file was modifiedmlir/include/mlir/Analysis/CallGraph.h
The file was modifiedmlir/lib/Analysis/CallGraph.cpp
The file was modifiedmlir/include/mlir/Interfaces/CallInterfaces.td
The file was modifiedmlir/lib/Transforms/Inliner.cpp
The file was modifiedmlir/lib/Transforms/SCCP.cpp
Commit 978fbd8268ce5f5cd01ae9fc41cd03ea7a08dabe by Austin.Kerbow
[AMDGPU] Run hazard recognizer pass later

If instructions were removed in peephole passes after the hazard recognizer was
run it is possible that new hazards could be introduced.

Fixes: SWDEV-253090

Reviewed By: rampitec, arsenm

Differential Revision: https://reviews.llvm.org/D89077
The file was addedllvm/test/CodeGen/AMDGPU/hazard-pass-ordering.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Commit f2897b8f45c1df944e45f849757d2a2507e96805 by psteinfeld
[flang] Disallow pointer constants

None of the other Fortran compilers allow them.

Differential Revision: https://reviews.llvm.org/D89581
The file was modifiedflang/test/Semantics/resolve90.f90
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit faf521042098f3780a8b12698260833d9c980b62 by aeubanks
[CGSCC] Add -abort-on-max-devirt-iterations-reached option

Aborts if we hit the max devirtualization iteration.
Will be useful for testing that changes to devirtualization don't cause
devirtualization to repeat passes more times than necessary.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D89519
The file was modifiedllvm/test/Other/cgscc-devirt-iteration.ll
The file was modifiedllvm/lib/Analysis/CGSCCPassManager.cpp
The file was modifiedllvm/include/llvm/Analysis/CGSCCPassManager.h
Commit f085b7cbc1a673e89f74926961e44ba468411619 by flo
[SCEV] Add additional tests where the max BTC is limited by wrapping.
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-limit-by-wrapping.ll
Commit 74c8c2d903e2c849a2132ae798018f8bbe00ea21 by nikita.ppv
Revert "Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs""

This reverts commit 32b72c3165bf65cca2e8e6197b59eb4c4b60392a.

While better than before, this change still introduces a large
compile-time regression (>3% on mafft):
https://llvm-compile-time-tracker.com/compare.php?from=fbd62fe60fb2281ca33da35dc25ca3c87ec0bb51&to=32b72c3165bf65cca2e8e6197b59eb4c4b60392a&stat=instructions

Additionally, the logic here doesn't look quite right to me,
I will comment in more detail on the differential revision.
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit 874524ab88a9cb8a9208be281ab5103c92b8bf15 by Stanislav.Mekhanoshin
[AMDGPU] Drop array size in AMDGCNGPUs and R600GPUs

Differential Revision: https://reviews.llvm.org/D89568
The file was modifiedllvm/lib/Support/TargetParser.cpp
Commit c36c0fabd17a57513fa00ebd5579f307f889cb64 by tra
[VectorCombine] Avoid crossing address space boundaries.

We can not bitcast pointers across different address spaces, and VectorCombine
should be careful when it attempts to find the original source of the loaded
data.

Differential Revision: https://reviews.llvm.org/D89577
The file was addedllvm/test/Transforms/VectorCombine/AMDGPU/lit.local.cfg
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
The file was addedllvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll
Commit 48c70c1664aa4512cb7e08352dd8eb33dde4807c by richard
Extend memset-to-zero optimization to C++11 aggregate functional casts
Aggr{...}.

We previously missed these cases due to not stepping over the additional
AST nodes representing their syntactic form.
The file was modifiedclang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
The file was modifiedclang/lib/CodeGen/CGExprAgg.cpp
Commit 7e801ca0efa99f7cec7a2aea30513ad282030b51 by richard
Treat constant contexts as being in the default rounding mode.

This addresses a regression where pretty much all C++ compilations using
-frounding-math now fail, due to rounding being performed in constexpr
function definitions in the standard library.

This follows the "manifestly constant evaluated" approach described in
https://reviews.llvm.org/D87528#2270676 -- evaluations that are required
to succeed at compile time are permitted even in regions with dynamic
rounding modes, as are (unfortunately) the evaluation of the
initializers of local variables of const integral types.

Differential Revision: https://reviews.llvm.org/D89360
The file was addedclang/test/SemaCXX/rounding-math.cpp
The file was addedclang/test/Sema/rounding-math.c
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit ac2def2d8d8c9aa6f96f0c869a5b988ae602385a by vtjnash
make the AsmPrinterHandler array public

This lets external consumers customize the output, similar to how
AssemblyAnnotationWriter lets the caller define callbacks when printing
IR. The array of handlers already existed, this just cleans up the code
so that it can be exposed publically.

Differential Revision: https://reviews.llvm.org/D74158
The file was modifiedllvm/unittests/CodeGen/TestAsmPrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/include/llvm/CodeGen/DebugHandlerBase.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/lib/CodeGen/MachineModuleInfo.cpp
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinterHandler.h
The file was modifiedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
Commit 66506eeb37b293b9be5b943d51ec087608396d8c by rengolin
Fix Windows llvm-objdump tests

Broken in e95f9a23fad with path issues.
The file was modifiedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
The file was modifiedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-non-windows.test
Commit 173389e16d32521ee8160b97f31daefcdd78fa2e by Stanislav.Mekhanoshin
[AMDGPU] Fix gfx1032 description in AMDGPUUsage.rst. NFC.

Differential Revision: https://reviews.llvm.org/D89565
The file was modifiedllvm/docs/AMDGPUUsage.rst
Commit f0f3d1b1817a48daa0680324bec3c6d34e590d4a by rengolin
Revert "Fix Windows llvm-objdump tests"

It had already been fixed in a different way.
The file was modifiedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
The file was modifiedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-non-windows.test
Commit 24b5266892c30e2c9cb6ea28c2631e988a5754b6 by benhamilton
[Format/ObjC] Correctly handle base class with lightweight generics and protocol

ClangFormat does not correctly handle an Objective-C interface declaration
with both lightweight generics and a protocol conformance.

This simple example:

```
@interface Foo : Bar <Baz> <Blech>

@end
```

means `Foo` extends `Bar` (a lightweight generic class whose type
parameter is `Baz`) and also conforms to the protocol `Blech`.

ClangFormat should not apply any changes to the above example, but
instead it currently formats it quite poorly:

```
@interface Foo : Bar <Baz>
<Blech>

    @end
    ```

The bug is that `UnwrappedLineParser` assumes an open-angle bracket
after a base class name is a protocol list, but it can also be a
lightweight generic specification.

This diff fixes the bug by factoring out the logic to parse
lightweight generics so it can apply both to the declared class
as well as the base class.

Test Plan: New tests added. Ran tests with:
  % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests
  Confirmed tests failed before diff and passed after diff.

Reviewed By: sammccall, MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D89496
The file was modifiedclang/unittests/Format/FormatTestObjC.cpp
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp
The file was modifiedclang/lib/Format/UnwrappedLineParser.h
Commit 4242df14708cb84b3732ba1a22fb77146833340b by vtjnash
Revert "make the AsmPrinterHandler array public"

I messed up one of the tests.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modifiedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/unittests/CodeGen/TestAsmPrinter.h
The file was modifiedllvm/include/llvm/CodeGen/DebugHandlerBase.h
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinterHandler.h
The file was modifiedllvm/lib/CodeGen/MachineModuleInfo.cpp
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
Commit f16cecf3752a7c168293934d2ba6472a6b405694 by davelee.com
[lldb] Implement ObjCExceptionThrowFrameRecognizer::GetName()

Implement `GetName` for `ObjCExceptionThrowFrameRecognizer`. Otherwise, `frame recognizer list` shows "(internal)" for the name.

Differential Revision: https://reviews.llvm.org/D89589
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Commit 109113015ebeeceec862fc53a678b3619a879ce4 by daniel_l_sanders
[objdump][macho] Check arch before formating reloc name as arm64 addend

Before formating ARM64_RELOC_ADDEND relocation target name as a hex
number, the architecture need to be checked since other architectures
can define a different relocation type with the same integer as
ARM64_RELOC_ADDEND.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D89094
The file was modifiedllvm/tools/llvm-objdump/MachODump.cpp
Commit 552c6c2328723a248c2b4d2765f75d49129dff20 by richard
PR44406: Follow behavior of array bound constant folding in more recent versions of GCC.

Old GCC used to aggressively fold VLAs to constant-bound arrays at block
scope in GNU mode. That's non-conforming, and more modern versions of
GCC only do this at file scope. Update Clang to do the same.

Also promote the warning for this from off-by-default to on-by-default
in all cases; more recent versions of GCC likewise warn on this by
default.

This is still slightly more permissive than GCC, as pointed out in
PR44406, as we still fold VLAs to constant arrays in structs, but that
seems justifiable given that we don't support VLA-in-struct (and don't
intend to ever support it), but GCC does.

Differential Revision: https://reviews.llvm.org/D89523
The file was modifiedclang/test/Profile/misexpect-switch.c
The file was modifiedclang/test/SemaCXX/anonymous-struct.cpp
The file was modifiedclang/test/Sema/builtins.c
The file was modifiedclang/test/Sema/typedef-variable-type.c
The file was modifiedclang/test/CodeGen/vla.c
The file was modifiedclang/test/SemaObjC/gcc-cast-ext.m
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/const-eval-64.c
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/test/Sema/offsetof-64.c
The file was modifiedclang/test/Sema/gnu-flags.c
The file was modifiedclang/test/Sema/decl-in-prototype.c
The file was modifiedclang/test/Profile/misexpect-switch-only-default-case.c
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/CXX/basic/basic.types/p10.cpp
The file was modifiedclang/test/Sema/struct-decl.c
The file was modifiedclang/test/SemaCXX/cxx1z-noexcept-function-type.cpp
The file was modifiedclang/test/SemaCXX/i-c-e-cxx.cpp
The file was modifiedclang/test/Profile/misexpect-switch-default.c
The file was modifiedclang/test/Misc/warning-flags.c
The file was modifiedclang/test/PCH/cxx-constexpr.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/Sema/vla.c
The file was modifiedclang/test/Profile/misexpect-switch-nonconst.c
The file was modifiedclang/test/Sema/i-c-e.c
The file was modifiedclang/test/Sema/complex-int.c
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/test/CXX/drs/dr3xx.cpp
The file was modifiedclang/test/Sema/darwin-align-cast.c
The file was modifiedclang/test/Sema/builtin-assume.c
The file was modifiedclang/test/Sema/rounding-math.c
The file was modifiedclang/test/SemaCXX/constant-expression.cpp
Commit c096377905db8144ed310247609134783b2c9b73 by rob.suderman
Fixed a failure when const matcher fails, added a test to catch

Differential Revision: https://reviews.llvm.org/D89593
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
Commit d30155feaa9c4ddd09cb115fb30ea5810f63af9c by conanap
[PowerPC] Implementation of 128-bit Binary Vector Rotate builtins

This patch implements 128-bit Binary Vector Rotate builtins for PowerPC10.

Differential Revision: https://reviews.llvm.org/D86819
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
The file was addedllvm/test/CodeGen/PowerPC/p10-vector-rotate.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit efd02c1548ee458d59063f6393e94e972b5c3d50 by richard
Fix accidental use of VLAs that causes these tests to fail after Clang
commit 552c6c2328723a248c2b4d2765f75d49129dff20.
The file was modifiedcompiler-rt/test/asan/TestCases/strncasecmp_strict.c
The file was modifiedcompiler-rt/test/asan/TestCases/strncmp_strict.c
Commit 5adb3a6d86eecade2cb94b1a04d35e673d4e5866 by georgios.rokos
[libomptarget] Fix copy-to motion for PTR_AND_OBJ entries where PTR is a struct member.

This patch fixes a problem whereby the pointee object of a PTR_AND_OBJ entry with a `map(to)` motion clause can be overwritten on the device even if its reference counter is >=1.

Currently, we check the reference counter of the parent struct in order to determine whether the motion clause should be respected, but since the pointee object is not part of the struct, it's got its own reference counter which should be used to enqueue the copy or discard it.

The same behavior has already been implemented in targetDataEnd (omptarget.cpp:539-540), but we somehow missed doing the same in targetDataBegin.

Differential Revision: https://reviews.llvm.org/D89597
The file was addedopenmp/libomptarget/test/mapping/ptr_and_obj_motion.c
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit d4aac67859640bdb7e8ed3123a00c3f200f89b9c by richard
Make the check for whether we should memset(0) an aggregate
initialization a little smarter.

Look through casts that preserve zero-ness when determining if an
initializer is zero, so that we can handle cases like an {0} initializer
whose corresponding field is a type other than 'int'.
The file was modifiedclang/lib/CodeGen/CGExprAgg.cpp
The file was modifiedclang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
Commit 4ad459997e65fc97427a10b37123b7e0fed1931f by Amara Emerson
[AArch64][GlobalISel] Select csinc if a select has a 1 on RHS.

Differential Revision: https://reviews.llvm.org/D89513
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-select.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit dd32cd4c0d66664691e5fdcd550bca0b03398d44 by aeubanks
[NPM] Fix some PhaseOrdering tests under NPM

These either already have corresponding NPM RUN lines,
or need to be fixed to not use -analyze.
The file was modifiedllvm/test/Transforms/PhaseOrdering/loop-rotation-vs-common-code-hoisting.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/scev-custom-dl.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/reassociate-after-unroll.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/scev.ll
Commit dc9713812355220058e7089dd5c882b76351a6d5 by asbirlea
[MemorySSA] Verify clobbering within reachable blocks.

Resolves PR45976.
The file was modifiedllvm/lib/Analysis/MemorySSA.cpp
The file was addedllvm/test/Analysis/MemorySSA/pr45976.ll
Commit 278bd068918b7df1fe3a2a31a15122f2a708d883 by craig.topper
[TargetLowering] Extract simplifySetCCs ctpop into a separate function. NFCI

As requested in D89346. This allows us to add some early outs.

I reordered some checks a little bit to make the more common bail outs happen earlier. Like checking opcode before checking hasOneUse. And I moved the bit width check to make sure it was safe to look through a truncate to the spot where we look through truncates instead of after.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D89494
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit 0538353b3be3e2a3b1114b6ae238165726727e1c by AlokKumar.Sharma
[DebugInfo] Support for DWARF operator DW_OP_over

LLVM rejects DWARF operator DW_OP_over. This DWARF operator is needed
for Flang to support assumed rank array.

  Summary:
Currently LLVM rejects DWARF operator DW_OP_over. Below error is
produced when llvm finds this operator.
[..]
invalid expression
!DIExpression(151, 20, 16, 48, 30, 35, 80, 34, 6)
warning: ignoring invalid debug info in over.ll
[..]
There were some parts missing in support of this operator, which are
now completed.

  Testing
-added a unit testcase
-check-debuginfo
-check-llvm

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D89208
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
The file was addedllvm/test/Bitcode/DW_OP_over.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was addedllvm/test/DebugInfo/X86/dwarfdump-over.ll
Commit 701cf4b5a59cf647c38694d1ee9735e0309f9291 by aqjune
[LangRef] Rename the names of metadata in load/store's syntax (NFC)

Discussed in D89050
The file was modifiedllvm/docs/LangRef.rst
Commit 2e5b701d9306e45d37d370b1496bff9604605c93 by tmsriram
This test includes a source that will produce basic blocks and hence sections with -fbasic-block-sections=all.

The test reorders the basic blocks to be dis-contiguous in the address space and checks if the back trace contains the right symbol.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D89179
The file was addedlldb/test/Shell/Unwind/Inputs/basic-block-sections.c
The file was addedlldb/test/Shell/Unwind/basic-block-sections.test
Commit 62a0ec1612bd6dee94f900f971afd409ddb62859 by aqjune
Add support for !noundef metatdata on loads

This patch adds metadata !noundef and makes load instructions can optionally have it.
A load with !noundef always return a well-defined value (has no undef bit or isn't poison).
If the loaded value isn't well defined, the behavior is undefined.

This metadata can be used to encode the assumption from C/C++ that certain reads of variables should have well-defined values.
It is helpful for optimizing freeze instructions away, because freeze can be removed when its operand has well-defined value, and showing that a load from arbitrary location is well-defined is usually hard otherwise.

The same information can be encoded with llvm.assume with operand bundle; using metadata is chosen because I wasn't sure whether code motion can be freely done when llvm.assume is inserted from clang instead.
The existing codebase already is stripping unknown metadata when doing code motion, so using metadata is UB-safe as well.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89050
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/include/llvm/IR/FixedMetadataKinds.def
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/test/Transforms/InstSimplify/freeze-noundef.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
Commit 32021eeff0cd4786722e0dd7c31acf7554c6fd0a by Jason Molenda
Un-indent the section on 'Writing Target Stop-Hooks in Python'
it was ending up in a code block from the previous section,
instead of being its own section.
The file was modifiedlldb/docs/use/python-reference.rst
Commit 5564ee495bddeb12d3a9a617631cfa478cf67959 by davelee.com
Revert "Register TargetCXXABI.def as a textual header"

Unbreak module builds.

TargetCXXABI.def has been removed in a revert: 79829a47040512fe54001db839ac59146ca55aec.

This reverts commit 0ff9116b36781d6fa61c25841edd53dc8f366bec.
The file was modifiedclang/include/clang/module.modulemap
Commit ae4fe1984f0e47259b5e476a73749185cc24e1ac by davelee.com
[lldb] Enable cmake policy CMP0077 for option()

In lldb, explicitly set the "option() honors normal variables" CMake policy. This applies for
standalone lldb builds and matches what llvm, clang, etc do. This prevents potentially unwanted
clearing of variables like `LLVM_ENABLE_WARNINGS`, and also prevents unnecessary build warnings.

See: https://cmake.org/cmake/help/latest/policy/CMP0077.html

Differential Revision: https://reviews.llvm.org/D89614
The file was modifiedlldb/CMakeLists.txt
Commit d79ee3a807115f8b96f9f8aa13d99cdea1652980 by david.green
[ARM] Add a very basic active_lane_mask cost

This adds a very basic cost for active_lane_mask under MVE - making the
assumption that they will be free and then apologizing for that in a
comment.

In reality they may either be free (by being nicely folded into a tail
predicated loop), cost the same as a VCTP or be expanded into vdup's,
adds and cmp's. It is difficult to detect the difference from a single
getIntrinsicInstrCost call, so makes the assumption that the vectorizer
is adding them, and only added them where it makes sense.

We may need to change this in the future to better model predicate costs
in the vectorizer, especially at -Os or non-tail predicated loops. The
vectorizer currently does not query the cost of these instructions but
that will change in the future and a zero cost there probably makes the
most sense at the moment.

Differential Revision: https://reviews.llvm.org/D88989
The file was addedllvm/test/Analysis/CostModel/ARM/mve-active_lane_mask.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
Commit b93d74ac9c4e304db6fbc434992c098104ba94a5 by david.green
[ARM] Basic getArithmeticReductionCost reduction costs

This adds some basic costs for MVE reductions - currently just costing
the simple legal add vectors as a single MVE instruction. More complex
costing can be added in the future when the framework more readily
allows it.

Differential Revision: https://reviews.llvm.org/D88980
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-vecreduce-add.ll
Commit 60b19424bb2aebb9b4843e760e165129edcebaf7 by david.green
[NFC] fix some typos in LoopUnrollPass

This patch fixes a couple of typos in the LoopUnrollPass.cpp comments

Differential Revision: https://reviews.llvm.org/D89603
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
Commit 50cc9a0e6124f6177633b9e5edcee25860cfa094 by nikita.ppv
[MemCpyOpt] Extract common function for unwinding check

These two cases should be using the same logic. Not NFC, as this
resolves the TODO regarding use of the underlying object.
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit b7ff218f1c0443aca4cd621ff01e44428b88e85f by luismarques
[RISCV][ASAN] Fix passing XFAIL tests

These tests pass for RV64 Linux, but they are marked as XFAIL. This patch
fixes that.

Differential Revision: https://reviews.llvm.org/D89299
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/odr-violation.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
Commit 57d3e9cd9bca9d71699abc9fb81862e2d80533dd by mtrofin
[NFC][ML] Avoid source of some signed/unsigned warnings in TFUtilsTest
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp
Commit 53e92b4c0efc95c8d9471f44829c86b6c9240ef4 by spatel
[InstCombine] (~A & B) ^ A -> A | B

Differential Revision: https://reviews.llvm.org/D86395
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/xor.ll
Commit b9e789447f14c0330edd22c82746af29e7c3b259 by sylvestre
Revert "[clang-format] Fix AlignConsecutive on PP blocks"

This reverts commit b2eb439317576ce718193763c12bff9fccdfc166.

Caused the regression:
https://bugs.llvm.org/show_bug.cgi?id=47589

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D89464
The file was modifiedclang/lib/Format/FormatToken.h
The file was modifiedclang/lib/Format/WhitespaceManager.cpp
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/unittests/Format/FormatTestComments.cpp
Commit bd6d41f52e5655af3db28095c7574bae6b0cd788 by lebedev.ri
[NFC][SCEV] Add some more ptrtoint/PR46786 -related tests
The file was modifiedllvm/test/Analysis/ScalarEvolution/ptrtoint.ll
The file was addedllvm/test/Analysis/ScalarEvolution/ashr.ll
Commit be1678bdb9d46ad7a1076dd10a773c4b457c072d by lebedev.ri
[NFC][SCEV] Add 'getMinusOne()' method
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit 130cc662b5d313db69b136d880ebe44e58b25418 by lebedev.ri
[NFC][SCEV] Refactor getAbsExpr() out of createSCEV()
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit ec54867df5e7f20e12146e628af34f0384308bcb by lebedev.ri
[SCEV] Model `ashr exact x, C` as `(abs(x) EXACT/u (1<<C)) * signum(x)`

It's not pretty, but probably better than modelling it
as an opaque SCEVUnknown, i guess.

It is relevant e.g. for the loop that was brought up in
https://bugs.llvm.org/show_bug.cgi?id=46786#c26
as an example of what we'd be able to better analyze
once SCEV handles `ptrtoint` (D89456).

But as it is evident, even if we deal with `ptrtoint` there,
we also fail to model such an `ashr`.
Also, modeling of mul-of-exact-shr/div could use improvement.

As per alive2:
https://alive2.llvm.org/ce/z/tnfZKd
```
define i8 @src(i8 %0) {
  %2 = ashr exact i8 %0, 4
  ret i8 %2
}

declare i8 @llvm.abs(i8, i1)
declare i8 @llvm.smin(i8, i8)
declare i8 @llvm.smax(i8, i8)

define i8 @tgt(i8 %x) {
  %abs_x = call i8 @llvm.abs(i8 %x, i1 false)
  %div = udiv exact i8 %abs_x, 16
  %t0 = call i8 @llvm.smax(i8 %x, i8 -1)
  %t1 = call i8 @llvm.smin(i8 %t0, i8 1)
  %r = mul nsw i8 %div, %t1
  ret i8 %r
}
```
Transformation seems to be correct!
The file was modifiedllvm/test/Analysis/ScalarEvolution/ashr.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/ptrtoint.ll