From 3cc6cb1d3553df2bae730a31233e6e46f9697377 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 25 Jun 2018 17:26:56 +0000 Subject: [X86] Sort the static memory folding tables by reg opcode. Remove the reg->mem DenseMaps in favor of binary search. With the static tables sorted we can binary search them directly for reg->mem lookups. This removes 6 DenseMaps that had to be created when X86InstrInfo is constructed. We still have one Mem->Reg DenseMap for the reverse direction. This is created just as before by walking the reg->mem arrays to populate it. Differential Revision: https://reviews.llvm.org/D48527 llvm-svn: 335501 --- llvm/lib/Target/X86/X86InstrInfo.h | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'llvm/lib/Target/X86/X86InstrInfo.h') diff --git a/llvm/lib/Target/X86/X86InstrInfo.h b/llvm/lib/Target/X86/X86InstrInfo.h index 98e08bbb9bf..8fee1d950df 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.h +++ b/llvm/lib/Target/X86/X86InstrInfo.h @@ -168,26 +168,13 @@ class X86InstrInfo final : public X86GenInstrInfo { X86Subtarget &Subtarget; const X86RegisterInfo RI; - /// RegOp2MemOpTable3Addr, RegOp2MemOpTable0, RegOp2MemOpTable1, - /// RegOp2MemOpTable2, RegOp2MemOpTable3 - Load / store folding opcode maps. - /// - typedef DenseMap> - RegOp2MemOpTableType; - RegOp2MemOpTableType RegOp2MemOpTable2Addr; - RegOp2MemOpTableType RegOp2MemOpTable0; - RegOp2MemOpTableType RegOp2MemOpTable1; - RegOp2MemOpTableType RegOp2MemOpTable2; - RegOp2MemOpTableType RegOp2MemOpTable3; - RegOp2MemOpTableType RegOp2MemOpTable4; - /// MemOp2RegOpTable - Load / store unfolding opcode map. /// typedef DenseMap> MemOp2RegOpTableType; MemOp2RegOpTableType MemOp2RegOpTable; - static void AddTableEntry(RegOp2MemOpTableType &R2MTable, - MemOp2RegOpTableType &M2RTable, uint16_t RegOp, + static void AddTableEntry(MemOp2RegOpTableType &M2RTable, uint16_t RegOp, uint16_t MemOp, uint16_t Flags); virtual void anchor(); -- cgit v1.2.3