summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-04-22 16:43:53 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-04-22 16:43:53 +0000
commit4fa2a9f7fd9bae436683861ccce84976cf2f82a1 (patch)
treeadeadc86ae04fcf8db9153457ad5b024b47188b6 /llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
parente169e8206bfcdb7ed5cff7ecc9dbe97ca5e1a1c9 (diff)
downloadbcm5719-llvm-4fa2a9f7fd9bae436683861ccce84976cf2f82a1.tar.gz
bcm5719-llvm-4fa2a9f7fd9bae436683861ccce84976cf2f82a1.zip
[Hexagon] Overhaul of stack object allocation
- Use static allocation for aligned stack objects. - Simplify dynamic stack object allocation. - Simplify elimination of frame-indices. llvm-svn: 235521
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h b/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
index cb18df6ed19..76723586c66 100644
--- a/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
+++ b/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
@@ -27,6 +27,7 @@ class HexagonMachineFunctionInfo : public MachineFunctionInfo {
// returning the value of the returned struct in a register. This field
// holds the virtual register into which the sret argument is passed.
unsigned SRetReturnReg;
+ unsigned StackAlignBaseReg;
std::vector<MachineInstr*> AllocaAdjustInsts;
int VarArgsFrameIndex;
bool HasClobberLR;
@@ -35,10 +36,11 @@ class HexagonMachineFunctionInfo : public MachineFunctionInfo {
virtual void anchor();
public:
- HexagonMachineFunctionInfo() : SRetReturnReg(0), HasClobberLR(0),
- HasEHReturn(false) {}
+ HexagonMachineFunctionInfo() : SRetReturnReg(0), StackAlignBaseReg(0),
+ HasClobberLR(0), HasEHReturn(false) {}
HexagonMachineFunctionInfo(MachineFunction &MF) : SRetReturnReg(0),
+ StackAlignBaseReg(0),
HasClobberLR(0),
HasEHReturn(false) {}
@@ -74,6 +76,9 @@ public:
bool hasEHReturn() const { return HasEHReturn; };
void setHasEHReturn(bool H = true) { HasEHReturn = H; };
+
+ void setStackAlignBaseVReg(unsigned R) { StackAlignBaseReg = R; }
+ unsigned getStackAlignBaseVReg() const { return StackAlignBaseReg; }
};
} // End llvm namespace
OpenPOWER on IntegriCloud