diff options
author | Sanjay Patel <spatel@rotateright.com> | 2019-05-02 14:47:59 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2019-05-02 14:47:59 +0000 |
commit | 284472be6da3353d81dfd25b1ac4218e852d1e5f (patch) | |
tree | cb2d7ce58399facb3870f7cfcfe648fdf1f35f9b /llvm/lib/Target/AMDGPU/SIISelLowering.cpp | |
parent | 8e6bf88cf763e7e5baa9b9745fe4616298040e4c (diff) | |
download | bcm5719-llvm-284472be6da3353d81dfd25b1ac4218e852d1e5f.tar.gz bcm5719-llvm-284472be6da3353d81dfd25b1ac4218e852d1e5f.zip |
[SelectionDAG] remove constant folding limitations based on FP exceptions
We don't have FP exception limits in the IR constant folder for the binops (apart from strict ops),
so it does not make sense to have them here in the DAG either. Nothing else in the backend tries
to preserve exceptions (again outside of strict ops), so I don't see how this could have ever
worked for real code that cares about FP exceptions.
There are still cases (examples: unary opcodes in SDAG, FMA in IR) where we are trying (at least
partially) to preserve exceptions without even asking if the target supports FP exceptions. Those
should be corrected in subsequent patches.
Real support for FP exceptions requires several changes to handle the constrained/strict FP ops.
Differential Revision: https://reviews.llvm.org/D61331
llvm-svn: 359791
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index d876acd7eae..7de4dd95e3b 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -729,11 +729,6 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM, setTargetDAGCombine(ISD::ATOMIC_LOAD_FADD); setSchedulingPreference(Sched::RegPressure); - - // SI at least has hardware support for floating point exceptions, but no way - // of using or handling them is implemented. They are also optional in OpenCL - // (Section 7.3) - setHasFloatingPointExceptions(Subtarget->hasFPExceptions()); } const GCNSubtarget *SITargetLowering::getSubtarget() const { |