FailedChanges

Summary

  1. [buildbot] add CMAKE_INSTALL_RPATH_USE_LINK_PATH for ML development mode (details)
Commit 8721195e10b4722a0b5bfae6b6c9b5b24af65db9 by mtrofin
[buildbot] add CMAKE_INSTALL_RPATH_USE_LINK_PATH for ML development mode

This ensures the tensorflow library is copied to install dir.
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [libc++] Split dylib instantiations for deprecated std::random_shuffle into a separate source file (details)
  2. Update the phabricator docs to reflect the monorepo change. (details)
  3. [SVE] Remove calls to VectorType::getNumElements from ExecutionEngine (details)
  4. [libc++] Add missing include in test (details)
  5. [SVE] Remove calls to VectorType::getNumElements from AArch64 (details)
  6. Improve the detection of iOS/tvOS/watchOS simulator binaries in (details)
  7. [PhaseOrdering][NewPM] update test that silently showed bug with SpeculativeExecutionPass; NFC (details)
  8. [PDB] Defer public serialization until PDB writing (details)
  9. [llvm-install-name-tool] Add -id option (details)
  10. [llvm-install-name-tool] Add -change option (details)
  11. [sve][acle] Enable feature macros for SVE ACLE extensions. (details)
  12. [clang-tidy] Added option to readability-else-after-return (details)
  13. [lldb/Test] Skip TestIOHandlerResizeNoEditline with reproducers (details)
  14. [mlir] Fix case in MLIRGPUtoROCDLTransforms (details)
  15. [mlir] Fix case in MLIRGPUtoNVVMTransforms (details)
  16. [macho] emit LC_BUILD_VERSION load command for supported OSes and platforms (details)
  17. [mlir] Fix case in MLIRGPUtoGPURuntimeTransforms (details)
  18. [openmp] Move Directive and Clause helper function to tablegen (details)
  19. [libc++] Fix the Lit DSL test in case a substitution is empty (details)
  20. [InstCombine] fma x, y, 0 -> fmul x, y (details)
  21. [X86] Some CHECK-NOTs for FMA4/TBM/XOP for znver1/znver2 in predefined-arch-macros.c (details)
  22. [X86] Move frontend CPU feature initialization to a look up table based implementation. NFCI (details)
Commit ce6153a5282c2a66a814ac321d5af442cbb5614a by Louis Dionne
[libc++] Split dylib instantiations for deprecated std::random_shuffle into a separate source file

That makes it easier to exclude from the build if one wants to build libc++
without support for the deprecated std::random_shuffle.
The file was modifiedlibcxx/src/CMakeLists.txt
The file was addedlibcxx/src/random_shuffle.cpp
The file was modifiedlibcxx/src/algorithm.cpp
Commit 8164f69e4cb4358d5b40c054175b92b6e5f2408f by echristo
Update the phabricator docs to reflect the monorepo change.

Patch by Nathan Froyd!

Differential Revision: https://reviews.llvm.org/D82389
The file was modifiedllvm/docs/Phabricator.rst
Commit 9b500e564a74f297567a791e77249c608ad39466 by ctetreau
[SVE] Remove calls to VectorType::getNumElements from ExecutionEngine

Reviewers: efriedma, lhames, sdesmalen, fpetrogalli

Reviewed By: lhames, sdesmalen

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82211
The file was modifiedllvm/lib/ExecutionEngine/ExecutionEngine.cpp
Commit 73370b2c0ce80810ff945f763dd61a98778a8e8f by Louis Dionne
[libc++] Add missing include in test
The file was modifiedlibcxx/test/libcxx/containers/associative/non_const_comparator.verify.cpp
Commit ab35ba5742216b3aea8421a66b480405377bf8f1 by ctetreau
[SVE] Remove calls to VectorType::getNumElements from AArch64

Reviewers: efriedma, paquette, david-arm, kmclaughlin

Reviewed By: david-arm

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82214
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64StackTagging.cpp
Commit 0da0437b2afbd8ebef6b11f114cca33b118e7639 by Adrian Prantl
Improve the detection of iOS/tvOS/watchOS simulator binaries in
debugserver and lldb

This patch improves the heuristics for correctly identifying simulator binaries on Darwin and adds support for simulators running on Apple Silicon.

rdar://problem/64046344

Differential Revision: https://reviews.llvm.org/D82616
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
The file was modifiedlldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
Commit 09b8dbf70c1a9ff3d9763e607c580a76a01087c3 by spatel
[PhaseOrdering][NewPM] update test that silently showed bug with SpeculativeExecutionPass; NFC

See D82735 / rG1a6cebb4d12c744699e23624f8afda5cbe216fe6
The file was modifiedllvm/test/Transforms/PhaseOrdering/rotate.ll
Commit b7402edce3150591df03b7352fdcb3336098d603 by rnk
[PDB] Defer public serialization until PDB writing

