Revert r152907.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152935 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2012-03-16 18:20:54 +00:00
parent a82d526b31
commit 0ccae0b1f6
2 changed files with 3 additions and 27 deletions
@@ -379,22 +379,10 @@ Instruction *InstCombiner::visitStoreInst(StoreInst &SI) {
unsigned EffectiveStoreAlign = StoreAlign != 0 ? StoreAlign :
TD->getABITypeAlignment(Val->getType());
if (KnownAlign > EffectiveStoreAlign) {
if (KnownAlign > EffectiveStoreAlign)
SI.setAlignment(KnownAlign);
} else if (StoreAlign == 0) {
unsigned PtrAlign = 0;
if (GlobalValue *GV = dyn_cast<GlobalValue>(Ptr->stripPointerCasts()))
PtrAlign = GV->getAlignment();
if (PtrAlign != 0 && PtrAlign < EffectiveStoreAlign)
// The pointer alignment may be less than the effective store
// alignment. If so, then we don't want to increase the alignment here,
// since that could lead to code-gen using instructions which require a
// higher alignment than the pointer guarantees.
SI.setAlignment(PtrAlign);
else
SI.setAlignment(EffectiveStoreAlign);
}
else if (StoreAlign == 0)
SI.setAlignment(EffectiveStoreAlign);
}
// Don't hack volatile/atomic stores.