FailedChanges

Summary

  1. [X86] Add DAG combine to turn (bitcast (vbroadcast_load)) into just a vbroadcast_load if the scalar size is the same. This improves broadcast load folding of i64 elements on 32-bit targets where i64 isn't legal. Previously we had to represent these as vXf64 vbroadcast_loads and a bitcast to vXi64. But we didn't have any isel patterns looking for that. This also allows us to remove or simplify some isel patterns that were looking for bitcasted vbroadcast_loads.
  2. Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON` Some Driver tests relied on the default resource direcory having per-os per-arch subdirectory layout, and when clang is built with `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON`, those test fail, because clang by default assumes per-target subdirectories. Explicitly set `-resource-dir` flag to point to a tree with per-os per-arch layout. See also: D45604, D62469 Differential Revision: https://reviews.llvm.org/D66981 Patch by Sergej Jaskiewicz <jaskiewiczs@icloud.com>.
  3. [HIP] Support -emit-llvm for device compilation Sometimes it is useful to compile HIP device code to LLVM BC. It is not convenient to use clang -cc1 since there are lots of options needed. This patch allows clang driver to compile HIP device code to LLVM BC with -emit-llvm -c. Differential Revision: https://reviews.llvm.org/D68284
  4. [X86] Add broadcast load folding patterns to NoVLX VPMULLQ/VPMAXSQ/VPMAXUQ/VPMINSQ/VPMINUQ patterns. More fixes for PR36191.
  5. [X86] Remove a couple redundant isel patterns that look to have been copy/pasted from right above them. NFC
  6. gn build: Merge r373556
  7. Revert 373538 and follow-ups 373549 and 373552. They break tests on (at least) macOS.
  8. [gicombiner] Make rL373551 compatible with older cmakes Newer cmakes appear to be more flexible w.r.t object libraries. Convert to a static library so that it works with older cmakes too
  9. gn build: (manually) merge r373551
  10. PR43519: don't inject a diagnostic when constant-evaulation of a pointer-to-member call can't determine a callee. We will have produced a diagnostic already if the callee is known to be unevaluatable, and diagnosing here rejects valid code during potential constant expression checking.
  11. Fixing broken builds due to r373538, issues with filepath and hexagon toolchain. It appears there are some issues with the hexagon toolchain, and also the file path for the library file. If this doesn't fix the remaining breakages I will attempt a revert.
Revision 373566 by ctopper:
[X86] Add DAG combine to turn (bitcast (vbroadcast_load)) into just a vbroadcast_load if the scalar size is the same.

This improves broadcast load folding of i64 elements on 32-bit
targets where i64 isn't legal.

Previously we had to represent these as vXf64 vbroadcast_loads and
a bitcast to vXi64. But we didn't have any isel patterns
looking for that.

This also allows us to remove or simplify some isel patterns that
were looking for bitcasted vbroadcast_loads.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdllvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-intrinsics-upgrade.llllvm.src/test/CodeGen/X86/avx512-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.llllvm.src/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512ifma-intrinsics-upgrade.llllvm.src/test/CodeGen/X86/avx512ifma-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512ifma-intrinsics.llllvm.src/test/CodeGen/X86/avx512ifma-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vl-intrinsics-upgrade.llllvm.src/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.llllvm.src/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vp2intersect-intrinsics.llllvm.src/test/CodeGen/X86/avx512vp2intersect-intrinsics.ll
Revision 373565 by sepavloff:
Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`

Some Driver tests relied on the default resource direcory having per-os per-arch
subdirectory layout, and when clang is built with `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON`,
those test fail, because clang by default assumes per-target subdirectories.

Explicitly set `-resource-dir` flag to point to a tree with per-os per-arch layout.

See also: D45604, D62469

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

