Propagate alloca alignment information via variable size object frame

information.

No functional change yet.

llvm-svn: 108583
This commit is contained in:
Eric Christopher 2010-07-17 00:28:22 +00:00
parent 24e3aa011a
commit 0baaa9bcc1
2 changed files with 4 additions and 3 deletions

View File

@ -417,9 +417,10 @@ public:
/// variable sized object is created, whether or not the index returned is
/// actually used.
///
int CreateVariableSizedObject() {
int CreateVariableSizedObject(unsigned Alignment) {
HasVarSizedObjects = true;
Objects.push_back(StackObject(0, 1, 0, false, false));
Objects.push_back(StackObject(0, Alignment, 0, false, false));
MaxAlignment = std::max(MaxAlignment, Alignment);
return (int)Objects.size()-NumFixedObjects-1;
}

View File

@ -2848,7 +2848,7 @@ void SelectionDAGBuilder::visitAlloca(const AllocaInst &I) {
// Inform the Frame Information that we have just allocated a variable-sized
// object.
FuncInfo.MF->getFrameInfo()->CreateVariableSizedObject();
FuncInfo.MF->getFrameInfo()->CreateVariableSizedObject(Align ? Align : 1);
}
void SelectionDAGBuilder::visitLoad(const LoadInst &I) {