This reduces peak memory on my test case from 1960.14MB to 1700.63MB
(-260MB, -13.2%) with no measurable impact on CPU time. I'm currently
working with a publics stream that is about 277MB. Before this change,
we would allocate 277MB of heap memory, serialize publics into them,
hold onto that heap memory, open the PDB, and commit into it.  After
this change, we defer the serialization until commit time.

In the last change I made to public writing, I re-sorted the list of
publics multiple times in place to avoid allocating new temporary data
structures. Deferring serialization until later requires that we don't
reorder the publics. Instead of sorting the publics, I partially
construct the hash table data structures, store a publics index in them,
and then sort the hash table data structures. Later, I replace the index
with the symbol record offset.

This change also addresses a FIXME and moves the list of global and
public records from GSIHashStreamBuilder to GSIStreamBuilder. Now that
publics aren't being serialized, it makes even less sense to store them
as a list of CVSymbol records. The hash table used to deduplicate
globals is moved as well, since that is specific to globals, and not
publics.

Reviewed By: aganea, hans

Differential Revision: https://reviews.llvm.org/D81296
The file was modifiedllvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
The file was modifiedlld/COFF/PDB.cpp
The file was modifiedllvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
Commit ca518c49183aa3bace0def1827c1def7a28fa293 by smeenai
[llvm-install-name-tool] Add -id option

Implement `-id` option for install-name-tool. Differences from cctool's
behavior:
- Does **NOT** throw an error if multiple -id options are specified.
    Instead, picks the last one.
- Throws an error in case empty id is specified.

Reviewed By: jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D82410
The file was addedllvm/test/tools/llvm-objcopy/MachO/install-name-tool-id.test
The file was modifiedllvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
The file was modifiedllvm/tools/llvm-objcopy/CopyConfig.h
The file was modifiedllvm/tools/llvm-objcopy/InstallNameToolOpts.td
The file was modifiedllvm/tools/llvm-objcopy/CopyConfig.cpp
Commit 2bdcd8b14f470b06fa6cf48972902e4b8030b088 by smeenai
[llvm-install-name-tool] Add -change option

Implement `-change` option for install-name-tool. The behavior exactly
matches that of cctools. Depends on D82410.

Reviewed By: jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D82613
The file was modifiedllvm/tools/llvm-objcopy/CopyConfig.h
The file was modifiedllvm/tools/llvm-objcopy/CopyConfig.cpp
The file was modifiedllvm/tools/llvm-objcopy/InstallNameToolOpts.td
The file was modifiedllvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
The file was addedllvm/test/tools/llvm-objcopy/MachO/install-name-tool-change.test
Commit d54e4dded7b08444ce16058dad3d6748e501092d by francesco.petrogalli
[sve][acle] Enable feature macros for SVE ACLE extensions.

Summary:
The following feature macros have been added:

__ARM_FEATURE_SVE_BF16

__ARM_FEATURE_SVE_MATMUL_INT8

__ARM_FEATURE_SVE_MATMUL_FP32

__ARM_FEATURE_SVE_MATMUL_FP64

The driver has been updated to enable them accordingly to the value of
the target feature passed at command line.

The SVE ACLE tests using the macros have been modified to work with
the target feature instead of passing the macro at command line.

Reviewers: sdesmalen, efriedma, c-rhodes, kmclaughlin, SjoerdMeijer, rengolin

Subscribers: tschuett, kristof.beyls, rkruppe, psnobl, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82623
The file was modifiedclang/lib/Basic/Targets/AArch64.cpp
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ro.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_usdot.c
The file was modifiedclang/lib/Basic/Targets/AArch64.h
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sudot.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_matmul_fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvtnt.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ro-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvt-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmmla.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl-bfloat.c
The file was modifiedclang/test/Preprocessor/aarch64-target-features.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_matmul_fp32.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mmla.c
Commit a06a5ed97800b66eaf4d03eedd4d2827f53e423a by n.james93
[clang-tidy] Added option to readability-else-after-return

Added a 'RefactorConditionVariables' option to control how the check handles condition variables

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D82824
The file was modifiedclang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/readability-else-after-return.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/readability-else-after-return-no-cond-var-refactor.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
Commit 66d9c0d4fc7ea19be08c6a3604571254186851a7 by Jonas Devlieghere
[lldb/Test] Skip TestIOHandlerResizeNoEditline with reproducers
The file was modifiedlldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
Commit cf6ed682f03ec0110a7e42441e089c4d9405e431 by herhut
[mlir] Fix case in MLIRGPUtoROCDLTransforms

Summary:
This changes the casing of MLIRGPUtoROCDLTransforms to be consistent
with other transform libraries.

Differential Revision: https://reviews.llvm.org/D82843
The file was modifiedmlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
Commit 7099d8e4f7d06928a3f9b5424805593fb55c20c1 by herhut
[mlir] Fix case in MLIRGPUtoNVVMTransforms

Summary:
This changes the casing of MLIRGPUtoNVVMTransforms to be consistent
with other transform libraries.

Reviewers: stephenneuendorffer, herhut

Reviewed By: herhut

Subscribers: jholewinski, mgorny, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, grosul1, Kayjukh, jurahul, msifontes

