| Index: src/IceCfgNode.h
|
| diff --git a/src/IceCfgNode.h b/src/IceCfgNode.h
|
| index bf96aefc23731c42777d901f0dfd6f5f874f2e7e..645dc573a8d281ed45d037918dbc697bc02fc6a4 100644
|
| --- a/src/IceCfgNode.h
|
| +++ b/src/IceCfgNode.h
|
| @@ -29,6 +29,14 @@ public:
|
| // Access the label number and name for this node.
|
| SizeT getIndex() const { return Number; }
|
| IceString getName() const;
|
| + IceString getAsmName() const {
|
| + return ".L" + Func->getFunctionName() + "$" + getName();
|
| + }
|
| +
|
| + // The HasReturn flag indicates that this node contains a return
|
| + // instruction and therefore needs an epilog.
|
| + void setHasReturn() { HasReturn = true; }
|
| + bool getHasReturn() const { return HasReturn; }
|
|
|
| // Access predecessor and successor edge lists.
|
| const NodeList &getInEdges() const { return InEdges; }
|
| @@ -42,6 +50,11 @@ public:
|
| // node's successors.
|
| void computePredecessors();
|
|
|
| + void placePhiLoads();
|
| + void placePhiStores();
|
| + void deletePhis();
|
| + void genCode();
|
| + void emit(Cfg *Func) const;
|
| void dump(Cfg *Func) const;
|
|
|
| private:
|
| @@ -51,6 +64,7 @@ private:
|
| Cfg *const Func;
|
| const SizeT Number; // label index
|
| IceString Name; // for dumping only
|
| + bool HasReturn; // does this block need an epilog?
|
| NodeList InEdges; // in no particular order
|
| NodeList OutEdges; // in no particular order
|
| PhiList Phis; // unordered set of phi instructions
|
|
|