diff options
author | Craig Topper <craig.topper@intel.com> | 2018-07-02 06:23:39 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-07-02 06:23:39 +0000 |
commit | 0661f67296288ed54d8a7d582db0bf8ddac059b8 (patch) | |
tree | 05be9920b71ca1ee0d332199d5026d60507a0171 /llvm/lib/Target/X86/X86InstrInfo.cpp | |
parent | 3b2aa2b4b4b42fdeb2ee2c617dabddeb30c5441f (diff) | |
download | bcm5719-llvm-0661f67296288ed54d8a7d582db0bf8ddac059b8.tar.gz bcm5719-llvm-0661f67296288ed54d8a7d582db0bf8ddac059b8.zip |
[X86] Remove FMA3Info DenseMap. Break into sorted tables that we can binary search.
I separated out the rounding and broadcast groups into their own tables because it made the ordering in the main table easier.
Further splitting of the tables might make it possible to directly index using bits from the TSFlags, but its probably not worth it right now.
llvm-svn: 336075
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index 2d057cf7df6..48f21d2abc8 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -1803,7 +1803,8 @@ MachineInstr *X86InstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI, OpIdx1, OpIdx2); } - const X86InstrFMA3Group *FMA3Group = getFMA3Group(MI.getOpcode()); + const X86InstrFMA3Group *FMA3Group = getFMA3Group(MI.getOpcode(), + MI.getDesc().TSFlags); if (FMA3Group) { unsigned Opc = getFMA3OpcodeToCommuteOperands(MI, OpIdx1, OpIdx2, *FMA3Group); @@ -2039,7 +2040,8 @@ bool X86InstrInfo::findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1, } default: - const X86InstrFMA3Group *FMA3Group = getFMA3Group(MI.getOpcode()); + const X86InstrFMA3Group *FMA3Group = getFMA3Group(MI.getOpcode(), + MI.getDesc().TSFlags); if (FMA3Group) return findThreeSrcCommutedOpIndices(MI, SrcOpIdx1, SrcOpIdx2, FMA3Group->isIntrinsic()); |