Tags: #mlir

Differential Revision: https://reviews.llvm.org/D82842
The file was modifiedmlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
Commit 24a1447b02854f3145bf5337a82c5fd245f61ca5 by Alex Lorenz
[macho] emit LC_BUILD_VERSION load command for supported OSes and platforms

This change lets LLVM use the LC_BUILD_VERSION command when building for macOS 10.14, iOS 12, tvOS 12, and watchOS 5.
Additionally, this change ensures that new platforms like Apple Silicon macOS / Mac Catalyst,
and simulators running on Apple Silicon alway use LC_BUILD_VERSION with the OS version set to the
minimum supported OS version if the deployment target version is older.

Differential Revision: https://reviews.llvm.org/D82836
The file was modifiedllvm/test/MC/MachO/darwin-version-min-load-command.s
The file was modifiedllvm/lib/Support/Triple.cpp
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedllvm/test/MC/MachO/darwin-sdk-version.ll
Commit 0f43fce78393417797a3c67040f49d6ed9cfe1c2 by herhut
[mlir] Fix case in MLIRGPUtoGPURuntimeTransforms

Summary:
This changes the casing of MLIRGPUtoGPURuntimeTransforms to be consistent
with other transform libraries.

Differential Revision: https://reviews.llvm.org/D82841
The file was modifiedmlir/lib/Conversion/GPUCommon/CMakeLists.txt
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
Commit 1a70077b5a64189d9c04d1a2d7ea6ff0e49744d6 by clementval
[openmp] Move Directive and Clause helper function to tablegen

Summary:
Follow up to D81736. Move getOpenMPDirectiveKind, getOpenMPClauseKind, getOpenMPDirectiveName and
getOpenMPClauseName to the new tablegen code generation. The code is generated in a new file named OMP.cpp.inc

Reviewers: jdoerfert, jdenny, thakis

Reviewed By: jdoerfert, jdenny

Subscribers: mgorny, yaxunl, hiraditya, guansong, sstefan1, llvm-commits, thakis

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82405
The file was modifiedllvm/lib/Frontend/OpenMP/OMPConstants.cpp
The file was modifiedllvm/test/TableGen/directive1.td
The file was modifiedllvm/utils/TableGen/DirectiveEmitter.cpp
The file was modifiedllvm/test/TableGen/directive2.td
The file was modifiedllvm/include/llvm/Frontend/Directive/DirectiveBase.td
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedllvm/utils/TableGen/TableGenBackends.h
The file was modifiedllvm/include/llvm/Frontend/OpenMP/CMakeLists.txt
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
The file was modifiedllvm/utils/TableGen/TableGen.cpp
Commit 99f213e07c044fec0d527d177b40e05c014ac49d by Louis Dionne
[libc++] Fix the Lit DSL test in case a substitution is empty
The file was modifiedlibcxx/test/libcxx/selftest/dsl/dsl.sh.py
Commit 9e49d1d9b8702a568baf82e2549e246197ecc334 by david.green
[InstCombine] fma x, y, 0 -> fmul x, y

If the addend of the fma is zero, common sense would suggest that we can
convert fma x, y, 0.0 to fmul x, y. This comes up with some user code
that was expecting the first fma in an unrolled loop to simplify to a
fmul.

Floating point often does not follow naive common sense though. Alive
suggests that this should be guarded by nsz (as fadd -0.0, 0.0 = 0.0).
fma x, y, -0.0 is always valid.

Differential Revision: https://reviews.llvm.org/D82778
The file was modifiedllvm/test/Transforms/InstCombine/fma.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit f886f0724818d0127195c24e503993a6e380af5b by craig.topper
[X86] Some CHECK-NOTs for FMA4/TBM/XOP for znver1/znver2 in predefined-arch-macros.c

These features exist in earlier CPUs, but were deprecated on
znver1/znver2. While working on D82731 I accidentally copied
them from the earlier CPU. And nothing caught my mistake. Having
these additional checks would have helped.
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c
Commit 3537939cda86f0b5b06233eb99ddc9eb22935008 by craig.topper
[X86] Move frontend CPU feature initialization to a look up table based implementation. NFCI

This replaces the switch statement implementation in the clang's
X86.cpp with a lookup table in X86TargetParser.cpp.

I've used constexpr and copy of the FeatureBitset from
SubtargetFeature.h to store the features in a lookup table.
After the lookup the bitset is translated into strings for use
by the rest of the frontend code.

I had to modify the implementation of the FeatureBitset to avoid
bugs in gcc 5.5 constexpr handling. It seems to not like the
same array entry to be used on the left side and right hand side
of an assignment or &= or |=. I've also used uint32_t instead of
uint64_t and sized based on the X86::CPU_FEATURE_MAX.

I've initialized the features for different CPUs outside of the
table so that we can express inheritance in an adhoc way. This
was one of the big limitations of the switch and we had resorted
to labels and gotos.

Differential Revision: https://reviews.llvm.org/D82731
The file was modifiedclang/lib/Basic/Targets/X86.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.h
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp