FailedChanges

Summary

  1. [globalisel][tablegen] Compute available feature bits correctly. Summary: Predicate<> now has a field to indicate how often it must be recomputed. Currently, there are two frequencies, per-module (RecomputePerFunction==0) and per-function (RecomputePerFunction==1). Per-function predicates are currently recomputed more frequently than necessary since the only predicate in this category is cheap to test. Per-module predicates are now computed in getSubtargetImpl() while per-function predicates are computed in selectImpl(). Tablegen now manages the PredicateBitset internally. It should only be necessary to add the required includes. Also fixed a problem revealed by the test case where constrainSelectedInstRegOperands() would attempt to tie operands that BuildMI had already tied. Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar Reviewed By: rovka Subscribers: kristof.beyls, igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D32491
  2. [X86][AVX] Added support for _mm256_zext* helper intrinsics (PR32839)
  3. [X86][AVX] Added codegen tests for _mm256_zext* helper intrinsics (PR32839) Not great codegen, especially as VEX moves support implicit zeroing of upper bits....
Revision 301750 by dsanders:
[globalisel][tablegen] Compute available feature bits correctly.

Summary:
Predicate<> now has a field to indicate how often it must be recomputed.
Currently, there are two frequencies, per-module (RecomputePerFunction==0)
and per-function (RecomputePerFunction==1). Per-function predicates are
currently recomputed more frequently than necessary since the only predicate
in this category is cheap to test. Per-module predicates are now computed in
getSubtargetImpl() while per-function predicates are computed in selectImpl().

Tablegen now manages the PredicateBitset internally. It should only be
necessary to add the required includes.

Also fixed a problem revealed by the test case where
constrainSelectedInstRegOperands() would attempt to tie operands that
BuildMI had already tied.

Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar

Reviewed By: rovka

Subscribers: kristof.beyls, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D32491
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelector.h (diff)llvm-revision.src/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
The file was modified/llvm/trunk/include/llvm/Target/Target.td (diff)llvm-revision.src/llvm/trunk/include/llvm/Target/Target.td
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelector.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.td (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86InstrInfo.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstructionSelector.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86InstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86Subtarget.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86Subtarget.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86Subtarget.h (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86Subtarget.h
The file was modified/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp
The file was added/llvm/trunk/test/CodeGen/X86/GlobalISel/select-inc.mirllvm-revision.src/llvm/trunk/test/CodeGen/X86/GlobalISel/select-inc.mir
The file was modified/llvm/trunk/test/TableGen/GlobalISelEmitter.td (diff)llvm-revision.src/llvm/trunk/test/TableGen/GlobalISelEmitter.td
The file was modified/llvm/trunk/unittests/Target/AArch64/InstSizes.cpp (diff)llvm-revision.src/llvm/trunk/unittests/Target/AArch64/InstSizes.cpp
The file was modified/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp (diff)llvm-revision.src/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/SubtargetFeatureInfo.cpp (diff)llvm-revision.src/llvm/trunk/utils/TableGen/SubtargetFeatureInfo.cpp
The file was modified/llvm/trunk/utils/TableGen/SubtargetFeatureInfo.h (diff)llvm-revision.src/llvm/trunk/utils/TableGen/SubtargetFeatureInfo.h
Revision 301749 by rksimon:
[X86][AVX] Added support for _mm256_zext* helper intrinsics (PR32839)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/avx512fintrin.h (diff)llvm-revision.src/cfe/trunk/lib/Headers/avx512fintrin.h
The file was modified/cfe/trunk/lib/Headers/avxintrin.h (diff)llvm-revision.src/cfe/trunk/lib/Headers/avxintrin.h
The file was modified/cfe/trunk/test/CodeGen/avx-builtins.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/avx-builtins.c
The file was modified/cfe/trunk/test/CodeGen/avx512f-builtins.c (diff)llvm-revision.src/cfe/trunk/test/CodeGen/avx512f-builtins.c
Revision 301748 by rksimon:
[X86][AVX] Added codegen tests for _mm256_zext* helper intrinsics (PR32839)

Not great codegen, especially as VEX moves support implicit zeroing of upper bits....
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/avx-intrinsics-fast-isel.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/avx-intrinsics-fast-isel.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll