mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-25 14:32:53 +00:00
b5c82c079a
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227298 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
2010-12-20-Boolean.ll | ||
2011-01-14-Thread.ll | ||
2011-02-01-Vector.ll | ||
2011-09-05-InsertExtractValue.ll | ||
2011-10-27-BinOpCrash.ll | ||
2011-11-23-MaskedBitsCrash.ll | ||
2013-04-19-ConstantFoldingCrash.ll | ||
AndOrXor.ll | ||
apint-or.ll | ||
assume.ll | ||
call-callconv.ll | ||
call.ll | ||
compare.ll | ||
dead-code-removal.ll | ||
exact-nsw-nuw.ll | ||
fast-math.ll | ||
fdiv.ll | ||
floating-point-arithmetic.ll | ||
floating-point-compare.ll | ||
fold-builtin-fma.ll | ||
gep.ll | ||
maxmin.ll | ||
noalias-ptr.ll | ||
past-the-end.ll | ||
phi.ll | ||
ptr_diff.ll | ||
reassociate.ll | ||
rem.ll | ||
select.ll | ||
shr-nop.ll | ||
undef.ll | ||
vector_gep.ll | ||
vector_ptr_bitcast.ll |