Patch by Sergej Jaskiewicz <jaskiewiczs@icloud.com>.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/arm-compiler-rt.cclang.src/test/Driver/arm-compiler-rt.c
The file was modified/cfe/trunk/test/Driver/print-libgcc-file-name-clangrt.cclang.src/test/Driver/print-libgcc-file-name-clangrt.c
Revision 373561 by yaxunl:
[HIP] Support -emit-llvm for device compilation

Sometimes it is useful to compile HIP device code to LLVM BC. It is not convenient to use clang -cc1 since
there are lots of options needed.

This patch allows clang driver to compile HIP device code to LLVM BC with -emit-llvm -c.

Differential Revision: https://reviews.llvm.org/D68284
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cppclang.src/lib/Driver/Driver.cpp
The file was added/cfe/trunk/test/Driver/hip-device-compile.hipclang.src/test/Driver/hip-device-compile.hip
Revision 373560 by ctopper:
[X86] Add broadcast load folding patterns to NoVLX VPMULLQ/VPMAXSQ/VPMAXUQ/VPMINSQ/VPMINUQ patterns.

More fixes for PR36191.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdllvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-arith.llllvm.src/test/CodeGen/X86/avx512-arith.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_store_trunc_ssat.llllvm.src/test/CodeGen/X86/masked_store_trunc_ssat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_store_trunc_usat.llllvm.src/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-packus.llllvm.src/test/CodeGen/X86/vector-trunc-packus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-ssat.llllvm.src/test/CodeGen/X86/vector-trunc-ssat.ll
Revision 373559 by ctopper:
[X86] Remove a couple redundant isel patterns that look to have been copy/pasted from right above them. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdllvm.src/lib/Target/X86/X86InstrAVX512.td
Revision 373558 by gnsyncbot:
gn build: Merge r373556
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang/lib/Driver/BUILD.gnllvm.src/utils/gn/secondary/clang/lib/Driver/BUILD.gn
Revision 373556 by nico:
Revert 373538 and follow-ups 373549 and 373552.

They break tests on (at least) macOS.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Action.hclang.src/include/clang/Driver/Action.h
The file was modified/cfe/trunk/include/clang/Driver/Options.tdclang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/Phases.hclang.src/include/clang/Driver/Phases.h
The file was modified/cfe/trunk/include/clang/Driver/ToolChain.hclang.src/include/clang/Driver/ToolChain.h
The file was modified/cfe/trunk/include/clang/Driver/Types.defclang.src/include/clang/Driver/Types.def
The file was modified/cfe/trunk/lib/Driver/Action.cppclang.src/lib/Driver/Action.cpp
The file was modified/cfe/trunk/lib/Driver/CMakeLists.txtclang.src/lib/Driver/CMakeLists.txt
The file was modified/cfe/trunk/lib/Driver/Driver.cppclang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/Phases.cppclang.src/lib/Driver/Phases.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChain.cppclang.src/lib/Driver/ToolChain.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was removed/cfe/trunk/lib/Driver/ToolChains/InterfaceStubs.cppclang.src/lib/Driver/ToolChains/InterfaceStubs.cpp
The file was removed/cfe/trunk/lib/Driver/ToolChains/InterfaceStubs.hclang.src/lib/Driver/ToolChains/InterfaceStubs.h
The file was modified/cfe/trunk/lib/Driver/Types.cppclang.src/lib/Driver/Types.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/test/InterfaceStubs/bad-format.cppclang.src/test/InterfaceStubs/bad-format.cpp
The file was modified/cfe/trunk/test/InterfaceStubs/class-template-specialization.cppclang.src/test/InterfaceStubs/class-template-specialization.cpp
The file was removed/cfe/trunk/test/InterfaceStubs/conflict-type.ifsclang.src/test/InterfaceStubs/conflict-type.ifs
The file was removed/cfe/trunk/test/InterfaceStubs/driver-test.cclang.src/test/InterfaceStubs/driver-test.c
The file was modified/cfe/trunk/test/InterfaceStubs/externstatic.cclang.src/test/InterfaceStubs/externstatic.c
The file was removed/cfe/trunk/test/InterfaceStubs/func.ifsclang.src/test/InterfaceStubs/func.ifs
The file was modified/cfe/trunk/test/InterfaceStubs/function-template-specialization.cppclang.src/test/InterfaceStubs/function-template-specialization.cpp
The file was modified/cfe/trunk/test/InterfaceStubs/inline.cclang.src/test/InterfaceStubs/inline.c
The file was removed/cfe/trunk/test/InterfaceStubs/merge-conflict-test.cclang.src/test/InterfaceStubs/merge-conflict-test.c
The file was removed/cfe/trunk/test/InterfaceStubs/object-double.cclang.src/test/InterfaceStubs/object-double.c
The file was removed/cfe/trunk/test/InterfaceStubs/object-float.cclang.src/test/InterfaceStubs/object-float.c
The file was removed/cfe/trunk/test/InterfaceStubs/object.cclang.src/test/InterfaceStubs/object.c
The file was added/cfe/trunk/test/InterfaceStubs/object.cppclang.src/test/InterfaceStubs/object.cpp
The file was removed/cfe/trunk/test/InterfaceStubs/object.ifsclang.src/test/InterfaceStubs/object.ifs
The file was modified/cfe/trunk/test/InterfaceStubs/template-namespace-function.cppclang.src/test/InterfaceStubs/template-namespace-function.cpp
The file was modified/cfe/trunk/test/InterfaceStubs/weak.cppclang.src/test/InterfaceStubs/weak.cpp
The file was modified/cfe/trunk/test/lit.cfg.pyclang.src/test/lit.cfg.py
Revision 373555 by dsanders:
[gicombiner] Make rL373551 compatible with older cmakes

