LLVM API Documentation
#include "X86.h"
#include "X86RegisterInfo.h"
#include "X86Subtarget.h"
#include "X86InstrBuilder.h"
#include "X86MachineFunctionInfo.h"
#include "X86TargetMachine.h"
#include "llvm/Constants.h"
#include "llvm/Type.h"
#include "llvm/Function.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineLocation.h"
#include "llvm/Target/TargetFrameInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/ADT/STLExtras.h"
#include <iostream>
#include "X86GenRegisterInfo.inc"
Include dependency graph for X86RegisterInfo.cpp:
Go to the source code of this file.
Namespaces | |
namespace | llvm |
Defines | |
#define | ARRAY_SIZE(TABLE) (sizeof(TABLE)/sizeof(TABLE[0])) |
#define | ASSERT_SORTED(TABLE) |
Functions | |
static MachineInstr * | MakeMInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeMRInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeMRIInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeMIInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeM0Inst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeRMInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static MachineInstr * | MakeRMIInst (unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) |
static bool | TableIsSorted (const TableEntry *Table, unsigned NumEntries) |
static const TableEntry * | TableLookup (const TableEntry *Table, unsigned N, unsigned Opcode) |
static bool | hasFP (MachineFunction &MF) |
unsigned | llvm::getX86SubSuperRegister (unsigned Reg, MVT::ValueType VT, bool High) |
Variables | |
cl::opt< bool > | NoFusing ("disable-spill-fusing", cl::desc("Disable fusing of spill code into instructions")) |
cl::opt< bool > | PrintFailedFusing ("print-failed-fuse-candidates", cl::desc("Print instructions that the allocator wants to"" fuse, but the X86 backend currently can't"), cl::Hidden) |
#define ARRAY_SIZE | ( | TABLE | ) | (sizeof(TABLE)/sizeof(TABLE[0])) |
Definition at line 243 of file X86RegisterInfo.cpp.
#define ASSERT_SORTED | ( | TABLE | ) |
Value:
{ static bool TABLE##Checked = false; \ if (!TABLE##Checked) { \ assert(TableIsSorted(TABLE, ARRAY_SIZE(TABLE)) && \ "All lookup tables must be sorted for efficient access!"); \ TABLE##Checked = true; \ } \ }
Definition at line 249 of file X86RegisterInfo.cpp.
static bool hasFP | ( | MachineFunction & | MF | ) | [static] |
Definition at line 740 of file X86RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::hasVarSizedObjects(), MF, and llvm::NoFramePointerElim.
static MachineInstr* MakeM0Inst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 177 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addImm(), and llvm::BuildMI().
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeMIInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 161 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addGlobalAddress(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addJumpTableIndex(), llvm::BuildMI(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImmedValue(), llvm::MachineOperand::getJumpTableIndex(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isGlobalAddress(), llvm::MachineOperand::isImmediate(), llvm::MachineOperand::isJumpTableIndex(), and MI.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeMInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 143 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), and llvm::BuildMI().
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeMRIInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 154 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and MI.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeMRInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 148 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and MI.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeRMIInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 189 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getUseType(), and MI.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static MachineInstr* MakeRMInst | ( | unsigned | Opcode, | |
unsigned | FrameIndex, | |||
MachineInstr * | MI | |||
) | [static] |
Definition at line 182 of file X86RegisterInfo.cpp.
References llvm::addFrameReference(), llvm::BuildMI(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getUseType(), and MI.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
static bool TableIsSorted | ( | const TableEntry * | Table, | |
unsigned | NumEntries | |||
) | [static] |
TableIsSorted - Return true if the table is in 'from' opcode order.
Definition at line 223 of file X86RegisterInfo.cpp.
References from.
static const TableEntry* TableLookup | ( | const TableEntry * | Table, | |
unsigned | N, | |||
unsigned | Opcode | |||
) | [static] |
TableLookup - Return the table entry matching the specified opcode. Otherwise return NULL.
Definition at line 235 of file X86RegisterInfo.cpp.
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
unsigned from |
Definition at line 205 of file X86RegisterInfo.cpp.
unsigned make |
Definition at line 207 of file X86RegisterInfo.cpp.
cl::opt<bool> NoFusing("disable-spill-fusing", cl::desc("Disable fusing of spill code into instructions")) [static] |
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
cl::opt<bool> PrintFailedFusing("print-failed-fuse-candidates", cl::desc("Print instructions that the allocator wants to"" fuse, but the X86 backend currently can't"), cl::Hidden) [static] |
Referenced by llvm::X86RegisterInfo::foldMemoryOperand().
unsigned to |
Definition at line 206 of file X86RegisterInfo.cpp.