forked from OSchip/llvm-project
* Combines Alignment, AuxInfo, and TB_NOT_REVERSABLE flag into a
single field (Flags), which is a bitwise OR of items from the TB_* enum. This makes it easier to add new information in the future. * Gives every static array an equivalent layout: { RegOp, MemOp, Flags } * Adds a helper function, AddTableEntry, to avoid duplication of the insertion code. * Renames TB_NOT_REVERSABLE to TB_NO_REVERSE. * Adds TB_NO_FORWARD, which is analogous to TB_NO_REVERSE, except that it prevents addition of the Reg->Mem entry. (This is going to be used by Native Client, in the next CL). Patch by David Meyer llvm-svn: 139311
This commit is contained in:
parent
2d3f70ac1c
commit
23eb5265b4
File diff suppressed because it is too large
Load Diff
|
@ -131,14 +131,22 @@ class X86InstrInfo : public X86GenInstrInfo {
|
|||
/// RegOp2MemOpTable2Addr, RegOp2MemOpTable0, RegOp2MemOpTable1,
|
||||
/// RegOp2MemOpTable2 - Load / store folding opcode maps.
|
||||
///
|
||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable2Addr;
|
||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable0;
|
||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable1;
|
||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable2;
|
||||
typedef DenseMap<unsigned,
|
||||
std::pair<unsigned, unsigned> > RegOp2MemOpTableType;
|
||||
RegOp2MemOpTableType RegOp2MemOpTable2Addr;
|
||||
RegOp2MemOpTableType RegOp2MemOpTable0;
|
||||
RegOp2MemOpTableType RegOp2MemOpTable1;
|
||||
RegOp2MemOpTableType RegOp2MemOpTable2;
|
||||
|
||||
/// MemOp2RegOpTable - Load / store unfolding opcode map.
|
||||
///
|
||||
DenseMap<unsigned, std::pair<unsigned, unsigned> > MemOp2RegOpTable;
|
||||
typedef DenseMap<unsigned,
|
||||
std::pair<unsigned, unsigned> > MemOp2RegOpTableType;
|
||||
MemOp2RegOpTableType MemOp2RegOpTable;
|
||||
|
||||
void AddTableEntry(RegOp2MemOpTableType &R2MTable,
|
||||
MemOp2RegOpTableType &M2RTable,
|
||||
unsigned RegOp, unsigned MemOp, unsigned Flags);
|
||||
|
||||
public:
|
||||
explicit X86InstrInfo(X86TargetMachine &tm);
|
||||
|
|
Loading…
Reference in New Issue