Newer cmakes appear to be more flexible w.r.t object libraries. Convert to
a static library so that it works with older cmakes too
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/TableGen/CMakeLists.txtllvm.src/unittests/TableGen/CMakeLists.txt
The file was modified/llvm/trunk/utils/TableGen/CMakeLists.txtllvm.src/utils/TableGen/CMakeLists.txt
The file was modified/llvm/trunk/utils/TableGen/GlobalISel/CMakeLists.txtllvm.src/utils/TableGen/GlobalISel/CMakeLists.txt
Revision 373554 by nico:
gn build: (manually) merge r373551
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gnllvm.src/utils/gn/secondary/llvm/unittests/BUILD.gn
The file was added/llvm/trunk/utils/gn/secondary/llvm/unittests/TableGenllvm.src/utils/gn/secondary/llvm/unittests/TableGen
The file was added/llvm/trunk/utils/gn/secondary/llvm/unittests/TableGen/BUILD.gnllvm.src/utils/gn/secondary/llvm/unittests/TableGen/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/utils/TableGen/BUILD.gnllvm.src/utils/gn/secondary/llvm/utils/TableGen/BUILD.gn
The file was added/llvm/trunk/utils/gn/secondary/llvm/utils/TableGen/GlobalISelllvm.src/utils/gn/secondary/llvm/utils/TableGen/GlobalISel
The file was added/llvm/trunk/utils/gn/secondary/llvm/utils/TableGen/GlobalISel/BUILD.gnllvm.src/utils/gn/secondary/llvm/utils/TableGen/GlobalISel/BUILD.gn
Revision 373553 by rsmith:
PR43519: don't inject a diagnostic when constant-evaulation of a
pointer-to-member call can't determine a callee.

We will have produced a diagnostic already if the callee is known to be
unevaluatable, and diagnosing here rejects valid code during potential
constant expression checking.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx11.cppclang.src/test/SemaCXX/constant-expression-cxx11.cpp
Revision 373552 by zer0:
Fixing broken builds due to r373538, issues with filepath and hexagon toolchain.

It appears there are some issues with the hexagon toolchain, and also the file
path for the library file. If this doesn't fix the remaining breakages I will
attempt a revert.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/InterfaceStubs/driver-test.cclang.src/test/InterfaceStubs/driver-test.c