Index: src/IceCfg.h |
diff --git a/src/IceCfg.h b/src/IceCfg.h |
index 37c6eb7fb93ef3085e69187d5a58294b60d254b5..92a16809787878c0ff82fc75c77211a926f2e21e 100644 |
--- a/src/IceCfg.h |
+++ b/src/IceCfg.h |
@@ -185,10 +185,19 @@ public: |
void advancedPhiLowering(); |
void reorderNodes(); |
void shuffleNodes(); |
- void sortAllocas(CfgVector<Inst *> &Allocas, InstList &Insts, |
- bool IsKnownFrameOffset); |
- /// Merge all the fixed-size allocas in the entry block. |
- void processAllocas(); |
+ |
+ enum AllocaBaseVariableType { |
+ BVT_StackPointer, |
+ BVT_FramePointer, |
+ BVT_UserPointer |
+ }; |
+ void sortAndCombineAllocas(CfgVector<Inst *> &Allocas, |
+ uint32_t CombinedAlignment, InstList &Insts, |
+ AllocaBaseVariableType BaseVariableType); |
+ /// Scan allocas to determine whether we need to use a frame pointer. |
+ /// If SortAndCombine == true, merge all the fixed-size allocas in the |
+ /// entry block and emit stack or frame pointer-relative addressing. |
+ void processAllocas(bool SortAndCombine); |
void doAddressOpt(); |
void doArgLowering(); |
void doNopInsertion(); |