Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: src/IceTargetLowering.h

Issue 1253833002: Subzero: Cleanly implement register allocation after phi lowering. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Cleanup Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/IceTargetLowering.h
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index e87bf936bbea58ec92b84e5f3236671e90337197..018a5556811e1e72072de435ede144e484958961 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -63,6 +63,8 @@ public:
Inst *getLastInserted() const;
void advanceCur() { Cur = Next; }
void advanceNext() { advanceForward(Next); }
+ void setCur(InstList::iterator C) { Cur = C; }
+ void setNext(InstList::iterator N) { Next = N; }
void rewind();
void setInsertPoint(const InstList::iterator &Position) { Next = Position; }
@@ -136,16 +138,15 @@ public:
void doNopInsertion();
/// Lowers a single non-Phi instruction.
void lower();
+ /// Inserts and lowers a single high-level instruction at a specific insertion
+ /// point.
+ void lowerInst(CfgNode *Node, InstList::iterator Next, InstHighLevel *Instr);
/// Does preliminary lowering of the set of Phi instructions in the
/// current node. The main intention is to do what's needed to keep
/// the unlowered Phi instructions consistent with the lowered
/// non-Phi instructions, e.g. to lower 64-bit operands on a 32-bit
/// target.
virtual void prelowerPhis() {}
- /// Lowers a list of "parallel" assignment instructions representing
- /// a topological sort of the Phi instructions.
- virtual void lowerPhiAssignments(CfgNode *Node,
- const AssignList &Assignments) = 0;
/// Tries to do branch optimization on a single instruction. Returns
/// true if some optimization was done.
virtual bool doBranchOpt(Inst * /*I*/, const CfgNode * /*NextNode*/) {

Powered by Google App Engine
This is Rietveld 408576698