SuccessChanges

Summary

  1. [libc++] Fix extern C for __sanitizer_annotate_contiguous_container() (for gcc) (details)
  2. Fix -Wno-error= parsing in clang-format. (details)
  3. [SimplifyCFG] DeleteDeadBlock() already knows how to preserve DomTree (details)
  4. [SimplifyCFG] ConstantFoldTerminator() already knows how to preserve DomTree (details)
  5. [SimplifyCFG] Teach simplifyUnreachable() to preserve DomTree (details)
  6. [VectorCombine] add tests for gep load with cast; NFC (details)
  7. CodeGen: Improve generated IR for __builtin_mul_overflow(uint, uint, int) (details)
Commit 6340f890bb86b6ec1e72047d4c4560ee0dfe6d90 by Louis Dionne
[libc++] Fix extern C for __sanitizer_annotate_contiguous_container() (for gcc)

gcc supports it only at the beginning:

    $ g++ -o /dev/null -c /tmp/test_extern.cpp
    $ cat /tmp/test_extern.cpp
    extern "C" __attribute__ ((__visibility__("default"))) int foo();

Otherwise:

    $ g++ -o /dev/null -c /tmp/test_extern.cpp
    /tmp/test_extern.cpp:1:52: error: expected unqualified-id before string constant
        1 | __attribute__ ((__visibility__("default"))) extern "C" int foo();
          |                                                    ^~~
    $ cat /tmp/test_extern.cpp
    __attribute__ ((__visibility__("default"))) extern "C" int foo();

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D93316
The file was modifiedlibcxx/include/__config
Commit c755e41c336c898873db6c3c58a2819a982f60de by joachim
Fix -Wno-error= parsing in clang-format.

As noted in https://reviews.llvm.org/D86137#2460135 parsing of
the clang-format parameter -Wno-error=unknown fails.
This currently is done by having `-Wno-error=unknown` as an option.
In this patch this is changed to make `-Wno-error=` parse an enum into a bit set.
This way the parsing is fixed and also we can possibly add new options easily.

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D93459
The file was modifiedclang/docs/ClangFormat.rst
The file was addedclang/test/Format/error-config.cpp
The file was modifiedclang/tools/clang-format/ClangFormat.cpp
Commit 164e0847a59995c0e602c9e708dfb2bf41494780 by lebedev.ri
[SimplifyCFG] DeleteDeadBlock() already knows how to preserve DomTree

... so just ensure that we pass DomTreeUpdater it into it.

Fixes DomTree preservation for a large number of tests,
all of which are marked as such so that they do not regress.
The file was modifiedllvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
The file was modifiedllvm/test/Transforms/GVNSink/sink-common-code.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
The file was modifiedllvm/test/Transforms/GVNSink/indirect-call.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/PR9946.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/clamp.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/bbi-23595.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/BrUnwind.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll
The file was modifiedllvm/test/Transforms/JumpThreading/lvi-tristate.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/speculate-math.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch_thread.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/PR25267.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/fold-debug-location.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/pr39807.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/rangereduce.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/annotations.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/common-dest-folding.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/safe-abs.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/simplify-then-delete.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/basictest.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/HoistCode.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/no-md-sink.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll
Commit 2ee724863e9cfe631fd7eb7eb63f8b795d68a388 by lebedev.ri
[SimplifyCFG] ConstantFoldTerminator() already knows how to preserve DomTree

... so just ensure that we pass DomTreeUpdater it into it.

Fixes DomTree preservation for a number of tests,
all of which are marked as such so that they do not regress.
The file was modifiedllvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/indirectbr.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/fold-debug-info.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/implied-cond.ll
Commit 2d07414ee5f74a09fb89723b4a9bb0818bdc2e18 by lebedev.ri
[SimplifyCFG] Teach simplifyUnreachable() to preserve DomTree

Pretty boring, removeUnwindEdge() already known how to update DomTree,
so if we are to call it, we must first flush our own pending updates;
otherwise, we just stop predecessors from branching to us,
and for certain predecessors, stop their predecessors from
branching to them also.
The file was modifiedllvm/test/Transforms/SimplifyCFG/branch-fold.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
The file was modifiedllvm/test/Transforms/CallSiteSplitting/split-loop.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/switch-profmd.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/unreachable_assume.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
Commit 71a1b9fe76acfea8920e143c807c5cb8bf510254 by spatel
[VectorCombine] add tests for gep load with cast; NFC
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll
Commit 3203143f1356a4e4e3ada231156fc6da6e1a9f9d by tstellar
CodeGen: Improve generated IR for __builtin_mul_overflow(uint, uint, int)

Add a special case for handling __builtin_mul_overflow with unsigned
inputs and a signed output to avoid emitting the __muloti4 library
call on x86_64.  __muloti4 is not implemented in libgcc, so avoiding
this call fixes compilation of some programs that call
__builtin_mul_overflow with these arguments.

For example, this fixes the build of cpio with clang, which includes code from
gnulib that calls __builtin_mul_overflow with these argument types.

Reviewed By: vsk

Differential Revision: https://reviews.llvm.org/D84405
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/builtins-overflow.c

Summary

  1. Try to fix Windows stage 2 build issue (details)
Commit 9b05513431743e3f6eea070fe02f63aec713fa4d by rnk
Try to fix Windows stage 2 build issue
The file was modifiedzorg/buildbot/builders/annotated/annotated_builder.py