| Index: src/IceTargetLowering.h
|
| diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
|
| index e46399d311e6aa73ffc7d8e658c772df3b194b4a..7aa24832a0089fae0f6d099564388f3055395307 100644
|
| --- a/src/IceTargetLowering.h
|
| +++ b/src/IceTargetLowering.h
|
| @@ -64,6 +64,7 @@ public:
|
| Inst *getLastInserted() const;
|
| void advanceCur() { Cur = Next; }
|
| void advanceNext() { advanceForward(Next); }
|
| + void rewind();
|
| void setInsertPoint(const InstList::iterator &Position) { Next = Position; }
|
|
|
| private:
|
| @@ -134,8 +135,18 @@ public:
|
| void doAddressOpt();
|
| // Randomly insert NOPs.
|
| void doNopInsertion();
|
| - // Lowers a single instruction.
|
| + // Lowers a single non-Phi instruction.
|
| void lower();
|
| + // 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*/) {
|
|
|