FailedChanges

Summary

  1. [lld-macho] Make lld::getInteger() tolerate leading "0x"/"0X" when base is 16 (details)
  2. [sanitizer_common] Add debug print to sysmsg.c (details)
  3. Silence 'warning: unused variable' when compiling with Clang 10.0 (details)
  4. [DAG] Remove DAGTypeLegalizer::GenWidenVectorTruncStores (PR42046) (details)
  5. [PowerPC] Implement the 128-bit Vector Divide Extended Builtins in Clang/LLVM (details)
  6. [PowerPC] Implement Vector String Isolate Builtins in Clang/LLVM (details)
  7. [mlir] NFC: fix trivial typos under include directory (details)
  8. [mlir][ods] Make OpBuilder and OperationState optional (details)
  9. [SyntaxTree] Test the List API (details)
  10. [ASTMatchers] Avoid recursion in ancestor matching to save stack space. (details)
  11. [NFC][regalloc] Simplify/conform to style guide indvars in Greedy (details)
  12. Version 0.5 of the new "TableGen Backend Developer's Guide." (details)
  13. [Analyzer][WebKit] UncountedLocalVarsChecker (details)
  14. [gn build] Port 848d66fafd2 (details)
  15. [gn build] Port 8a64689e264 (details)
  16. [clang] Fix a typo-correction crash (details)
  17. [test][MC] Rehabilitate llvm/test/MC/COFF/bigobj.py (details)
  18. [NFC] Replace tabs with spaces in PPCInstrPrefix.td (details)
  19. [InstCombine] For pow(x, +/-0.5), stop falling into pow(x, 1.5), etc. case (details)
  20. [lldb] Skip test_common_completion_process_pid_and_name with reproducers (details)
  21. [lldb] Skip TestMiniDumpUUID with reproducers (details)
  22. [LoopInfo][NewPM] Fix tests in Analysis/LoopInfo under NPM (details)
  23. [test][NewPM] Pin do-nothing-intrinsic.ll to legacy PM (details)
  24. [NFC][CVP] Add tests for srem with potentially different sigdness domains (details)
  25. [CVP] Enhance SRem -> URem fold to work not just on non-negative operands (details)
  26. [ConstantRange] binaryXor(): special-case binary complement case - the result is precise (details)
  27. [ConstantRange] Introduce getActiveBits() method (details)
  28. [NFC][CVP] processUDivOrURem(): refactor to use ConstantRange::getActiveBits() (details)
  29. [NFC][APInt] Refactor getMinSignedBits() in terms of getNumSignBits() (details)
  30. [ConstantRange] Introduce getMinSignedBits() method (details)
  31. [NFC][CVP] Give a better name STATISTIC() counting udiv i16 -> udiv i8 xforms (details)
  32. [NFC][CVP] Add tests for SDiv/SRem narrowing (details)
  33. [CVP] Narrow SDiv/SRem to the smallest power-of-2 that's sufficient to contain its operands (details)
  34. Implement a new kind of Pass: dynamic pass pipeline (details)
  35. Revert "[lldb] XFAIL TestMemoryHistory on Linux" (details)
  36. [flang][msvc] Add explicit function template argument to applyFunction. NFC. (details)
  37. [flang][msvc] Add explicit function template argument to applyLamda. NFC. (details)
  38. [flang][msvc] Explicitly reference "this" inside closure. NFC. (details)
  39. Revert "The wrong placement of add pass with optimizations led to -funique-internal-linkage-names being disabled." (details)
  40. Two patches to fix the broken build. (details)
  41. [lldb][test] Remove accidental import pdb in 783dc7dc7ed7487d0782c2feb8854df949b98e69 (details)
  42. [compiler-rt][AIX] Add CMake support for 32-bit Power builds (details)
  43. [ThinLTO] Option to bypass function importing. (details)
  44. [AArch64] Avoid pairing loads with same result reg (details)
  45. [LoopInfo] empty() -> isInnermost(), add isOutermost() (details)
  46. Revert "[CodeGen] emit CG profile for COFF object file" (details)
  47. Small fixes for "[LoopInfo] empty() -> isInnermost(), add isOutermost()" (details)
  48. Change LoopInfo::empty to isInnermost after D82895 (details)
  49. [libc++] Implement LWG1203 (details)
  50. Fix build due to renaming in LoopInfo. (details)
  51. [AArch64] Teach analyzeBranch to remove branch equivelent to fallthrough (details)
  52. [libc++] NFC: Collocate C++20 removed members of std::allocator (details)
  53. [libc++] NFC: Reindent the feature test macro generation script (details)
  54. [SLP]Fix coding style, NFC. (details)
  55. [InstCombine] Fix errno bug in pow expansion to sqrt (details)
  56. [InstCombine][NFC][tests] Add ninf base value case to pow-sqrt.ll (details)
  57. [trace] avoid using <regex> (details)
  58. [ORC][examples] Add missing library dependencies. (details)
  59. [NFC][docs] Fix link. (details)
  60. [IRSim] Adding IRSimilarityCandidate that contains a region of IRInstructionData. (details)
  61. [Clang] Fix a typo in implicit-int-float-conversion.c (details)
  62. [lld-macho] handle option -headerpad_max_install_names (details)
  63. [EHStreamer] Ensure CallSiteEntry::{BeginLabel,EndLabel} are non-null. NFC (details)
  64. Revert "Canonicalize declaration pointers when forming APValues." (details)
  65. [DWARFYAML][test] Simplify __debug_pubnames/types tests. NFC. (details)
  66. [NewPM] Pin tests with -debug-pass to legacy PM (details)
  67. Revert "[IRSim] Adding IRSimilarityCandidate that contains a region of IRInstructionData." (details)
  68. [test][NewPM] Fix update-scev.ll under NPM (details)
  69. [CostModel][X86] add CostModel for SK_Select(v8f64, v8i64, v16f32, v16i32, v32i16, v64i8) (details)
  70. [test][NewPM] Clean up ScalarEvolution tests to work under NPM (details)
  71. [lld-macho] In the context of relocs, s/target/referent/ for sections & symbols (details)
  72. [ThinLTO] Avoid temporaries when loading global decl attachment metadata (details)
  73. [lld-maco] fix build breakage (details)
  74. [Sanitizers] Fix test case that doesn't clean up after itself (details)
  75. [sanitizers] Remove the message queue with IPC_RMID after D82897 (details)
  76. [RISCV][ASAN] updated platform macros to simplify detection of RISCV64 platform (details)
  77. [Analyzer][WebKit] Use tri-state types for relevant predicates (details)
  78. [RISCV][ASAN] implementation of internal syscalls wrappers for riscv64 (details)
  79. [RISCV][ASAN] implementation of clone interceptor for riscv64 (details)
  80. [RISCV][ASAN] implementation for vfork interceptor for riscv64 (details)
  81. [RISCV][ASAN] implementation of ThreadSelf  for riscv64 (details)
  82. Add a dump() method on the pass manager for debugging purpose (NFC) (details)
  83. [MC] [Win64EH] Try to generate packed unwind info where possible (details)
  84. [InstCombine] Add parentheses in assert to silence GCC warning. NFC. (details)
  85. [CVP] Remove a redundant trailing semicolon, fixing GCC warnings. NFC. (details)
  86. [PowerPC] Implementation of 128-bit Binary Vector Mod and Sign Extend builtins (details)
