mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
Avoid store merge to f128 in context of noimpiccitfloat NFCI.
Prevent store merge from merging stores into an invalid 128-bit store (realized as a f128 value in the context of the noimplicitfloat attribute). Previously, such stores are immediately split back into valid stores. llvm-svn: 308184
This commit is contained in:
parent
722ca4e706
commit
9af064f149
@ -408,6 +408,19 @@ public:
|
||||
|
||||
bool isIntDivCheap(EVT VT, AttributeList Attr) const override;
|
||||
|
||||
bool canMergeStoresTo(unsigned AddressSpace, EVT MemVT,
|
||||
const SelectionDAG &DAG) const override {
|
||||
// Do not merge to float value size (128 bytes) if no implicit
|
||||
// float attribute is set.
|
||||
|
||||
bool NoFloat = DAG.getMachineFunction().getFunction()->hasFnAttribute(
|
||||
Attribute::NoImplicitFloat);
|
||||
|
||||
if (NoFloat)
|
||||
return (MemVT.getSizeInBits() <= 64);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isCheapToSpeculateCttz() const override {
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user