mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
When folding a bitcast into a load or store, preserve the alignment
information of the original load or store, which is checked to be at least as good, and possibly better. llvm-svn: 52849
This commit is contained in:
parent
12944690d5
commit
6b87f869e4
@ -3445,7 +3445,7 @@ SDOperand DAGCombiner::visitBIT_CONVERT(SDNode *N) {
|
||||
if (Align <= OrigAlign) {
|
||||
SDOperand Load = DAG.getLoad(VT, LN0->getChain(), LN0->getBasePtr(),
|
||||
LN0->getSrcValue(), LN0->getSrcValueOffset(),
|
||||
LN0->isVolatile(), Align);
|
||||
LN0->isVolatile(), OrigAlign);
|
||||
AddToWorkList(N);
|
||||
CombineTo(N0.Val, DAG.getNode(ISD::BIT_CONVERT, N0.getValueType(), Load),
|
||||
Load.getValue(1));
|
||||
@ -4547,7 +4547,7 @@ SDOperand DAGCombiner::visitSTORE(SDNode *N) {
|
||||
((!AfterLegalize && !ST->isVolatile()) ||
|
||||
TLI.isOperationLegal(ISD::STORE, SVT)))
|
||||
return DAG.getStore(Chain, Value.getOperand(0), Ptr, ST->getSrcValue(),
|
||||
ST->getSrcValueOffset(), ST->isVolatile(), Align);
|
||||
ST->getSrcValueOffset(), ST->isVolatile(), OrigAlign);
|
||||
}
|
||||
|
||||
// Turn 'store float 1.0, Ptr' -> 'store int 0x12345678, Ptr'
|
||||
|
Loading…
Reference in New Issue
Block a user