Commit 703d3f25976c98bcf0e4717087c5a51b92c5f51a by gkm
[lld-macho] Make lld::getInteger() tolerate leading "0x"/"0X" when base is 16

ld64 is cool with leading `0x` for hex command-line args, and we should be also.

Reviewed By: #lld-macho, int3

Differential Revision: https://reviews.llvm.org/D88065
The file was modifiedlld/test/MachO/headerpad.s (diff)
The file was modifiedlld/Common/Args.cpp (diff)
Commit 4c23cf3ca0e07482b7ab7989b4e480e1cc0d6091 by mascasa
[sanitizer_common] Add debug print to sysmsg.c
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/Linux/sysmsg.c (diff)
Commit 723fea23079f9c85800e5cdc90a75414af182bfd by alexandre.ganea
Silence 'warning: unused variable' when compiling with Clang 10.0
The file was modifiedllvm/lib/CodeGen/PeepholeOptimizer.cpp (diff)
Commit 4dada8d617d81cd00e4028e09f7093f5b10a8a41 by llvm-dev
[DAG] Remove DAGTypeLegalizer::GenWidenVectorTruncStores (PR42046)

Just scalarize trunc stores - GenWidenVectorTruncStores does the same thing but is flawed (PR42046) and unused.

Differential Revision: https://reviews.llvm.org/D87708
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)
Commit b3147058dec7d42ae0284d6e6edf25eb762c8b89 by amy.kwan1
[PowerPC] Implement the 128-bit Vector Divide Extended Builtins in Clang/LLVM

This patch implements the 128-bit vector divide extended builtins in Clang/LLVM.
These builtins map to the vdivesq and vdiveuq instructions respectively.

