Thread LLVMContext through MVT and related parts of SDISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson
2009-07-09 17:57:24 +00:00
parent 80c8c31782
commit d1474d09cb
25 changed files with 131 additions and 101 deletions

View File

@@ -142,17 +142,19 @@ class CCState {
const TargetMachine &TM;
const TargetRegisterInfo &TRI;
SmallVector<CCValAssign, 16> &Locs;
LLVMContext *Context;
unsigned StackOffset;
SmallVector<uint32_t, 16> UsedRegs;
public:
CCState(unsigned CC, bool isVarArg, const TargetMachine &TM,
SmallVector<CCValAssign, 16> &locs);
SmallVector<CCValAssign, 16> &locs, LLVMContext *C);
void addLoc(const CCValAssign &V) {
Locs.push_back(V);
}
LLVMContext *getContext() const { return Context; }
const TargetMachine &getTarget() const { return TM; }
unsigned getCallingConv() const { return CallingConv; }
bool isVarArg() const { return IsVarArg; }

View File

@@ -78,6 +78,7 @@ class SelectionDAG {
FunctionLoweringInfo &FLI;
MachineModuleInfo *MMI;
DwarfWriter *DW;
LLVMContext* Context;
/// EntryNode - The starting token.
SDNode EntryNode;
@@ -125,7 +126,8 @@ public:
/// init - Prepare this SelectionDAG to process code in the given
/// MachineFunction.
///
void init(MachineFunction &mf, MachineModuleInfo *mmi, DwarfWriter *dw);
void init(MachineFunction &mf, MachineModuleInfo *mmi, DwarfWriter *dw,
LLVMContext* C);
/// clear - Clear state and free memory necessary to make this
/// SelectionDAG ready to process a new block.
@@ -138,6 +140,7 @@ public:
FunctionLoweringInfo &getFunctionLoweringInfo() const { return FLI; }
MachineModuleInfo *getMachineModuleInfo() const { return MMI; }
DwarfWriter *getDwarfWriter() const { return DW; }
LLVMContext *getContext() const {return Context; }
/// viewGraph - Pop up a GraphViz/gv window with the DAG rendered using 'dot'.
///

View File

@@ -23,6 +23,7 @@
namespace llvm {
class Type;
class LLVMContext;
struct MVT { // MVT = Machine Value Type
public:
@@ -487,7 +488,7 @@ namespace llvm {
/// getTypeForMVT - This method returns an LLVM type corresponding to the
/// specified MVT. For integer types, this returns an unsigned type. Note
/// that this will abort for types that cannot be represented.
const Type *getTypeForMVT() const;
const Type *getTypeForMVT(LLVMContext &Context) const;
/// getMVT - Return the value type corresponding to the specified type.
/// This returns all pointers as iPTR. If HandleUnknown is true, unknown