diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZISelLowering.h')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.h b/llvm/lib/Target/SystemZ/SystemZISelLowering.h index a8ddb8c62d18..de446f33f5f1 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.h +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.h @@ -443,6 +443,11 @@ public: EVT VT) const override; bool isFPImmLegal(const APFloat &Imm, EVT VT, bool ForCodeSize) const override; + bool ShouldShrinkFPConstant(EVT VT) const override { + // Do not shrink 64-bit FP constpool entries since LDEB is slower than + // LD, and having the full constant in memory enables reg/mem opcodes. + return VT != MVT::f64; + } bool hasInlineStackProbe(MachineFunction &MF) const override; bool isLegalICmpImmediate(int64_t Imm) const override; bool isLegalAddImmediate(int64_t Imm) const override; |