Differential Revision: https://reviews.llvm.org/D87729
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/p10-vector-divide.ll (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedclang/lib/Headers/altivec.h (diff)
Commit 079757b551f3ab5218af7344a7ab3c79976ec478 by amy.kwan1
[PowerPC] Implement Vector String Isolate Builtins in Clang/LLVM

This patch implements the vector string isolate (predicate and non-predicate
versions) builtins. The predicate builtins are custom selected within PPCISelDAGToDAG.

Differential Revision: https://reviews.llvm.org/D87671
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def (diff)
The file was modifiedclang/lib/Headers/altivec.h (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/p10-string-ops.ll (diff)
Commit d7336ad5ff985dabbe26a728a5789c33b9167286 by ishizaki
[mlir] NFC: fix trivial typos under include directory

Reviewed By: mravishankar, jpienaar

Differential Revision: https://reviews.llvm.org/D88040
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h (diff)
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLOps.td (diff)
The file was modifiedmlir/include/mlir/Interfaces/SideEffectInterfaces.td (diff)
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td (diff)
The file was modifiedmlir/include/mlir/Pass/AnalysisManager.h (diff)
The file was modifiedmlir/include/mlir/Reducer/ReductionNode.h (diff)
The file was modifiedmlir/include/mlir/Analysis/Presburger/Simplex.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h (diff)
The file was modifiedmlir/include/mlir/Reducer/Tester.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h (diff)
The file was modifiedmlir/include/mlir-c/IR.h (diff)
The file was modifiedmlir/include/mlir-c/StandardTypes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVAttributes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td (diff)
The file was modifiedmlir/include/mlir/IR/StorageUniquerSupport.h (diff)
The file was modifiedmlir/include/mlir-c/StandardAttributes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
The file was modifiedmlir/include/mlir/Reducer/Passes/OpReducer.h (diff)
The file was modifiedmlir/include/mlir/Reducer/ReductionTreeUtils.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td (diff)
The file was modifiedmlir/include/mlir/IR/OpDefinition.h (diff)
Commit 2a6db92ca97da946307b559e63c6ac75caf4bbd6 by jpienaar
[mlir][ods] Make OpBuilder and OperationState optional

The OpBuilder is required to start with OpBuilder and OperationState, so remove
the need for the user to specify it. To make it simpler to update callers,
retain the legacy behavior for now and skip injecting OpBuilder/OperationState
when params start with OpBuilder.

Related to bug 47442.

Differential Revision: https://reviews.llvm.org/D88050
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp (diff)
The file was modifiedmlir/docs/OpDefinitions.md (diff)
The file was modifiedmlir/test/mlir-tblgen/op-decl.td (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td (diff)
Commit c3c08bfdfd6244e0429753ee56df39c90187d772 by ecaldas
[SyntaxTree] Test the List API

Differential Revision: https://reviews.llvm.org/D87839
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp (diff)
Commit 625761825620f19a44c7a1482ce05d678a1b0deb by sam.mccall
[ASTMatchers] Avoid recursion in ancestor matching to save stack space.

A recent change increased the stack size of memoizedMatchesAncestorOfRecursively
leading to stack overflows on real code involving large fold expressions.
It's not totally unreasonable to choke on very deep ASTs, but as common
infrastructure it's be nice if ASTMatchFinder is more robust.
(It already uses data recursion for the regular "downward" traversal.)

Differential Revision: https://reviews.llvm.org/D86964
The file was modifiedclang/lib/ASTMatchers/ASTMatchFinder.cpp (diff)
Commit d1e0f9f3cf13e071d788149bde810c46cd14c74b by mtrofin
[NFC][regalloc] Simplify/conform to style guide indvars in Greedy

Differential Revision: https://reviews.llvm.org/D88055
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp (diff)
Commit 848d66fafd2ee4c15292fa5dd25ca752a3f65537 by paul
Version 0.5 of the new "TableGen Backend Developer's Guide."
Files modified to take comments into account.
MLIR documentation updated for new TableGen documentation files.
The file was addedllvm/docs/TableGen/BackGuide.rst
The file was modifiedllvm/docs/TableGen/ProgRef.rst (diff)
The file was modifiedllvm/docs/TableGen/BackEnds.rst (diff)
The file was addedllvm/lib/TableGen/TableGenBackendSkeleton.cpp
The file was modifiedllvm/lib/TableGen/CMakeLists.txt (diff)
The file was modifiedmlir/docs/Tutorials/QuickstartRewrites.md (diff)
The file was modifiedmlir/docs/OpDefinitions.md (diff)
Commit 8a64689e264ce039e4fb0a09c3e136a1c8451838 by Jan Korous
[Analyzer][WebKit] UncountedLocalVarsChecker

Differential Review: https://reviews.llvm.org/D83259
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt (diff)
The file was modifiedclang/docs/analyzer/checkers.rst (diff)
The file was addedclang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLocalVarsChecker.cpp
The file was addedclang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
Commit a75f75415aaeee4159c1771d946bb4ae957d7a74 by llvmgnsyncbot
[gn build] Port 848d66fafd2
The file was modifiedllvm/utils/gn/secondary/llvm/lib/TableGen/BUILD.gn (diff)
Commit 5ae94047bff1e2c92f9507443bf97ff39ee8243b by llvmgnsyncbot
[gn build] Port 8a64689e264
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn (diff)
Commit 16ca711803300bd966acf8759876a1ccd478c616 by hokein.wu
[clang] Fix a typo-correction crash

We leave a dangling TypoExpr when typo-correction is performed
successfully in `checkArgsForPlaceholders`, which leads a crash in the
later TypoCorrection.

This code was added in https://github.com/llvm/llvm-project/commit/1586782767938df3a20f7abc4d8335c48b100bc4,
and it didn't seem to have enough test coverage.
The fix is to remove this part, and no failuer tests.

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D87815
The file was modifiedclang/test/SemaCXX/typo-correction-crash.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
Commit a6f8aeb51c731ce01b995725cbda3f9be9059ab0 by hubert.reinterpretcast
[test][MC] Rehabilitate llvm/test/MC/COFF/bigobj.py

The subject test was not actually running. This patch adds the
relevant suffix to the list of lit case filename extensions for the
enclosing directory.

Minor adjustments are also made to deal with bit rot.

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D87122
The file was modifiedllvm/test/MC/COFF/lit.local.cfg (diff)
The file was modifiedllvm/test/MC/COFF/bigobj.py (diff)
Commit b0f58aa116a1ac2c2fa6b1667017bb29b3418411 by hubert.reinterpretcast
[NFC] Replace tabs with spaces in PPCInstrPrefix.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
Commit 6801950192ff4f6d60c822fc721354f34e609e7a by hubert.reinterpretcast
[InstCombine] For pow(x, +/-0.5), stop falling into pow(x, 1.5), etc. case

The current code for handling pow(x, y) where y is an integer plus 0.5
is not explicitly guarded against attempting to transform the case where
abs(y) is exactly 0.5.

The latter case is meant to be handled by `replacePowWithSqrt`. Indeed,
if the pow(x, integer+0.5) case proceeds past a certain point, it will
hit an assertion by attempting to form pow(x, 0) using `getPow`.

This patch adds an explicit check to prevent attempting the
pow(x, integer+0.5) transformation on pow(x, +/-0.5) as suggested during
the review of D87877. This has the effect of retaining the shrinking of
`pow` to `powf` when the `sqrt` libcall cannot be formed.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D88066
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll (diff)
Commit 8457ae0d9359590b2db1e8e090531197be4d62c6 by Jonas Devlieghere
[lldb] Skip test_common_completion_process_pid_and_name with reproducers

This test launches a subprocess which will have a different PID during
capture and replay.
The file was modifiedlldb/test/API/functionalities/completion/TestCompletion.py (diff)
Commit 783dc7dc7ed7487d0782c2feb8854df949b98e69 by Jonas Devlieghere
[lldb] Skip TestMiniDumpUUID with reproducers

The modules not getting orphaned is wreaking havoc when the UUIDs match
between tests.
The file was modifiedlldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py (diff)
Commit a5141b83f1f1b94886d17c9091f09d4c63568dd2 by aeubanks
[LoopInfo][NewPM] Fix tests in Analysis/LoopInfo under NPM
The file was modifiedllvm/test/Analysis/LoopInfo/annotated-parallel-simple.ll (diff)
The file was modifiedllvm/test/Analysis/LoopInfo/annotated-parallel-complex.ll (diff)
The file was modifiedllvm/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll (diff)
Commit e16d10b7535ab2224e5bdc533860b7eadf596164 by aeubanks
[test][NewPM] Pin do-nothing-intrinsic.ll to legacy PM

It tests CallGraph infra around the legacy PM which isn't relevant in NPM.
The file was modifiedllvm/test/Analysis/CallGraph/do-nothing-intrinsic.ll (diff)
Commit 36ea18b06430e0a1094f9b0994e4abb5cc2175c9 by lebedev.ri
[NFC][CVP] Add tests for srem with potentially different sigdness domains
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll (diff)
Commit 4eeeb356fc41babf46797b062f74f978b818622b by lebedev.ri
[CVP] Enhance SRem -> URem fold to work not just on non-negative operands

This is a continuation of 8d487668d09fb0e4e54f36207f07c1480ffabbfd,
the logic is pretty much identical for SRem:

Name: pos pos
Pre: C0 >= 0 && C1 >= 0
%r = srem i8 C0, C1
  =>
%r = urem i8 C0, C1

Name: pos neg
Pre: C0 >= 0 && C1 <= 0
%r = srem i8 C0, C1
  =>
%r = urem i8 C0, -C1

Name: neg pos
Pre: C0 <= 0 && C1 >= 0
%r = srem i8 C0, C1
  =>
%t0 = urem i8 -C0, C1
%r = sub i8 0, %t0

Name: neg neg
Pre: C0 <= 0 && C1 <= 0
%r = srem i8 C0, C1
  =>
%t0 = urem i8 -C0, -C1
%r = sub i8 0, %t0

https://rise4fun.com/Alive/Vd6

Now, this new logic does not result in any new catches
as of vanilla llvm test-suite + RawSpeed.
but it should be virtually compile-time free,
and it may be important to be consistent in their handling,
because if we had a pair of sdiv-srem, and only converted one of them,
-divrempairs will no longer see them as a pair,
and thus not "merge" them.
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll (diff)
Commit b38d897e802664034c7e6e4654328256ed370a61 by lebedev.ri
[ConstantRange] binaryXor(): special-case binary complement case - the result is precise

Use the fact that `~X` is equivalent to `-1 - X`, which gives us
fully-precise answer, and we only need to special-handle the wrapped case.

This fires ~16k times for vanilla llvm test-suite + RawSpeed.
The file was modifiedllvm/lib/IR/ConstantRange.cpp (diff)
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp (diff)
The file was modifiedllvm/include/llvm/IR/ConstantRange.h (diff)
Commit 2ed9c4c70bbb36fa12d48a73abc2d89c0af80060 by lebedev.ri
[ConstantRange] Introduce getActiveBits() method

Much like APInt::getActiveBits(), computes how many bits are needed
to be able to represent every value in this constant range,
treating the values as unsigned.
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp (diff)
The file was modifiedllvm/include/llvm/IR/ConstantRange.h (diff)
The file was modifiedllvm/lib/IR/ConstantRange.cpp (diff)
Commit ba5afe5588ded61052c8727dbcb0407b5de4410c by lebedev.ri
[NFC][CVP] processUDivOrURem(): refactor to use ConstantRange::getActiveBits()

As an exhaustive test shows, this logic is fully identical to the old
implementation, with exception of the case where both of the operands
had empty ranges:

```
TEST_F(ConstantRangeTest, CVP_UDiv) {
  unsigned Bits = 4;
  EnumerateConstantRanges(Bits, [&](const ConstantRange &CR0) {
    if(CR0.isEmptySet())
      return;
    EnumerateConstantRanges(Bits, [&](const ConstantRange &CR1) {
      if(CR0.isEmptySet())
        return;

      unsigned MaxActiveBits = 0;
      for (const ConstantRange &CR : {CR0, CR1})
        MaxActiveBits = std::max(MaxActiveBits, CR.getActiveBits());

      ConstantRange OperandRange(Bits, /*isFullSet=*/false);
      for (const ConstantRange &CR : {CR0, CR1})
        OperandRange = OperandRange.unionWith(CR);
      unsigned NewWidth = OperandRange.getUnsignedMax().getActiveBits();

      EXPECT_EQ(MaxActiveBits, NewWidth) << CR0 << " " << CR1;
    });
  });
}
```
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
Commit b85395f309890bac5f2d3296ce08dc46c24ef77f by lebedev.ri
[NFC][APInt] Refactor getMinSignedBits() in terms of getNumSignBits()

This is fully identical to the old implementation, just easier to read.
The file was modifiedllvm/include/llvm/ADT/APInt.h (diff)
Commit 7465da2077c2b8def7440094e15ac1199226bc25 by lebedev.ri
[ConstantRange] Introduce getMinSignedBits() method

Similar to the ConstantRange::getActiveBits(), and to similarly-named
methods in APInt, returns the bitwidth needed to represent
the given signed constant range
The file was modifiedllvm/lib/IR/ConstantRange.cpp (diff)
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp (diff)
The file was modifiedllvm/include/llvm/IR/ConstantRange.h (diff)
Commit 4977eadee56f81377049fb8763350a66cfd2d078 by lebedev.ri
[NFC][CVP] Give a better name STATISTIC() counting udiv i16 -> udiv i8 xforms
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
Commit cb10d5d714e9ae83cfd392dd127e13c51f4d299d by lebedev.ri
[NFC][CVP] Add tests for SDiv/SRem narrowing
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/sdiv.ll (diff)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll (diff)
Commit b289dc530632613edb3eb067895c1981cb77ccd0 by lebedev.ri
[CVP] Narrow SDiv/SRem to the smallest power-of-2 that's sufficient to contain its operands

This is practically identical to what we already do for UDiv/URem:
  https://rise4fun.com/Alive/04K

Name: narrow udiv
Pre: C0 u<= 255 && C1 u<= 255
%r = udiv i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = udiv i8 %t0, %t1
%r = zext i8 %t2 to i16

Name: narrow exact udiv
Pre: C0 u<= 255 && C1 u<= 255
%r = udiv exact i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = udiv exact i8 %t0, %t1
%r = zext i8 %t2 to i16

Name: narrow urem
Pre: C0 u<= 255 && C1 u<= 255
%r = urem i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = urem i8 %t0, %t1
%r = zext i8 %t2 to i16

... only here we need to look for 'min signed bits', not 'active bits',
and there's an UB to be aware of:
  https://rise4fun.com/Alive/KG86
  https://rise4fun.com/Alive/LwR

Name: narrow sdiv
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128
%r = sdiv i16 C0, C1
  =>
%t0 = trunc i16 C0 to i9
%t1 = trunc i16 C1 to i9
%t2 = sdiv i9 %t0, %t1
%r = sext i9 %t2 to i16

Name: narrow exact sdiv
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128
%r = sdiv exact i16 C0, C1
  =>
%t0 = trunc i16 C0 to i9
%t1 = trunc i16 C1 to i9
%t2 = sdiv exact i9 %t0, %t1
%r = sext i9 %t2 to i16

Name: narrow srem
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128
%r = srem i16 C0, C1
  =>
%t0 = trunc i16 C0 to i9
%t1 = trunc i16 C1 to i9
%t2 = srem i9 %t0, %t1
%r = sext i9 %t2 to i16


Name: narrow sdiv
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128 && !(C0 == -128 && C1 == -1)
%r = sdiv i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = sdiv i8 %t0, %t1
%r = sext i8 %t2 to i16

Name: narrow exact sdiv
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128 && !(C0 == -128 && C1 == -1)
%r = sdiv exact i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = sdiv exact i8 %t0, %t1
%r = sext i8 %t2 to i16

Name: narrow srem
Pre: C0 <= 127 && C1 <= 127 && C0 >= -128 && C1 >= -128 && !(C0 == -128 && C1 == -1)
%r = srem i16 C0, C1
  =>
%t0 = trunc i16 C0 to i8
%t1 = trunc i16 C1 to i8
%t2 = srem i8 %t0, %t1
%r = sext i8 %t2 to i16


The ConstantRangeTest.losslessSignedTruncationSignext test sanity-checks
the logic, that we can losslessly truncate ConstantRange to
`getMinSignedBits()` and signext it back, and it will be identical
to the original CR.

On vanilla llvm test-suite + RawSpeed, this fires 1262 times,
while the same fold for UDiv/URem only fires 384 times. Sic!

Additionally, this causes +606.18% (+1079) extra cases of
aggressive-instcombine.NumDAGsReduced, and +473.14% (+1145)
of aggressive-instcombine.NumInstrsReduced folds.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/sdiv.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll (diff)
Commit fb1de7ed921c3c1531c0cb28b9603af22ecd0529 by joker.eph
Implement a new kind of Pass: dynamic pass pipeline

Instead of performing a transformation, such pass yields a new pass pipeline
to run on the currently visited operation.
This feature can be used for example to implement a sub-pipeline that
would run only on an operation with specific attributes. Another example
would be to compute a cost model and dynamic schedule a pipeline based
on the result of this analysis.

Discussion: https://llvm.discourse.group/t/rfc-dynamic-pass-pipeline/1637

Recommit after fixing an ASAN issue: the callback lambda needs to be
allocated to a temporary to have its lifetime extended to the end of the
current block instead of just the current call expression.

Reviewed By: silvas

Differential Revision: https://reviews.llvm.org/D86392
The file was modifiedmlir/include/mlir/Pass/PassManager.h (diff)
The file was addedmlir/test/Pass/dynamic-pipeline-nested.mlir
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt (diff)
The file was modifiedmlir/include/mlir/Pass/Pass.h (diff)
The file was addedmlir/test/Pass/dynamic-pipeline.mlir
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
The file was addedmlir/test/Pass/dynamic-pipeline-fail-on-parent.mlir
The file was addedmlir/test/lib/Transforms/TestDynamicPipeline.cpp
The file was modifiedmlir/lib/Pass/Pass.cpp (diff)
Commit ef7d22a98683ce98b6a2c4d0818d2d9978d42861 by Raphael Isemann
Revert "[lldb] XFAIL TestMemoryHistory on Linux"

This reverts commit 7518006d75accd21325747430d6bced66b2c5ada.

This test apparently works on the Swift CI ubuntu bot, so it shouldn't be
XFAIL'd on Linux.
The file was modifiedlldb/test/API/functionalities/asan/TestMemoryHistory.py (diff)
Commit 2bc589bbb8d7d00f5939e9cd33cbe57e47d61f7e by llvm-project
[flang][msvc] Add explicit function template argument to applyFunction. NFC.

Msvc has difficulties deducing the template argument here. The error message is:
```
basic-parsers.h(790,12): error C2672: 'applyFunction': no matching overloaded function found
```
Explicitly pass the first template argument to help it.

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

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D87961
The file was modifiedflang/lib/Parser/basic-parsers.h (diff)
Commit 97ca41e1ddfbb6812e2042dcbd2db6e0e7d0bc33 by llvm-project
[flang][msvc] Add explicit function template argument to applyLamda. NFC.

Like in D87961, msvc has difficulties deducing the template argument. The error message is:
```
expr-parsers.cpp(383): error C2672: 'applyLambda': no matching overloaded function found
```
Explicitly pass the first template argument to help it.

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

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D88001
The file was modifiedflang/lib/Parser/expr-parsers.cpp (diff)
Commit 62afc3129dc28638d950c17117347b4e001a613d by llvm-project
[flang][msvc] Explicitly reference "this" inside closure. NFC.

The Microsoft compiler seems to have difficulties to decide between a const/non-const method of a captured object context in a closure. The error message is:
```
symbol.cpp(261): error C2668: 'Fortran::semantics::Symbol::detailsIf': ambiguous call to overloaded function
symbol.h(535): note: could be 'const D *Fortran::semantics::Symbol::detailsIf<Fortran::semantics::DerivedTypeDetails>(void) const'
symbol.h(534): note: or       'D *Fortran::semantics::Symbol::detailsIf<Fortran::semantics::DerivedTypeDetails>(void)'
symbol.cpp(261): note: while trying to match the argument list '()'
```
Explicitly using the this-pointer resolves this problem.

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

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D88052
The file was modifiedflang/lib/Semantics/symbol.cpp (diff)
Commit b89059a31347dd09b55a96b99b3dbe38d7749908 by tmsriram
Revert "The wrong placement of add pass with optimizations led to -funique-internal-linkage-names being disabled."

This reverts commit 6950db36d33d85d18e3241ab6c87494c05ebe0fb.
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was modifiedclang/test/CodeGen/unique-internal-linkage-names.cpp (diff)
Commit 21f5f509c8a066a9647a3f5b86f6931db40b7fc7 by paul
Two patches to fix the broken build.
One to fix a C++ compiler warning.
One to allow Sphinx to find a new document.
The file was modifiedllvm/docs/TableGen/index.rst (diff)
The file was modifiedllvm/lib/TableGen/TableGenBackendSkeleton.cpp (diff)
Commit f21212215031e5871c389999daf3b06b1a6250fd by i
[lldb][test] Remove accidental import pdb in 783dc7dc7ed7487d0782c2feb8854df949b98e69
The file was modifiedlldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py (diff)
Commit c45596147938191b0ffde91ee8d506e315bf4c8f by daltenty
[compiler-rt][AIX] Add CMake support for 32-bit Power builds

This patch enables support for building compiler-rt builtins for 32-bit
Power arch on AIX. For now, we leave out the specialized ppc builtin
implementations for 128-bit long double and friends since those will
need some special handling for AIX.

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D87383
The file was modifiedcompiler-rt/cmake/builtin-config-ix.cmake (diff)
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTUtils.cmake (diff)
The file was modifiedcompiler-rt/cmake/base-config-ix.cmake (diff)
The file was modifiedcompiler-rt/lib/builtins/CMakeLists.txt (diff)
Commit cf112382ddd0d717edf0b8a3e5b061de925258e9 by mtrofin
[ThinLTO] Option to bypass function importing.

This completes the circle, complementing -lto-embed-bitcode
(specifically, post-merge-pre-opt). Using -thinlto-assume-merged skips
function importing. The index file is still needed for the other data it
contains.

Differential Revision: https://reviews.llvm.org/D87949
The file was modifiedllvm/lib/LTO/LTOBackend.cpp (diff)
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp (diff)
The file was modifiedclang/test/CodeGen/thinlto_embed_bitcode.ll (diff)
The file was modifiedclang/include/clang/CodeGen/BackendUtil.h (diff)
The file was modifiedllvm/include/llvm/LTO/LTOBackend.h (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
Commit 4edb3d3646c46f15ca93bf19ed96a9169143ed6d by dancgr
[AArch64] Avoid pairing loads with same result reg

When pairing ldr instructions to an ldp instruction, we cannot pair two ldr
destination registers where one is a sub or super register of the other.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D86906
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp (diff)
The file was addedllvm/test/CodeGen/AArch64/aarch64-ldst-subsuperReg-no-ldp.mir
Commit 89c1e35f3c5060c23f9eed409f89c2c9908b87ed by sdi1600105
[LoopInfo] empty() -> isInnermost(), add isOutermost()

Differential Revision: https://reviews.llvm.org/D82895
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopLoadElimination.cpp (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopDistribute.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopPeel.cpp (diff)
The file was modifiedllvm/lib/Analysis/LoopPass.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
The file was modifiedllvm/lib/Analysis/LoopCacheAnalysis.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/LoopVersioning.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/LoopInfoImpl.h (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
The file was modifiedllvm/lib/Analysis/LoopAccessAnalysis.cpp (diff)
The file was modifiedllvm/lib/CodeGen/HardwareLoops.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopFuse.cpp (diff)
The file was modifiedllvm/lib/Analysis/LoopInfo.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/LoopInfo.h (diff)
The file was modifiedllvm/lib/Analysis/LoopNestAnalysis.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp (diff)
Commit 90242caca2074dab5a9b76e5bc36d9fafd2179a7 by rnk
Revert "[CodeGen] emit CG profile for COFF object file"

This reverts commit 91aed9bf975f1e4346cc8f4bdefc98436386ced2, it is
causing link errors.
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h (diff)
The file was modifiedllvm/lib/Target/TargetLoweringObjectFile.cpp (diff)
The file was removedllvm/test/MC/COFF/cgprofile.ll
The file was modifiedllvm/include/llvm/Target/TargetLoweringObjectFile.h (diff)
Commit a7873e5abc65125087f2ce7ab3a720a113d8ffa5 by sdi1600105
Small fixes for "[LoopInfo] empty() -> isInnermost(), add isOutermost()"
The file was modifiedllvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp (diff)
Commit 49f2744931762323dfa5ef96e1baa12bb79d5b9a by i
Change LoopInfo::empty to isInnermost after D82895
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp (diff)
Commit fdc41e11f9687a50c97e2a59663bf2d541ff5489 by Louis Dionne
[libc++] Implement LWG1203

Libc++ had an issue where nonsensical code like

  decltype(std::stringstream{} << std::vector<int>{});

would compile, as long as you kept the expression inside decltype in
an unevaluated operand. This turned out to be that we didn't implement
LWG1203, which clarifies what we should do in that case.

rdar://58769296
The file was modifiedlibcxx/include/istream (diff)
The file was addedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/not_istreamable.verify.cpp
The file was addedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/not_ostreamable.verify.cpp
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
The file was modifiedlibcxx/include/ostream (diff)
The file was removedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp
The file was addedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/rvalue.pass.cpp
The file was modifiedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/rvalue.pass.cpp (diff)
Commit d4e3e1e548793c6686e19f8ba50bf62f3fde7545 by michael.hliao
Fix build due to renaming in LoopInfo.
The file was modifiedllvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (diff)
Commit e1a3271ebb8756150fb78824b65fe0a752f6ec3d by listmail
[AArch64] Teach analyzeBranch to remove branch equivelent to fallthrough

The motivation here is that MachineBlockPlacement relies on analyzeBranch to remove branches to fallthrough blocks when the branch is not fully analyzeable. With the introduction of the FAULTING_OP psuedo for implicit null checking (see D87861), this case becomes important. Note that it's hard to otherwise exercise this path as BranchFolding handle's any fully analyzeable branch sequence without using this interface.

p.s. For anyone who saw my comment in the original review, what I thought was an issue in BranchFolding originally turned out to simply be a bug in my patch. (Now fixed.)

Differential Revision: https://reviews.llvm.org/D88035
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/implicit-null-check.ll (diff)
Commit 2404ed02025c210c707a856f69604ef20083dcbb by Louis Dionne
[libc++] NFC: Collocate C++20 removed members of std::allocator
The file was modifiedlibcxx/include/memory (diff)
Commit 7656dd33d9326df0b86f08676474dbf8055866b8 by Louis Dionne
[libc++] NFC: Reindent the feature test macro generation script

Each feature-test macro is now a clear block indentation-wise.
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py (diff)
Commit d6ac649ccda289ecc2d2c0cb51892d57e8ec328c by a.bataev
[SLP]Fix coding style, NFC.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
Commit 32c9991dab5cb1454959561c77f9d0089d981429 by hubert.reinterpretcast
[InstCombine] Fix errno bug in pow expansion to sqrt

A conversion from `pow` to `sqrt` shall not call an `errno`-setting
`sqrt` with -//infinity//: the `sqrt` will set `EDOM` where the `pow`
call need not.

This patch avoids the erroneous (pun not intended) transformation by
applying the restrictions discussed in the thread for
https://lists.llvm.org/pipermail/llvm-dev/2020-September/145051.html.

The existing tests are updated (depending on emphasis in the checks for
library calls, avoidance of overlap, and overall coverage):
  - to add `ninf`, retaining the intended library call,
  - to use the intrinsic, retaining the use of `select`, or
  - to expect the replacement to not occur.

The following is tested:
  - The pow intrinsic folds to a `select` instruction to
    handle -//infinity//.
  - The pow library call folds, with `ninf`, to `sqrt` without the
    `select` instruction associated with handling -//infinity//.
  - The pow library call does not fold to `sqrt` without `ninf`.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D87877
The file was modifiedllvm/test/Transforms/InstCombine/pow-sqrt.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/pow-1.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/win-math.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)
Commit a60852e9d692e3c38d9b58b7ec1679e07af2b8f7 by hubert.reinterpretcast
[InstCombine][NFC][tests] Add ninf base value case to pow-sqrt.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow-sqrt.ll (diff)
Commit ed621e76a9889e25a9cbed47e0b96a7a6fdbdb80 by walter erquinigo
[trace] avoid using <regex>

Easy fix based on the feedback by maskray on
https://reviews.llvm.org/D85705.
The file was modifiedlldb/source/Target/TraceSettingsParser.cpp (diff)
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.cpp (diff)
Commit 71be8809d01f0199032242b9f11d6a7a471183fd by Lang Hames
[ORC][examples] Add missing library dependencies.
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/CMakeLists.txt (diff)
Commit af429cd89bf83bbbef295ded85e66f03776ec015 by joker.eph
[NFC][docs] Fix link.

The rendered html was (no hyperlink was generated):

(see Getting Started <GettingStarted.html#git-pre-push-hook>)

Now, it is (with proper hyperlink):

(see Git pre-push hook)

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D88116
The file was modifiedllvm/docs/Phabricator.rst (diff)
The file was modifiedllvm/docs/GettingStarted.rst (diff)
Commit 4944bb190fed8861d4d043eaf45e3c1e12aa2dc5 by andrew.litteken
[IRSim] Adding IRSimilarityCandidate that contains a region of IRInstructionData.

The IRSimilarityCandidate is a container to hold a region of
IRInstructions and offer interfaces for the starting instruction, ending
instruction, parent function, length.  It also assigns a global value
number for each unique instance of a value in the region.

It also contains an interface to compare two IRSimilarity as to whether
they have the same sequence of similar instructions.

Tests for whether the instructions are similar are found in
unittests/Analysis/IRSimilarityIdentifierTest.cpp.

Differential Revision: https://reviews.llvm.org/D86970
The file was modifiedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h (diff)
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp (diff)
The file was modifiedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp (diff)
Commit 10092291d7a770fee9eec8d8c7f60aeca9a8d7fb by noreply
[Clang] Fix a typo in implicit-int-float-conversion.c
The file was modifiedclang/test/Sema/implicit-int-float-conversion.c (diff)
Commit 145ce86dba6e13d5c45fa8b1256f310bb6d48598 by gkm
[lld-macho] handle option -headerpad_max_install_names

Differential Revision: https://reviews.llvm.org/D88064
The file was modifiedlld/MachO/Writer.cpp (diff)
The file was modifiedlld/MachO/Config.h (diff)
The file was modifiedlld/MachO/Options.td (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was modifiedlld/test/MachO/headerpad.s (diff)
Commit bee68b2956d93b190d9065c9f8640593cec9cf90 by i
[EHStreamer] Ensure CallSiteEntry::{BeginLabel,EndLabel} are non-null. NFC

... to simplify the code a bit.

Reviewed By: rahmanl

Differential Revision: https://reviews.llvm.org/D87999
The file was modifiedllvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp (diff)
Commit 15d94a7d0f8f0d6b3b5308fff51b286957e45650 by leonardchan
Revert "Canonicalize declaration pointers when forming APValues."

This reverts commit 905b9ca26c94fa86339451a528cedde5004fc1bb.

Reverting because this strips `weak` attributes off function
declarations, leading to the linker error we see at
https://ci.chromium.org/p/fuchsia/builders/ci/clang_toolchain.fuchsia-arm64-debug-subbuild/b8868932035091473008.

See https://reviews.llvm.org/rG905b9ca26c94 for reproducer details.
The file was modifiedclang/test/OpenMP/ordered_messages.cpp (diff)
The file was modifiedclang/lib/AST/Decl.cpp (diff)
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp (diff)
The file was modifiedclang/include/clang/AST/APValue.h (diff)
The file was modifiedclang/lib/AST/ExprConstant.cpp (diff)
The file was modifiedclang/lib/AST/APValue.cpp (diff)
The file was modifiedclang/lib/AST/DeclBase.cpp (diff)
Commit 64435a427a01a61574a59824ea0a4949a80b11e6 by Xing
[DWARFYAML][test] Simplify __debug_pubnames/types tests. NFC.

This patch stripped unneeded sections from the test case.

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D88073
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml (diff)
Commit 61ac58e10ae1fbb18416cac20119725803b9ad6f by aeubanks
[NewPM] Pin tests with -debug-pass to legacy PM

-debug-pass is a legacy PM only option.

Some tests checks that the pass returned that it made a change,
which is not relevant to the NPM, since passes return PreservedAnalyses.

Some tests check that passes are freed at the proper time, which is also
not relevant to the NPM.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87945
The file was modifiedllvm/test/Analysis/BasicAA/phi-values-usage.ll (diff)
The file was modifiedllvm/test/Transforms/GVN/preserve-analysis.ll (diff)
The file was modifiedllvm/test/Analysis/alias-analysis-uses.ll (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/remove-dead-call.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/early_constfold_changes_IR.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/preserve-analysis.ll (diff)
The file was modifiedllvm/test/Transforms/Coroutines/smoketest.ll (diff)
The file was modifiedllvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll (diff)
Commit 88bc59c3001b3b20f55994f9fa9dbaf45991df1d by andrew.litteken
Revert "[IRSim] Adding IRSimilarityCandidate that contains a region of IRInstructionData."

This reverts commit 4944bb190fed8861d4d043eaf45e3c1e12aa2dc5.
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp (diff)
The file was modifiedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h (diff)
Commit d6746ecb73c3892bd9a353c3b1b3facbd285c450 by aeubanks
[test][NewPM] Fix update-scev.ll under NPM
The file was modifiedllvm/test/Transforms/LICM/update-scev.ll (diff)
Commit ec24e505536fe50636fcbc759b821aca6295aa45 by bing1.yu
[CostModel][X86] add CostModel for SK_Select(v8f64, v8i64, v16f32, v16i32, v32i16, v64i8)

add CostModel for SK_Select(v8f64, v8i64, v16f32, v16i32, v32i16, v64i8)

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D87884
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-select.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll (diff)
Commit 2d0de5f9a4c58e2fcdd8f00dabca505ba47abbd0 by aeubanks
[test][NewPM] Clean up ScalarEvolution tests to work under NPM
The file was modifiedllvm/test/Analysis/ScalarEvolution/trivial-phis.ll (diff)
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff)
Commit 1a3ef0417c7ca9498895186c96da452f6e2f15a0 by gkm
[lld-macho] In the context of relocs, s/target/referent/ for sections & symbols

The word "target" is overloaded, so lighten its load by using another word to denote the symbol or section to which a reloc points. While more stilted than "target", "referent" is rather less pompous than "designatum" or "denotatum". :P

Along the way, make a few neighboring variable names more descriptive.

Reviewed By: #lld-macho, int3

Differential Revision: https://reviews.llvm.org/D87584
The file was modifiedlld/MachO/InputFiles.cpp (diff)
The file was modifiedlld/MachO/InputSection.h (diff)
The file was modifiedlld/MachO/InputSection.cpp (diff)
Commit ab1b4810b55279bcf6fdd87be74a403440be3991 by tejohnson
[ThinLTO] Avoid temporaries when loading global decl attachment metadata

When performing ThinLTO importing, the metadata loader attempts to lazy
load, by building an index. However, module level global decl attachment
metadata was being parsed early while building the index, since the
associated (module level) global values aren't materialized on demand.
This results in the creation of forward reference temporary metadatas,
which are expensive.

Normally, these module level global values don't have much attached
metadata. However, in the case of -fwhole-program-vtables (e.g. for
whole program devirtualization), the vtables may have many attached type
metadatas. This was resulting in very slow performance when performing
ThinLTO importing with the default lazy loading.

This patch restructures the handling of these global decl attachment
records, delaying their parsing until after the lazy loading index has
been built. Then the parser can use the interface that loads from the
index, which resolves forward references immediately instead of creating
expensive temporaries.

For one ThinLTO backend that imports from modules containing huge
numbers of vtables and associated types, I measured the following
compile times for the metadata materialization during function
importing, rounded to nearest second:

No -fwhole-program-vtables:
  Lazy loading on (head):  1s
  Lazy loading off (head): 3s
  Lazy loading on (patch): 1s

With -fwhole-program-vtables:
  Lazy loading on (head):  440s
  Lazy loading off (head): 4s
  Lazy loading on (patch): 2s

Differential Revision: https://reviews.llvm.org/D87970
The file was modifiedllvm/lib/Bitcode/Reader/MetadataLoader.cpp (diff)
The file was modifiedllvm/test/ThinLTO/X86/devirt2.ll (diff)
Commit ab903560a466194d4350600ad946934eb72f1a14 by gkm
[lld-maco] fix build breakage
The file was modifiedlld/MachO/Writer.cpp (diff)
Commit f1746be66673bc2b59f7aaad1c6a7938ed98194b by nemanja.i.ibm
[Sanitizers] Fix test case that doesn't clean up after itself

Commit https://reviews.llvm.org/rG144e57fc9535 added this test
case that creates message queues but does not remove them. The
message queues subsequently build up on the machine until the
system wide limit is reached. This has caused failures for a
number of bots running on a couple of big PPC machines.

This patch just adds the missing cleanup.
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/Linux/sysmsg.c (diff)
Commit cabe31f415054b45b4fa6c17e4ddf09cc39bf4e8 by i
[sanitizers] Remove the message queue with IPC_RMID after D82897
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/Linux/sysmsg.c (diff)
Commit dfd295431a50aa8bccc0b89da9acf3c48b3d4b29 by Vitaly Buka
[RISCV][ASAN] updated platform macros to simplify detection of RISCV64 platform

[2/11] patch series to port ASAN for riscv64

Depends On D87997

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D87998
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h (diff)
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp (diff)
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h (diff)
Commit 47e6851423fd32f0685a643236ad946e23ab14ff by Jan Korous
[Analyzer][WebKit] Use tri-state types for relevant predicates

Some of the predicates can't always be decided - for example when a type
definition isn't available. At the same time it's necessary to let
client code decide what to do about such cases - specifically we can't
just use true or false values as there are callees with
conflicting strategies how to handle this.

This is a speculative fix for PR47276.

Differential Revision: https://reviews.llvm.org/D88133
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLocalVarsChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/UncountedCallArgsChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/WebKit/RefCntblBaseVirtualDtorChecker.cpp (diff)
Commit 6c22d00d7896bd7aaad567aa98016c26e78d8dcf by Vitaly Buka
[RISCV][ASAN] implementation of internal syscalls wrappers for riscv64

implements glibc-like wrappers over Linux syscalls.

[3/11] patch series to port ASAN for riscv64

Depends On D87998

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D87572
The file was addedcompiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_riscv64.inc
The file was modifiedcompiler-rt/lib/sanitizer_common/CMakeLists.txt (diff)
Commit 96034cb3d1d6d0e4ebe6848ef93707943aeca5dc by Vitaly Buka
[RISCV][ASAN] implementation of clone interceptor for riscv64

[4/11] patch series to port ASAN for riscv64

Depends On D87572

Reviewed By: eugenis, vitalybuka

Differential Revision: https://reviews.llvm.org/D87573
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.h (diff)
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp (diff)
Commit aa1b1d35cbf60f63c7830e6711bf849902975943 by Vitaly Buka
[RISCV][ASAN] implementation for vfork interceptor for riscv64

[5/11] patch series to port ASAN for riscv64

Depends On D87573

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D87574
The file was modifiedcompiler-rt/lib/asan/asan_interceptors.h (diff)
The file was addedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
The file was modifiedcompiler-rt/lib/hwasan/hwasan_interceptors_vfork.S (diff)
The file was modifiedcompiler-rt/lib/asan/asan_interceptors_vfork.S (diff)
Commit 00f6ebef6e347e0d24a8f940fe43656719e88cb8 by Vitaly Buka
[RISCV][ASAN] implementation of ThreadSelf  for riscv64

[6/11] patch series to port ASAN for riscv64

Depends On D87574

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D87575
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp (diff)
Commit fe3c1195cfd027fdd28b6d373b3cd9519d5253ec by joker.eph
Add a dump() method on the pass manager for debugging purpose (NFC)

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D88008
The file was modifiedmlir/include/mlir/Pass/Pass.h (diff)
The file was modifiedmlir/lib/Pass/Pass.cpp (diff)
The file was modifiedmlir/include/mlir/Pass/PassManager.h (diff)
Commit f69e090d7dca6bf2786145a9e97b0a7ddb3b514a by martin
[MC] [Win64EH] Try to generate packed unwind info where possible

In practice, this only gives modest savings (for a 6.5 MB DLL with
230 KB xdata, the xdata sections shrinks by around 2.5 KB); to
gain more, the frame lowering would need to be tweaked to more often
generate frame layouts that match the canonical layouts that can
be written in packed form.

Differential Revision: https://reviews.llvm.org/D87371
The file was modifiedllvm/include/llvm/MC/MCWinEH.h (diff)
The file was addedllvm/test/MC/AArch64/seh-packed-unwind.s
The file was modifiedllvm/lib/MC/MCWin64EH.cpp (diff)
Commit 2c4c659666b400b0502e8504a708e050d0a03d6c by martin
[InstCombine] Add parentheses in assert to silence GCC warning. NFC.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff)
Commit b90132399aa994ac6405d0d6437735043bff9314 by martin
[CVP] Remove a redundant trailing semicolon, fixing GCC warnings. NFC.
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
Commit d7eb917a7cb793f49e16841fc24826b988dd5c8f by albionapc
[PowerPC] Implementation of 128-bit Binary Vector Mod and Sign Extend builtins

This patch implements 128-bit Binary Vector Mod and Sign Extend builtins for PowerPC10.

Differential: https://reviews.llvm.org/D87394#inline-815858
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td (diff)
The file was addedllvm/test/CodeGen/PowerPC/p10-vector-sign-extend.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p9vector.c (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedclang/lib/Headers/altivec.h (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrAltivec.td (diff)
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/p10-vector-modulo.ll (diff)
The file was addedllvm/test/CodeGen/PowerPC/p9-vector-sign-extend.ll

Summary

  1. Added x86_64-fedora-clang builder and fedora-llvm-x86_64 slave (details)
  2. Name builddir of x86_64-fedora-clang builder like the slave/worker fedora-llvm-x86_64 (details)
  3. clang-x86-ninja-win10 fixed slash replacement (details)
  4. clang-x86-ninja-win10 fixed MSVC version output (details)
Commit d5933da06ce30de8cfec8ea57f8ecce0d094cb9c by kkleine
Added x86_64-fedora-clang builder and fedora-llvm-x86_64 slave

I'm evaluating how to run a buildbot slave/worker in a Red Hat internal OpenShift cluster.

Differential Revision: https://reviews.llvm.org/D88007
The file was modifiedbuildbot/osuosl/master/config/slaves.py (diff)
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit 5bf9586c573c6057a05f486c014e0268e173af9c by kkleine
Name builddir of x86_64-fedora-clang builder like the slave/worker fedora-llvm-x86_64
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit 3d28ab15412b056861c65d2e899507138e9e8985 by kuhnel
clang-x86-ninja-win10 fixed slash replacement

now only replacing slashes in lines that define paths
The file was modifiedbuildbot/google/docker/buildbot-windows10-vs2019/run.ps1 (diff)
The file was modifiedbuildbot/google/docker/buildbot-windows10-vs2019/VERSION (diff)
The file was modifiedbuildbot/google/terraform/main.tf (diff)
The file was modifiedbuildbot/google/docker/buildbot-windows10-vs2019/Dockerfile (diff)
The file was addedbuildbot/google/docker/buildbot-windows10-vs2019/fix_buildbot_tac_paths.py
Commit c3a4cac8157da0a80a35460fcc14791c89f14c17 by kuhnel
clang-x86-ninja-win10 fixed MSVC version output
The file was modifiedbuildbot/google/docker/buildbot-windows10-vs2019/run.ps1 (diff)