aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2020-02-06 10:42:11 -0800
committerCraig Topper <craig.topper@intel.com>2020-02-06 10:43:06 -0800
commit4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e (patch)
treecff7578f67962297ae0fec76d93da8215f425089 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent8d19af685c9b1ba50df0ed739dbfffd0aa7686ee (diff)
downloadllvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.zip
llvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.tar.gz
llvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.tar.bz2
[X86] Custom isel floating point X86ISD::CMP on pre-CMOV targets. Eliminate ConvertCmpIfNecessary
If we don't have cmov, X87 compares write to FPSW and we need to move the bits to EFLAGS to use as JCC/SETCC/CMOV conditions. Previously this was done by calling ConvertCmpIfNecessary in multiple places which would emit the extra code for the FNSTSW, a shift, a truncate, and a SAHF instructions. Isel would then select trunc+X86ISD::CMP to a FUCOM instruction that produces FPSW. This patch centralizes all of the handling into a single custom isel handler. This allows us to remove ConvertCmpIfNecessary and a couple target specific ISD opcodes. Differential Revision: https://reviews.llvm.org/D73863
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions