SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [X86][SSE] Combine combineLogicBlendIntoConditionalNegate for VSELECT (details)
  2. [MC] Drop an unused rule about absolute temporary symbols (details)
  3. [MC] Merge MCSymbol::getSectionPtr into getSection and simplify (details)
  4. Fix oversight in AST traversal helper (details)
  5. Allow using traverse() with bindings (details)
  6. [MC] Delete MCSection::{rbegin,rend} (details)
  7. [Gnu toolchain] Look at standard GCC paths for libstdcxx by default (details)
  8. Add missing test (details)
  9. [MC][ARM] Delete MCSection::HasData and move SHF_ARM_PURECODE logic to (details)
  10. Clang-format previous commit (details)
  11. [Coroutines] Remove corresponding phi values when apply (details)
  12. [NFC] Modify the format: Drop the else since we alerady returned in the (details)
  13. [X86] Improve v2i64->v2f32 and v4i64->v4f32 uint_to_fp on avx and avx2 (details)
  14. [MC] Delete MCFragment::isDummy. NFC (details)
  15. [DAGCombine] Don't check the legality of type when combine the (details)
  16. [MC] Reorder MCFragment members to decrease padding (details)
  17. [MC] Reorder members of MCFragment's subclasses to decrease padding (details)
Commit e3bd0118903ccb545ca5cb2641646eb66ae8180e by llvm-dev
[X86][SSE] Combine combineLogicBlendIntoConditionalNegate for VSELECT
nodes (PR43660)
Attempt to use combineLogicBlendIntoConditionalNegate for (select M,
(sub 0, X), X) -> (sub (xor X, M), M)
We limit this to cases that can't easily replace the VSELECT with a
shuffle (non-constant masks) or where a BLENDV is likely to occur (which
tends to result in slower codegen).
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-blend.ll
The file was modifiedllvm/test/CodeGen/X86/combine-sdiv.ll
Commit c764304adc5ad52921957e8f7d14db8433eee613 by maskray
[MC] Drop an unused rule about absolute temporary symbols
The file was modifiedllvm/lib/MC/MCAssembler.cpp
Commit 124b918bd34756c16b3f460adf96b4bfe48a5f97 by maskray
[MC] Merge MCSymbol::getSectionPtr into getSection and simplify
The file was modifiedllvm/include/llvm/MC/MCSymbol.h
Commit 471151238438201f3fe365a7784f1a091328e46c by steveire
Fix oversight in AST traversal helper
The file was modifiedclang/lib/AST/Expr.cpp
Commit ad0a45833b940057cc74364c82271247bd7925e1 by steveire
Allow using traverse() with bindings
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
Commit 586acd84902b32e6f96c36ef9a83c3d36420d8d3 by maskray
[MC] Delete MCSection::{rbegin,rend}
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was modifiedllvm/include/llvm/MC/MCSection.h
Commit b18cb9c4716677b048a88125be14d59a56865b9c by Kristina Brooks
[Gnu toolchain] Look at standard GCC paths for libstdcxx by default
Linux' current addLibCxxIncludePaths and addLibStdCxxIncludePaths are
actually almost non-Linux-specific at all, and can be reused almost as
such for all gcc toolchains. Only keep Android/Freescale/Cray hacks in
Linux's version.
Patch by sthibaul (Samuel Thibault)
Differential Revision: https://reviews.llvm.org/D69758
The file was modifiedclang/lib/Driver/ToolChains/Gnu.h
The file was modifiedclang/lib/Driver/ToolChains/Hurd.cpp
The file was modifiedclang/lib/Driver/ToolChains/Linux.h
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedclang/lib/Driver/ToolChains/Hurd.h
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp
Commit 35efef5351e3b3a4e50bcd862407ef7edc0b2166 by steveire
Add missing test
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Commit 5511861e6dc81e702587bb4d07deba35571db293 by maskray
[MC][ARM] Delete MCSection::HasData and move SHF_ARM_PURECODE logic to
ARMELFObjectWriter::addTargetSectionFlags
This simplifies the generic interface and also makes SHF_ARM_PURECODE
more robust (fixes a TODO). Inspecting MCDataFragment contents covers
more cases than MCObjectStreamer::EmitBytes.
The file was modifiedllvm/include/llvm/MC/MCSection.h
The file was modifiedllvm/lib/MC/MCSection.cpp
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
The file was modifiedllvm/lib/MC/MCObjectStreamer.cpp
Commit 445f4d2310e751a6ab18f84b1d4ad13037ffd819 by steveire
Clang-format previous commit
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Commit 83a9321f60d837e4d41c9c08c09ab9e4c171ada4 by modocache
[Coroutines] Remove corresponding phi values when apply
simplifyTerminatorLeadingToRet
Summary: In addMustTailToCoroResumes, we set musttail on those resume
instructions that are followed by a ret instruction. This is done by
simplifyTerminatorLeadingToRet which replace a sequence of branches
leading to a ret with a clone of the ret.
However it forgets to remove corresponding PHI values that come from
basic block of replaced branch, and may cause jumpthreading pass hangs
(https://bugs.llvm.org/show_bug.cgi?id=43720)
This patch fix this issue
Test Plan: cppcoro library with O3+flto check-llvm
Reviewers: modocache, GorNishanov, lewissbaker
Reviewed By: modocache
Subscribers: mehdi_amini, EricWF, hiraditya, dexonsmith, jfb,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71826
Patch by junparser (JunMa)!
The file was addedllvm/test/Transforms/Coroutines/coro-split-musttail1.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
Commit ca3bf289a7f38b651280d8c6e784d4045a42b580 by chen3.liu
[NFC] Modify the format: Drop the else since we alerady returned in the
if.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 95840866b7d86794490ed46278fa9a9d798ee5bf by craig.topper
[X86] Improve v2i64->v2f32 and v4i64->v4f32 uint_to_fp on avx and avx2
targets.
Summary: Based on Simon's D52965, but improved to handle strict fp and
improve some of the shuffling.
Rather than use v2i1/v4i1 and let type legalization continue, just
generate all the code with legal types and use an explicit shuffle.
I also added an explicit setcc to the v4i64 code to match the semantics
of vselect which doesn't just use the sign bit. I'm also using a
v4i64->v4i32 truncate instead of the shuffle in Simon's original code.
With the setcc this will become a pack.
Future work can look into using X86ISD::BLENDV and a different shuffle
that only moves the sign bit.
Reviewers: RKSimon, spatel
Reviewed By: RKSimon
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71956
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-128.ll
The file was modifiedllvm/test/CodeGen/X86/vec_int_to_fp.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-256.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
Commit 2c053109fa83dc260042552c9132f3f528eb894e by maskray
[MC] Delete MCFragment::isDummy. NFC
isa<...>, dyn_cast<...> and cast<...> are used by other fragments. Don't
make MCDummyFragment special.
The file was modifiedllvm/lib/MC/MCFragment.cpp
The file was modifiedllvm/include/llvm/MC/MCFragment.h
Commit b9780f4f80ba82c6271b6b87fbfe6ea32d154e49 by qshanz
[DAGCombine] Don't check the legality of type when combine the
SIGN_EXTEND_INREG
This is the DAG node for SIGN_EXTEND_INREG :
t21: v4i32 = sign_extend_inreg t18, ValueType:ch:v4i16
It has two operands. The first one is the value it want to extend, and
the second one is the type to specify how to extend the value. For this
example, it means that, it is signed extend the t18(v4i32) from v4i16 to
v4i32. That is the semantics of c code:
vector int foo(vector int m) {
  return m << 16 >> 16;
}
And it could be any vector type that hardware support the operation,
though the type 'v4i16' is NOT legal for the target. When we are trying
to combine the srl + sra, what we did now is calling the
TLI.isOperationLegal(), which will also check the legality of the type.
That doesn't make sense.
Differential Revision: https://reviews.llvm.org/D70230
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/sext-vector-inreg.ll
Commit 806a2b1f3d8850eb88f1f9338e86b6398841c961 by maskray
[MC] Reorder MCFragment members to decrease padding
sizeof(MCFragment) does not change, but some if its subclasses do, e.g.
on a 64-bit platform, sizeof(MCEncodedFragment) decreases from 64 to 56,
sizeof(MCDataFragment) decreases from 224 to 216.
The file was modifiedllvm/include/llvm/MC/MCFragment.h
The file was modifiedllvm/lib/MC/MCFragment.cpp
Commit 2e4669500314cc6ba08c59abf8ee0fedd590018e by maskray
[MC] Reorder members of MCFragment's subclasses to decrease padding
On a 64-bit platform:
sizeof(MCBoundaryAlignFragment): 64 -> 56 sizeof(MCOrgFragment): 72 ->
64 sizeof(MCFillFragment): 80 -> 72 sizeof(MCLEBFragment): 88 -> 80
The file was modifiedllvm/include/llvm/MC/MCFragment.h