From 0661f67296288ed54d8a7d582db0bf8ddac059b8 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 2 Jul 2018 06:23:39 +0000 Subject: [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 --- llvm/lib/Target/X86/X86InstrInfo.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp') 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()); -- cgit v1.2.3