aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2015-01-28 08:03:58 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2015-01-28 08:03:58 +0000
commit45f0448081b922091a246c6e910566ac3cece09a (patch)
tree02996c5f67b9eeddbf275a0c78d33d90dac98483 /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
parent24ea09c20cb30715ad4e144b8368439515e903d0 (diff)
downloadllvm-45f0448081b922091a246c6e910566ac3cece09a.zip
llvm-45f0448081b922091a246c6e910566ac3cece09a.tar.gz
llvm-45f0448081b922091a246c6e910566ac3cece09a.tar.bz2
Fold fcmp in cases where value is provably non-negative. By Arch Robison.
This patch folds fcmp in some cases of interest in Julia. The patch adds a function CannotBeOrderedLessThanZero that returns true if a value is provably not less than zero. I.e. the function returns true if the value is provably -0, +0, positive, or a NaN. The patch extends InstructionSimplify.cpp to fold instances of fcmp where: - the predicate is olt or uge - the first operand is provably not less than zero - the second operand is zero The motivation for handling these cases optimizing away domain checks for sqrt in Julia for common idioms such as sqrt(x*x+y*y).. http://reviews.llvm.org/D6972 llvm-svn: 227298
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h')
0 files changed, 0 insertions, 0 deletions