| Index: src/IceCfgNode.h
|
| diff --git a/src/IceCfgNode.h b/src/IceCfgNode.h
|
| index 031c76cf3bc1ebcbf1009db19fc08bc5a3eec6e3..aa836c09b28a5a5f6f5c6d149691db83ad67f030 100644
|
| --- a/src/IceCfgNode.h
|
| +++ b/src/IceCfgNode.h
|
| @@ -46,6 +46,9 @@ public:
|
| void setHasReturn() { HasReturn = true; }
|
| bool getHasReturn() const { return HasReturn; }
|
|
|
| + void setNeedsPlacement(bool Value) { NeedsPlacement = Value; }
|
| + bool needsPlacement() const { return NeedsPlacement; }
|
| +
|
| // Access predecessor and successor edge lists.
|
| const NodeList &getInEdges() const { return InEdges; }
|
| const NodeList &getOutEdges() const { return OutEdges; }
|
| @@ -64,16 +67,19 @@ public:
|
| // Add a predecessor edge to the InEdges list for each of this
|
| // node's successors.
|
| void computePredecessors();
|
| + CfgNode *splitIncomingEdge(CfgNode *Pred, SizeT InEdgeIndex);
|
|
|
| void placePhiLoads();
|
| void placePhiStores();
|
| void deletePhis();
|
| + void advancedPhiLowering();
|
| void doAddressOpt();
|
| void doNopInsertion();
|
| void genCode();
|
| void livenessLightweight();
|
| bool liveness(Liveness *Liveness);
|
| void livenessPostprocess(LivenessMode Mode, Liveness *Liveness);
|
| + void contractIfEmpty();
|
| void doBranchOpt(const CfgNode *NextNode);
|
| void emit(Cfg *Func) const;
|
| void dump(Cfg *Func) const;
|
| @@ -84,6 +90,7 @@ private:
|
| const SizeT Number; // label index
|
| IceString Name; // for dumping only
|
| bool HasReturn; // does this block need an epilog?
|
| + bool NeedsPlacement;
|
| InstNumberT InstCountEstimate; // rough instruction count estimate
|
| NodeList InEdges; // in no particular order
|
| NodeList OutEdges; // in no particular order
|
|
|