mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Track IR ordering of SelectionDAG nodes 1/4.
Use a field in the SelectionDAGNode object to track its IR ordering. This adds fields and utility classes without changing existing interfaces or functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182701 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -869,7 +869,7 @@ void SelectionDAGBuilder::clear() {
|
||||
UnusedArgNodeMap.clear();
|
||||
PendingLoads.clear();
|
||||
PendingExports.clear();
|
||||
CurDebugLoc = DebugLoc();
|
||||
CurInst = NULL;
|
||||
HasTailCall = false;
|
||||
}
|
||||
|
||||
@@ -951,14 +951,14 @@ void SelectionDAGBuilder::visit(const Instruction &I) {
|
||||
if (isa<TerminatorInst>(&I))
|
||||
HandlePHINodesInSuccessorBlocks(I.getParent());
|
||||
|
||||
CurDebugLoc = I.getDebugLoc();
|
||||
CurInst = &I;
|
||||
|
||||
visit(I.getOpcode(), I);
|
||||
|
||||
if (!isa<TerminatorInst>(&I) && !HasTailCall)
|
||||
CopyToExportRegsIfNeeded(&I);
|
||||
|
||||
CurDebugLoc = DebugLoc();
|
||||
CurInst = NULL;
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitPHI(const PHINode &) {
|
||||
|
@@ -80,8 +80,8 @@ class ZExtInst;
|
||||
/// implementation that is parameterized by a TargetLowering object.
|
||||
///
|
||||
class SelectionDAGBuilder {
|
||||
/// CurDebugLoc - current file + line number. Changes as we build the DAG.
|
||||
DebugLoc CurDebugLoc;
|
||||
/// CurInst - The current instruction being visited
|
||||
const Instruction *CurInst;
|
||||
|
||||
DenseMap<const Value*, SDValue> NodeMap;
|
||||
|
||||
@@ -327,7 +327,8 @@ public:
|
||||
|
||||
SelectionDAGBuilder(SelectionDAG &dag, FunctionLoweringInfo &funcinfo,
|
||||
CodeGenOpt::Level ol)
|
||||
: SDNodeOrder(0), TM(dag.getTarget()), TLI(dag.getTargetLoweringInfo()),
|
||||
: CurInst(NULL), SDNodeOrder(0), TM(dag.getTarget()),
|
||||
TLI(dag.getTargetLoweringInfo()),
|
||||
DAG(dag), FuncInfo(funcinfo), OptLevel(ol),
|
||||
HasTailCall(false) {
|
||||
}
|
||||
@@ -364,7 +365,14 @@ public:
|
||||
///
|
||||
SDValue getControlRoot();
|
||||
|
||||
DebugLoc getCurDebugLoc() const { return CurDebugLoc; }
|
||||
SDLoc getCurSDLoc() const {
|
||||
assert(CurInst && "CurInst NULL");
|
||||
return SDLoc(CurInst, SDNodeOrder);
|
||||
}
|
||||
|
||||
DebugLoc getCurDebugLoc() const {
|
||||
return CurInst ? CurInst->getDebugLoc() : DebugLoc();
|
||||
}
|
||||
|
||||
unsigned getSDNodeOrder() const { return SDNodeOrder; }
|
||||
|
||||
|
Reference in New Issue
Block a user