diff options
author | Nirav Dave <niravd@google.com> | 2017-05-26 14:37:27 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2017-05-26 14:37:27 +0000 |
commit | 689709c928fc2c1dfead7ffe013a9af9bf6ebc1c (patch) | |
tree | 496c2bac09aafbedb4f3ca57aef312cfbb1aaf16 /llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | |
parent | 90fecdb47cd87c63c62a41e47a969823ef1518d3 (diff) | |
download | bcm5719-llvm-689709c928fc2c1dfead7ffe013a9af9bf6ebc1c.tar.gz bcm5719-llvm-689709c928fc2c1dfead7ffe013a9af9bf6ebc1c.zip |
[DAG] Move legal type checks in store merge to be checked only
on non-legal cases. NFC.
llvm-svn: 303994
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index d3c4da3a588..8d247c89a0a 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -12623,7 +12623,8 @@ bool DAGCombiner::MergeConsecutiveStores(StoreSDNode *St) { IsFast) { LastLegalType = i + 1; // Or check whether a truncstore is legal. - } else if (TLI.getTypeAction(Context, StoreTy) == + } else if (!LegalTypes && + TLI.getTypeAction(Context, StoreTy) == TargetLowering::TypePromoteInteger) { EVT LegalizedStoredValueTy = TLI.getTypeToTransformTo(Context, StoredVal.getValueType()); @@ -12838,7 +12839,8 @@ bool DAGCombiner::MergeConsecutiveStores(StoreSDNode *St) { else if (TLI.getTypeAction(Context, StoreTy) == TargetLowering::TypePromoteInteger) { EVT LegalizedStoredValueTy = TLI.getTypeToTransformTo(Context, StoreTy); - if (TLI.isTruncStoreLegal(LegalizedStoredValueTy, StoreTy) && + if (!LegalTypes && + TLI.isTruncStoreLegal(LegalizedStoredValueTy, StoreTy) && TLI.canMergeStoresTo(FirstStoreAS, LegalizedStoredValueTy) && TLI.isLoadExtLegal(ISD::ZEXTLOAD, LegalizedStoredValueTy, StoreTy) && |