SuccessChanges

Summary

  1. [ConstantFold] Fold the comparison of bitcasted global values (details)
  2. [libc++] Decouple debug mode tests from iostreams (details)
  3. [libc++] Make it easier to add new restrictions for feature-test macro tests (details)
  4. [AMDGPU] [TableGen] Clean up !if(!eq(boolean, 1) and related booleans (details)
  5. Driver: Add integer sanitizers to trapping group automatically. (details)
  6. [Apple-stage2] Install FileCheck and yaml2obj in the toolchain (details)
  7. [libc++] Remove uses of verbose_assert.h in Filesystem tests (details)
  8. clang/Basic: Replace SourceManager::getMemoryBufferForFile, NFC (details)
  9. [hwasan] Increase max allocation size to 1Tb. (details)
  10. [LSAN][NFC] Reformat test (details)
  11. [clangd][ObjC] Support nullability annotations (details)
  12. Get the address space within getVectorPtrTy (details)
  13. Fix pretty printing of linalg GenericOps when there are no inputs. (details)
  14. [AsmWriter] Construct SlotTracker with the function (details)
  15. clang/Basic: Remove SourceManager::getBufferPointer, NFC (details)
  16. [libc++] Get rid of <sstream> in the valarray tests (details)
  17. [X86] Move 's{hr,ar,hl} , <op>' to 'shift <op>' optimization in the assembler into processInstruction. (details)
  18. [X86] Move 'int $3' -> 'int3' handling in the assembler to processInstruction. (details)
  19. [AMDGPU] Optimize waitcnt insertion for flat memory operations (details)
  20. [GWP-ASan] Rework utilities (NFC) (details)
  21. [Polly] Reuse multiple uses in operand tree. (details)
  22. clang/Basic: ContentCache::InvalidFlag => ContentCache::IsBufferInvalid, NFC (details)
  23. Improve file doesnt exist error with -fbasic-block-sections= (details)
  24. Don't permit array bound constant folding in OpenCL. (details)
  25. [HazardRec] Allow inserting multiple wait-states simultaneously (details)
  26. [AMDGPU] Avoid inserting noops during scheduling (details)
  27. Don't instantiate lambda closure types in default member initializers (details)
  28. NFC: Fix -Wsign-compare warnings on 32-bit builds (details)
  29. ContentCache: Simplify by always owning the MemoryBuffer (details)
  30. [flang] Fix call to CHECK() on erroneous subroutine declaration (details)
  31. [lldb] Don't strip LLDB.framework on install (details)
  32. SourceManager: Simplify early returns in ContentCache::getBufferOrNone, NFC (details)
  33. [llvm] Fix ODRViolations for VersionTuple YAML specializations NFC (details)
  34. [test] Fix -fbasic-block-sections= test on Windows after D89500 (details)
  35. This is a test commit (details)
  36. Revert "This is a test commit" (details)
  37. [Polly] Delete unused lambda capture after 7175cffb2133048018df74c1b49d1d4962ea18f2 (details)
  38. [AMDGPU][NFC] Fix missing size in comment (details)
  39. Remove unnecessary header include which violates layering (details)
  40. [NFC][MC] Use [MC]Register in MachineVerifier (details)
  41. Revert D89381 "[SCEV] Recommit "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 2" (details)
  42. [X86] Error on using h-registers with REX prefix in the assembler instead of leaving it to a fatal error in the encoder. (details)
  43. [SCEV] Prove implications of different type via truncation (details)
  44. Revert "[SCEV] Prove implications of different type via truncation" (details)
  45. [NFC][PowerPC]Add tests for folding RLWINM before and after RA. (details)
  46. Revert "[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support" (details)
  47. [libcxx] [test] Split the file_time_type synopsis test (details)
  48. [SVE] Remove reliance on TypeSize comparison operators in unit tests (details)
  49. [SVE][CodeGen] Replace use of TypeSize comparison operator in CreateStackTemporary (details)
  50. [X86] Remove period from end of error message in assembler (details)
  51. [mlir] Expose Value hierarchy to Python bindings (details)
  52. [mlir] Use the correct base class for Attributes in Python bindings (details)
  53. [mlir] Fix copy-pasted docstrings in Python bindings (details)
  54. [X86] Add clang release notes for HRESET and minor change for llvm release notes. (NFC) (details)
  55. [NFC][LSAN] Use InitializeCommonFlags in LSAN (details)
  56. [compiler-rt][builtins][RISCV] Always include __mul[sd]i3 builtin definitions (details)
  57. Reapply "[clang] Improve handling of physical registers in inline (details)
  58. [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. (details)
  59. [InstructionSimplify] Precommit more tests for D89317. NFC. (details)
  60. [Passes] Move ADCE before DSE & LICM. (details)
  61. [mlir] ODS: support TableGen dag objects to specify OpBuilder parameters (details)
  62. [InstructionSimplify] And precommit more tests for D89317. NFC. (details)
  63. [ADT] Fix for ImmutableMapRef (details)
  64. [Driver] Incorporate -mfloat-abi in the computed triple on ARM (details)
  65. [AMDGPU] Fix off by one in assert (details)
  66. [TargetLowering] Add test for bit comparison fold (details)
  67. [TargetLowering] Check boolean content when folding bit compare (details)
  68. Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate (details)
Commit 95bda510fb7b35ac66fe96b0f24f0ec16005802f by efriedma
[ConstantFold] Fold the comparison of bitcasted global values

This is to simplify icmp instructions in the form like:

%cmp = icmp eq i32 (i8*, i8*)* bitcast (i32 (i32**, i32**)* @f32 to i32
%(i8*, i8*)), bitcast (i32 (i64**, i64**) @f64 to i32 (i8*, i8*)*)

Here @f32 and @f64 are two functions.

Differential Revision: https://reviews.llvm.org/D87850
The file was modifiedllvm/test/Transforms/SCCP/undef-resolve.ll
The file was addedllvm/test/Transforms/InstCombine/icmp-bitcast-glob.ll
The file was modifiedllvm/test/Transforms/InstCombine/pr32686.ll
The file was modifiedllvm/test/Transforms/SCCP/ip-ranges-select.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
Commit a0370595777e856653145e18f0c71c4cf9318b18 by Louis Dionne
[libc++] Decouple debug mode tests from iostreams
The file was modifiedlibcxx/test/support/debug_mode_helper.h
The file was modifiedlibcxx/test/libcxx/debug/debug_helper_test.pass.cpp
Commit c2279b262fe3b5ba9e9ab931884d290fa09bbf5c by Louis Dionne
[libc++] Make it easier to add new restrictions for feature-test macro tests
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
Commit 332ff48deea1d68c55311abf6e5b25cf60c10419 by paul
[AMDGPU] [TableGen] Clean up !if(!eq(boolean, 1) and related booleans

Differential Revision: https://reviews.llvm.org/D89796
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
Commit c5acd3490b79703426931f7b88b544fe7c6e1ef2 by peter
Driver: Add integer sanitizers to trapping group automatically.

In D86000 we added a new sanitizer to the integer group
without adding it to the trapping group. This broke usage of
-fsanitize=integer -fsanitize-trap=integer or -fsanitize=integer
-fsanitize-minimal-runtime.

I think we can reasonably expect any new integer sanitizers to be
compatible with trapping and the minimal runtime, so add them to the
trapping group automatically.

Also add a test to ensure that any future additions of sanitizers
to the integer group will most likely result in test failures which
would lead to updates to the minimal runtime if necessary. For this
particular sanitizer no updates are required because it uses the
existing shift_out_of_bounds callback function.

Differential Revision: https://reviews.llvm.org/D89766
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/test/Driver/fsanitize.c
Commit 27a909a24f99d4de40c4ce6553b9cd420b11c056 by Jonas Devlieghere
[Apple-stage2] Install FileCheck and yaml2obj in the toolchain

rdar://70274446

Differential revision: https://reviews.llvm.org/D89763
The file was modifiedclang/cmake/caches/Apple-stage2.cmake
Commit e557b6a66d5476dd5b9905934099f5f7357310b8 by Louis Dionne
[libc++] Remove uses of verbose_assert.h in Filesystem tests

For a modest loss of debugability in the tests, this allows more tests
to run on platforms that do not have support for <iostream>.
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
The file was removedlibcxx/test/support/verbose_assert.h
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
Commit 2dc7e0c6a586135fe236cd7ebf065617a7638bdb by Duncan P. N. Exon Smith
clang/Basic: Replace SourceManager::getMemoryBufferForFile, NFC

Replace `SourceManager::getMemoryBufferForFile`, which returned a
dereferenceable `MemoryBuffer*` and had a `bool*Invalid` out parameter,
with `getMemoryBufferForFileOrNone` (returning
`Optional<MemoryBufferRef>`) and `getMemoryBufferForFileOrFake`
(returning `MemoryBufferRef`).

Differential Revision: https://reviews.llvm.org/D89429
The file was modifiedclang/lib/Lex/Preprocessor.cpp
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/include/clang/Frontend/PrecompiledPreamble.h
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Frontend/PrecompiledPreamble.cpp
Commit b3ccfa1e0ce74041a76ce802e3be7944eea57c41 by eugenis
[hwasan] Increase max allocation size to 1Tb.

2Gb is unreasonably low on devices with 12Gb RAM and more.

Differential Revision: https://reviews.llvm.org/D89750
The file was modifiedcompiler-rt/lib/hwasan/hwasan_allocator.h
The file was modifiedcompiler-rt/test/hwasan/TestCases/sizes.cpp
The file was modifiedcompiler-rt/test/hwasan/TestCases/allocator_returns_null.cpp
The file was modifiedcompiler-rt/lib/hwasan/hwasan_allocator.cpp
Commit 343410d1cc154db99b7858e0a9c3ffd86ad94e45 by Vitaly Buka
[LSAN][NFC] Reformat test
The file was modifiedcompiler-rt/test/lsan/TestCases/use_registers.cpp
Commit d5c022d846999127352aa3c08c0f81418a942aab by davg
[clangd][ObjC] Support nullability annotations

Nullability annotations are implmented using attributes; previusly
clangd would skip over AttributedTypeLoc since their location
points to the attribute instead of the modified type.

Also add some test cases for this.

Differential Revision: https://reviews.llvm.org/D89579
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/Selection.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SelectionTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/HoverTests.cpp
Commit 2eac8ce820e6c9fe51bf93b55cb8a781b8b9fc7c by ctetreau
Get the address space within getVectorPtrTy

getVectorPtrTy is private to VectorBlockGenerator, and all uses query
the address space from the passed-in pointer prior to calling it.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D89745
The file was modifiedpolly/lib/CodeGen/BlockGenerators.cpp
The file was modifiedpolly/include/polly/CodeGen/BlockGenerators.h
Commit 256492677d9591c97071ce1ee4b060a2680316c5 by ravishankarm
Fix pretty printing of linalg GenericOps when there are no inputs.

Differential Revision: https://reviews.llvm.org/D89825
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit 96f372c1e7402595edd2ae9f86b9bdfa22dc1045 by kazu
[AsmWriter] Construct SlotTracker with the function

This patch teaches BasicBlock::print to construct an instance of
SlotTracker with the containing function.

Without this patch, we dump:

*** IR Dump After LoopInstSimplifyPass ***
; Preheader:
  br label %1

; Loop:
<badref>:                                         ; preds = %1, %0
  br label %1

Note "<badref>" above.  This happens because BasicBlock::print calls:

  SlotTracker SlotTable(this->getModule());

Note that this constructor does not add the contents of functions to
the slot table.  That is, basic blocks are left unnumbered.

This patch fixes the problem by switching to:

  SlotTracker SlotTable(this->getParent());

which does add the contents of the Module and the function,
this->getParent(), to the slot table.

Differential Revision: https://reviews.llvm.org/D89567
The file was addedllvm/test/Other/bb-badref.ll
The file was modifiedllvm/lib/IR/AsmWriter.cpp
Commit 747b134d019ce99bc4463d09992634965ee95031 by Duncan P. N. Exon Smith
clang/Basic: Remove SourceManager::getBufferPointer, NFC

Inline `Source::getBufferPointer` into its only remaining caller,
`getBufferOrNone`. No functionality change.

Differential Revision: https://reviews.llvm.org/D89430
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Basic/SourceManager.cpp
Commit 9339ab30fbe4d564f570f38205aca683f2fbaffc by Louis Dionne
[libc++] Get rid of <sstream> in the valarray tests
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/log_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/pow_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/asin_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/atan2_valarray_valarray.pass.cpp
The file was addedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/valarray_helper.h
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/cosh_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/cos_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/sqrt_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/sinh_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/log10_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/atan2_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/sin_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/acos_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/exp_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/atan2_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/pow_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/tanh_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/atan_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/pow_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/tan_valarray.pass.cpp
Commit 702aae368a6d7744ea025c860c81f9df1da05b7f by craig.topper
[X86] Move 's{hr,ar,hl} , <op>' to 'shift <op>' optimization in the assembler into processInstruction.

Instead of detecting the mnemonic and hacking the operands before
parsing. Just fix it up after parsing.
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 1298252f80fec0cd77aabef5cb133e7b030852e4 by craig.topper
[X86] Move 'int $3' -> 'int3' handling in the assembler to processInstruction.

Instead of handling before parsing, just fix it after parsing.
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 1bc7bfffdbabffcdb43cc2829c551c33aed57742 by Tony.Tye
[AMDGPU] Optimize waitcnt insertion for flat memory operations

Change waitcnt insertion to check the memory operand tokens to see if
flat memory operations access VMEM in the same way it does to check if
accessing LDS. This avoids adding waitcnt for counters for address
spaces that are not accessed.

In addition, only generate the pessimistic waitcnt 0 if a flat memory
operation appears to access both VMEM and LDS.

This benefits flat memory operations that explicitly specify the
address space as GLOBAL or LOCAL.

Differential Revision: https://reviews.llvm.org/D89618
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.cos.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/sub.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/waitcnt-vscnt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmin_legacy.f64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/shl.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/waitcnt-looptest.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/idot2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.d16.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/load-lo16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/copy-illegal-type.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/max.i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmax_legacy.f64.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-non-entry-func.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/waitcnt.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i128.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.sin.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/trunc-combine.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/bitreverse.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/imm16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/waitcnt-back-edge-loop.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i8.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.dec.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.global.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ctlz.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/saddo.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lshr.v2i16.ll
Commit be8e4de7240eb0f7dc2f7fd6d07898184c04c72b by kostyak
[GWP-ASan] Rework utilities (NFC)

Few changes wrt utilities:
- split `Check` into a platform agnostic condition test and a platform
  specific termination, for which we introduce the function `die`.
- add a platform agnostic `utilities.cpp` that gets the allocation
  alignment functions original in the platform specific file, as they
  are reusable by all platforms.

Differential Revision: https://reviews.llvm.org/D89811
The file was modifiedcompiler-rt/lib/gwp_asan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/gwp_asan/utilities.h
The file was modifiedcompiler-rt/lib/gwp_asan/platform_specific/utilities_posix.cpp
The file was addedcompiler-rt/lib/gwp_asan/utilities.cpp
Commit 7175cffb2133048018df74c1b49d1d4962ea18f2 by llvm-project
[Polly] Reuse multiple uses in operand tree.

Recursively traversing the operand tree leads to an exponential blowup
if instructions are used multiple times due to every path leading to an
additional copy of the instructions after forwarding. This problem was
marked as a TODO in the code and was reported as a bug in llvm.org/PR47340.

Fix by caching already visited instructions and returning the cached
version when already visited. Instead of calling forwardTree() twice,
return a ForwardingAction structure that contains a lambda which will
carry-out the forwarding when requested. The lambdas are executed in
reverse-postorder to mimic the previous recursive calls unless there
is a reuse.

Fixes llvm.org/PR47340
The file was addedpolly/test/ForwardOpTree/forward_reusue.ll
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp
The file was modifiedpolly/test/ForwardOpTree/forward_load_tripleuse.ll
Commit 1d78e2101ab75f01615a45467c44da7181cccedb by Duncan P. N. Exon Smith
clang/Basic: ContentCache::InvalidFlag => ContentCache::IsBufferInvalid, NFC

Move a flag out of the `MemoryBuffer*` to unblock changing it to a
`unique_ptr`. There are plenty of bits available in the bitfield below.

Differential Revision: https://reviews.llvm.org/D89431
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Basic/SourceManager.cpp
Commit f88785460ecf40a9176f58637d38fb785eb91ac4 by tmsriram
Improve file doesnt exist error with -fbasic-block-sections=

With -fbasicblock-sections=, let the front-end handle the case where the file
doesnt exist. The driver only checks if the option syntax is right.

Differential Revision: https://reviews.llvm.org/D89500
The file was modifiedclang/test/CodeGen/basic-block-sections.c
The file was modifiedclang/test/Driver/fbasic-block-sections.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 6781fee085058913444e0c5937da9c0e7e928db5 by richard
Don't permit array bound constant folding in OpenCL.

Permitting non-standards-driven "do the best you can" constant-folding
of array bounds is permitted solely as a GNU compatibility feature. We
should not be doing it in any language mode that is attempting to be
conforming.

From https://reviews.llvm.org/D20090 it appears the intent here was to
permit `__constant int` globals to be used in array bounds, but the
change in that patch only added half of the functionality necessary to
support that in the constant evaluator. This patch adds the other half
of the functionality and turns off constant folding for array bounds in
OpenCL.

I couldn't find any spec justification for accepting the kinds of cases
that D20090 accepts, so a reference to where in the OpenCL specification
this is permitted would be useful.

Note that this change also affects the code generation in one test:
because after 'const int n = 0' we now treat 'n' as a constant
expression with value 0, it's now a null pointer, so '(local int *)n'
forms a null pointer rather than a zero pointer.

Reviewed By: Anastasia

Differential Revision: https://reviews.llvm.org/D89520
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-nullptr.cl
The file was modifiedclang/test/SemaOpenCL/address-spaces.cl
The file was modifiedclang/lib/Sema/SemaType.cpp
Commit 37d907899f498c6944fc234ed2742b9923b88952 by Austin.Kerbow
[HazardRec] Allow inserting multiple wait-states simultaneously

If a target can encode multiple wait-states into a noop allow emitting such
instructions directly.

Reviewed By: rampitec, dmgreen

Differential Revision: https://reviews.llvm.org/D89753
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/fp-atomic-to-s_denormmode.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/hazard-hidden-bundle.mir
The file was modifiedllvm/lib/CodeGen/PostRAHazardRecognizer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/vmem-vcc-hazard.mir
The file was modifiedllvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/inserted-wait-states.mir
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/mai-hazards.mir
Commit ebdcef20ce2921d1b6e8463ecf4031396cef79dc by Austin.Kerbow
[AMDGPU] Avoid inserting noops during scheduling

Passes that are run after the post-RA scheduler may insert instructions like
waitcnt which eliminate the need for certain noops. After this patch the
scheduler is still aware of possible latency from hazards but noops will
not be inserted until the dedicated hazard recognizer pass is run.

Depends on D89753.

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D89754
The file was modifiedllvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i128.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global-saddr-atomics.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/power-sched-no-instr-sunit.mir
The file was removedllvm/test/CodeGen/AMDGPU/nop-fold.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/memory_clause.ll
Commit 15e772e8dc39f609115430f39078fbe58812fddb by richard
Don't instantiate lambda closure types in default member initializers
when instantiating the enclosing class.

We'll build new lambda closure types if and when we instantiate the
default member initializer, and instantiating the closure type by itself
can go wrong in cases where we fully-instantiate nested classes (in
explicit instantiations of the enclosing class and when the enclosing
class is a local class) -- we will instantiate the 'operator()' as a
regular function rather than as a lambda call operator, so it doesn't
get to use its captures, has the wrong 'this' type, etc.
The file was modifiedclang/test/SemaTemplate/explicit-instantiation.cpp
The file was modifiedclang/test/SemaTemplate/instantiate-local-class.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
Commit 134ffa8138c31444685013e10f592cd7c88d675b by hubert.reinterpretcast
NFC: Fix -Wsign-compare warnings on 32-bit builds

Comparing 32-bit `ptrdiff_t` against 32-bit `unsigned` results in
`-Wsign-compare` warnings for both GCC and Clang.

The warning for the cases in question appear to identify an issue
where the `ptrdiff_t` value would be mutated via conversion to an
unsigned type.

The warning is resolved by using the usual arithmetic conversions to
safely preserve the value of the `unsigned` operand while trying to
convert to a signed type. Host platforms where `unsigned` has the same
width as `unsigned long long` will need to make a different change, but
using an explicit cast has disadvantages that can be avoided for now.

Reviewed By: dantrushin

Differential Revision: https://reviews.llvm.org/D89612
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedllvm/lib/CodeGen/StackMaps.cpp
Commit 296314516d103f8eeb987a08b509c1381cfeef89 by Duncan P. N. Exon Smith
ContentCache: Simplify by always owning the MemoryBuffer

This changes `ContentCache::Buffer` to use
`std::unique_ptr<MemoryBuffer>` instead of the `PointerIntPair`. It
drops the (mostly unused) `DoNotFree` bit, instead creating a (new)
non-owning `MemoryBuffer` instance when passed a `MemoryBufferRef`.

Differential Revision: https://reviews.llvm.org/D67030
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit 29d838310d4521fbd98741267b0a28cee5b56a36 by psteinfeld
[flang] Fix call to CHECK() on erroneous subroutine declaration

When processing declarations in resolve-names.cpp, we were returning a
symbol that had SubprogramName details to PushSubprogramScope(), which
expects a symbol with Subprogram details.

I adjusted the code and added a test.

Differential Revision: https://reviews.llvm.org/D89829
The file was modifiedflang/test/Semantics/resolve19.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit c565f09f4b0d908f51aaf4a841285f39ef93bc8c by Jonas Devlieghere
[lldb] Don't strip LLDB.framework on install

The framework build will run dsymutil after LLDB.framework is installed.
The file was modifiedlldb/cmake/caches/Apple-lldb-macOS.cmake
Commit 4aa97e3dacf3bdf5636fbf89dd8c64f1e4648065 by Duncan P. N. Exon Smith
SourceManager: Simplify early returns in ContentCache::getBufferOrNone, NFC

As suggested in the review for https://reviews.llvm.org/D89430, simplify
the logic for marking the buffer as invalid in the early return paths.

Differential Revision: https://reviews.llvm.org/D89722
The file was modifiedclang/lib/Basic/SourceManager.cpp
Commit acb33cba6d455dd96d82e2b746b2237f283a6416 by Cyndy Ishida
[llvm] Fix ODRViolations for VersionTuple YAML specializations NFC

It appears for Swift there was confusing errors when trying to parse APINotes, when libAPINotes and libInterfaceStub are linked, they both export symbol
`__ZN4llvm4yaml7yamlizeINS_12VersionTupleEEENSt3__19enable_ifIXsr16has_ScalarTraitsIT_EE5valueEvE4typeERNS0_2IOERS5_bRNS0_12EmptyContextE`, and discovered
same symbol defined within llvm-ifs.

This consolidates the boilerplate into YAMLTraits and defers the specific validation in reading the whole input.
fixes: rdar://problem/70450563

Reviewed By: phosek, dblaikie

Differential Revision: https://reviews.llvm.org/D89764
The file was modifiedllvm/lib/Support/YAMLTraits.cpp
The file was modifiedllvm/tools/llvm-ifs/llvm-ifs.cpp
The file was modifiedllvm/include/llvm/Support/YAMLTraits.h
The file was modifiedllvm/lib/InterfaceStub/TBEHandler.cpp
The file was modifiedllvm/unittests/InterfaceStub/ELFYAMLTest.cpp
Commit 829b9f6606af03e24d7715712e05c941d1c661ce by i
[test] Fix -fbasic-block-sections= test on Windows after D89500
The file was modifiedclang/test/CodeGen/basic-block-sections.c
Commit cbe0ee1a94d11bd32019920c8f55ebd58054542a by tu.da.wei
This is a test commit
The file was modifiedREADME.md
Commit aa07357c798c5f4d23e84b287a7ebcb1356f0af6 by tu.da.wei
Revert "This is a test commit"

This reverts commit cbe0ee1a94d11bd32019920c8f55ebd58054542a.
The file was modifiedREADME.md
Commit 2213a354b9d1cc0153ac20367e5397c66e660c32 by i
[Polly] Delete unused lambda capture after 7175cffb2133048018df74c1b49d1d4962ea18f2
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp
Commit 324a15ceade2dc5ac5b0f106e0127c5c47942614 by carl.ritson
[AMDGPU][NFC] Fix missing size in comment
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
Commit c17ae2916ccf45a0c1717bd5f11598cc4fff342a by gcmn
Remove unnecessary header include which violates layering

This was introduced in https://reviews.llvm.org/D89774, but I don't
think it should be necessary.

Reviewed By: TaWeiTu, aeubanks

Differential Revision: https://reviews.llvm.org/D89843
The file was modifiedllvm/lib/Transforms/Utils/UnifyLoopExits.cpp
Commit 5e731625f3d641296d972c30da4018a9be78f3fe by mtrofin
[NFC][MC] Use [MC]Register in MachineVerifier

Differential Revision: https://reviews.llvm.org/D89815
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit d9f91a3d14526fbc1d8cc9b98dbd8a093acf37d0 by i
Revert D89381 "[SCEV] Recommit "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 2"

This reverts commit a10a64e7e334dc878d281aba9a46f751fe606567.

It broke polly/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll
The difference suggests that this may be a serious issue.
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
Commit 79a69f558f9fa6728da7354d4b30a97f0c945a58 by craig.topper
[X86] Error on using h-registers with REX prefix in the assembler instead of leaving it to a fatal error in the encoder.

Using a fatal error is bad for user experience.

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D89837
The file was modifiedllvm/test/MC/X86/encoder-fail.s
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 80852a4f2fb154c6094bb9d9e3457757d5a60ad1 by mkazantsev
[SCEV] Prove implications of different type via truncation

When we need to prove implication of expressions of different type width,
the default strategy is to widen everything to wider type and prove in this
type. This does not interact well with AddRecs with negative steps and
unsigned predicates: such AddRec will likely not have a `nuw` flag, and its
`zext` to wider type will not be an AddRec. In contraty, `trunc` of an AddRec
in some cases can easily be proved to be an `AddRec` too.

This patch introduces an alternative way to handling implications of different
type widths. If we can prove that wider type values actually fit in the narrow type,
we truncate them and prove the implication in narrow type.

Differential Revision: https://reviews.llvm.org/D89548
Reviewed By: fhahn
The file was modifiedllvm/test/Analysis/ScalarEvolution/srem.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp
Commit bed02fa8b0ec61b442990fb2406f0157fd3f8c13 by mkazantsev
Revert "[SCEV] Prove implications of different type via truncation"

This reverts commit 80852a4f2fb154c6094bb9d9e3457757d5a60ad1.

Test is now broken because underlying required patch was also reverted SUDDENLY.
The file was modifiedllvm/test/Analysis/ScalarEvolution/srem.ll
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 9fbb060418e00ed7ee3cc88fdd9b90d78b2623a5 by esme.yi
[NFC][PowerPC]Add tests for folding RLWINM before and after RA.
The file was modifiedllvm/test/CodeGen/PowerPC/fold-rlwinm.mir
The file was modifiedllvm/test/CodeGen/PowerPC/vsx_builtins.ll
Commit 4de215ff187746ff02ffdc6bd56bb54d42cbfdca by martin
Revert "[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support"

Also revert "[InstCombine] foldOrOfICmps - use m_Specific instead of
explicit comparisons. NFCI." to make the primarily intended revert
work.

This reverts commits ce13549761b6a22263e051dda09ef5122435008b and
e372a5f86f6488bb0c2593a665d51fdd3a97c6e4.

This commit caused failed asserts e.g. like this:

$ cat repro.cpp
bool a(char b) {
  return b >= '0' && b <= '9' || (b | 32) >= 'a' && (b | 32) <= 'z';
$ clang++ -target x86_64-linux-gnu -c -O2 repro.cpp
clang++: ../include/llvm/ADT/APInt.h:1151: bool llvm::APInt::operator==(const
llvm::APInt&) const: Assertion `BitWidth == RHS.BitWidth && "Comparison
requires equal bit widths"' failed.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/or.ll
Commit b4a289b03ced24799da818f7da4cb0febe35ac4b by martin
[libcxx] [test] Split the file_time_type synopsis test

Split the resolution check to a separate test, which is marked as
unsupported on windows.

On windows (both with MS STL and libstdc++), the file time has
100 ns resolution; the standard doesn't mandate a specific resolution.

Differential Revision: https://reviews.llvm.org/D89535
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp
The file was addedlibcxx/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type_resolution.compile.pass.cpp
Commit f5815105d2762d68000996bff9041216cd7b732e by david.sherwood
[SVE] Remove reliance on TypeSize comparison operators in unit tests

The EXPECT_XY comparison functions all rely upon using the existing
TypeSize comparison operators, which we are deprecating in favour
of isKnownXY. I've changed all such cases to compare either the known
minimum size or the fixed size.

Differential Revision: https://reviews.llvm.org/D89531
The file was modifiedllvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
The file was modifiedllvm/unittests/IR/VectorTypesTest.cpp
Commit 5b17b323a6179d60c58d5048e0679fbbe6782290 by david.sherwood
[SVE][CodeGen] Replace use of TypeSize comparison operator in CreateStackTemporary

We were previously relying upon the TypeSize comparison operators to
obtain the maximum size of two types, however use of such operators is
being deprecated in favour of making the caller aware that it could
be dealing with scalable vector types. I have changed the code to assert
that the two types have the same scalable property and thus we can
simply take the maximum of the known minimum sizes instead.

Differential Revision: https://reviews.llvm.org/D88563
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit d4d0b41a822bacffa42ecea3c0f4c6980463dd31 by craig.topper
[X86] Remove period from end of error message in assembler

Addresses post-commit feedback from D89837.
The file was modifiedllvm/test/MC/X86/encoder-fail.s
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 580915d6a2970022d5b7e05d4587de0fd7126c31 by zinenko
[mlir] Expose Value hierarchy to Python bindings

Values are ubiquitous in the IR, in particular block argument and operation
results are Values. Define Python classes for BlockArgument, OpResult and their
common ancestor Value. Define pseudo-container classes for lists of block
arguments and operation results, and use these containers to access the
corresponding values in blocks and operations.

Differential Revision: https://reviews.llvm.org/D89778
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/test/Bindings/Python/ir_operation.py
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/lib/Bindings/Python/IRModules.h
Commit 31782cd2199b808cda6733d6448e1314e2c8ec96 by zinenko
[mlir] Use the correct base class for Attributes in Python bindings

The pybind class typedef for concrete attribute classes was erroneously
deriving all of them from PyAttribute instead of the provided base class. This
has not been triggering any error because only one level of the hierarchy is
currently exposed.

Differential Revision: https://reviews.llvm.org/D89779
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
Commit f6f27115e622f2cc6b20579e9d7d84c2304091a1 by zinenko
[mlir] Fix copy-pasted docstrings in Python bindings

Docstrings for `__str__` method in many classes was recycling the constant
string defined for `Type`, without being types themselves. Use proper
docstrings instead. Since they are succint, use string literals instead of
top-level constants to avoid further mistakes.

Differential Revision: https://reviews.llvm.org/D89780
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
Commit e32036b9732fd1ec4794fef48ec79a268aa8cbce by pengfei.wang
[X86] Add clang release notes for HRESET and minor change for llvm release notes. (NFC)
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 60913ebcbcb84d1757a4596816637b3861c1cc08 by Vitaly Buka
[NFC][LSAN] Use InitializeCommonFlags in LSAN
The file was modifiedcompiler-rt/lib/lsan/lsan.cpp
Commit 58f6b16c4981f91c49f6878ac342562a7a29d385 by luismarques
[compiler-rt][builtins][RISCV] Always include __mul[sd]i3 builtin definitions

The RISC-V implementations of the `__mulsi3`, `__muldi3` builtins were
conditionally compiling the actual function definitions depending on whether
the M extension was present or not. This caused Compiler-RT testing failures
for RISC-V targets with the M extension, as when these sources were included
the `librt_has_mul*i3` features were still being defined. These `librt_has_*`
definitions are used to conditionally run the respective tests. Since the
actual functions were not being compiled-in, the generic test for `__muldi3`
would fail. This patch makes these implementations follow the normal
Compiler-RT convention of always including the definition, and conditionally
running the respective tests by using the lit conditional
`REQUIRES: librt_has_*`.

Since the `mulsi3_test.c` wasn't actually RISC-V-specific, this patch also
moves it out of the `riscv` directory. It now only depends on
`librt_has_mulsi3` to run.

Differential Revision: https://reviews.llvm.org/D86457
The file was addedcompiler-rt/test/builtins/Unit/mulsi3_test.c
The file was removedcompiler-rt/test/builtins/Unit/riscv/mulsi3_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/muldi3_test.c
The file was modifiedcompiler-rt/lib/builtins/riscv/int_mul_impl.inc
Commit 42a82862b625279028130e62846d057425bca691 by paulsson
Reapply "[clang] Improve handling of physical registers in inline
         assembly operands."

Earlyclobbers are now excepted from this change (original commit: c78da03).

Review: Ulrich Weigand, Nick Desaulniers

Differential Revision: https://reviews.llvm.org/D87279
The file was modifiedclang/test/CodeGen/aarch64-inline-asm.c
The file was addedclang/test/CodeGen/systemz-inline-asm-02.c
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedclang/test/CodeGen/systemz-inline-asm.c
Commit f6a5699c6cb5df03d9e50c17fd47edab3fefd6bf by jay.foad
[AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3PInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrFormats.td
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOPInstructions.td
Commit 782b8f0d38c954bfe75ab0b7ec3be1eb8d3dbdb2 by sjoerd.meijer
[InstructionSimplify] Precommit more tests for D89317. NFC.
The file was modifiedllvm/test/Transforms/InstSimplify/compare.ll
Commit 88241ffb5636ebc0579d3ab8eeec78446a769c54 by flo
[Passes] Move ADCE before DSE & LICM.

The adjustment seems to have very little impact on optimizations.
The only binary change with -O3 MultiSource/SPEC2000/SPEC2006 on X86 is
in consumer-typeset and the size there actually decreases by -0.1%, with
not significant changes in the stats.

On its own, it is mildly positive in terms of compile-time, most likely
due to LICM & DSE having to process slightly less instructions. It
should also be unlikely that DSE/LICM make much new code dead.

http://llvm-compile-time-tracker.com/compare.php?from=df63eedef64d715ce1f31843f7de9c11fe1e597f&to=e3bdfcf94a9eeae6e006d010464f0c1b3550577d&stat=instructions

With DSE & MemorySSA, it gives some nice compile-time improvements, due
to the fact that DSE can re-use the PDT from ADCE, if it does not make
any changes:

http://llvm-compile-time-tracker.com/compare.php?from=15fdd6cd7c24c745df1bb419e72ff66fd138aa7e&to=481f494515fc89cb7caea8d862e40f2c910dc994&stat=instructions

Reviewed By: xbolva00

Differential Revision: https://reviews.llvm.org/D87322
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp
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/new-pm-thinlto-prelink-pgo-defaults.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
Commit 6ec3872845dbb4d98a9e21ba43428ba2c023209b by zinenko
[mlir] ODS: support TableGen dag objects to specify OpBuilder parameters

Historically, custom builder specification in OpBuilder has been accepting the
formal parameter list for the builder method as a raw string containing C++.
While this worked well to connect the signature and the body, this became
problematic when ODS needs to manipulate the parameter list, e.g. to inject
OpBuilder or to trim default values when generating the definition. This has
also become inconsistent with other method declarations, in particular in
interface definitions.

Introduce the possibility to define OpBuilder formal parameters using a
TableGen dag similarly to other methods. Additionally, introduce a mechanism to
declare parameters with default values using an additional class. This
mechanism can be reused in other methods. The string-based builder signature
declaration is deprecated and will be removed after a transition period.

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D89470
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was addedmlir/test/mlir-tblgen/op-error.td
The file was modifiedmlir/test/mlir-tblgen/op-decl.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/docs/OpDefinitions.md
Commit e86a70ce3defd7df85ac13879da815025ffa50a3 by sjoerd.meijer
[InstructionSimplify] And precommit more tests for D89317. NFC.
The file was modifiedllvm/test/Transforms/InstSimplify/compare.ll
Commit a6336eab0c507b665dda63fa9db1292a2cdee409 by adam.balogh
[ADT] Fix for ImmutableMapRef

The `Root` member of `ImmutableMapRef` was changed recently from a plain
pointer to `IntrusiveRefCntPtr`. However, the `Profile` member function
was not adjusted. This results in comilation error whenever the
`Profile` method is used on an `ImmutableMapRef`. This patch fixes this
issue and also adds unit tests for `ImmutableMapRef`.

Differential Revision: https://reviews.llvm.org/D89486
The file was modifiedllvm/unittests/ADT/ImmutableMapTest.cpp
The file was modifiedllvm/include/llvm/ADT/ImmutableMap.h
Commit 0c66606230df39e0bf4190f1fc2c2e2fb37a81ea by john.brawn
[Driver] Incorporate -mfloat-abi in the computed triple on ARM

LLVM assumes that when it creates a call to a C library function it
can use the C calling convention. On ARM the effective calling
convention is determined from the target triple, however using
-mfloat-abi=hard on ARM means that calls to (and definitions of) C
library functions use the arm_aapcs_vfpcc calling convention which can
result in a mismatch.

Fix this by incorporating -mfloat-abi into the target triple, similar
to how -mbig-endian and -march/-mcpu are. This only works for EABI
targets and not Android or iOS, but there the float abi is fixed so
instead give an error.

Fixes PR45524

Differential Revision: https://reviews.llvm.org/D89573
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp
The file was addedclang/test/Driver/arm-triple.c
The file was modifiedclang/test/Driver/windows-thumbv7em.cpp
The file was addedclang/test/Driver/arm-float-abi-lto.c
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.h
The file was modifiedclang/test/Driver/arm-float-abi.c
Commit 5290f50e44b632c22800df15c691394e768796be by sebastian.neubauer
[AMDGPU] Fix off by one in assert

D89217 did not subtract one when accessing SubRegFromChannelTable in one
place.

Differential Revision: https://reviews.llvm.org/D89804
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Commit 1af51f077b003253ff50567022efd1e850b2ec54 by sven.vanhaastregt
[TargetLowering] Add test for bit comparison fold

This adds a test covering an issue in bit comparison folding.  The
issue will be addressed in the subsequent commit.

Patch by Erik Hogeman.

Differential Revision: https://reviews.llvm.org/D89390
The file was addedllvm/test/CodeGen/NVPTX/pow2_mask_cmp.ll
Commit bfc961aeb2d0e5a05bca7a894cbc4370f5e79a6a by sven.vanhaastregt
[TargetLowering] Check boolean content when folding bit compare

Updates an optimization that relies on boolean contents being either 0
or 1 to properly check for this before triggering.

The following:
  (X & 8) != 0 --> (X & 8) >> 3
Produces unexpected results when a boolean 'true' value is represented
by negative one.

Patch by Erik Hogeman.

Differential Revision: https://reviews.llvm.org/D89390
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/NVPTX/pow2_mask_cmp.ll
Commit 9a2d2bedb73058f22f4fea30fec14df8281638f5 by nicholas.guy
Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate

Some instructions may be removable through processes such as IfConversion,
however DefinesPredicate can not be made aware of when this should be considered.
This parameter allows DefinesPredicate to distinguish these removable instructions
on a per-call basis, allowing for more fine-grained control from processes like
ifConversion.

Renames DefinesPredicate to ClobbersPredicate, to better reflect it's purpose

Differential Revision: https://reviews.llvm.org/D88494
The file was modifiedllvm/lib/Target/AMDGPU/R600InstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.h
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/IfConversion.cpp
The file was modifiedllvm/lib/Target/AMDGPU/R600InstrInfo.h