1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms/LICM
Peter Zotov 7378ca57f0 Mark some FP intrinsics as safe to speculatively execute
Floating point intrinsics in LLVM are generally not speculatively
executed, since most of them are defined to behave the same as libm
functions, which set errno.

However, the only error that can happen  when executing ceil, floor,
nearbyint, rint and round libm functions per POSIX.1-2001 is -ERANGE,
and that requires the maximum value of the exponent to be smaller
than  the number of mantissa bits, which is not the case with any of
the floating point types supported by LLVM.

The trunc and copysign functions never set errno per per POSIX.1-2001.

Differential Revision: http://reviews.llvm.org/D18643

llvm-svn: 265262
2016-04-03 12:30:46 +00:00
..
2003-02-26-LoopExitNotDominated.ll
2003-02-27-NestedLoopExitBlocks.ll
2003-02-27-PreheaderExitNodeUpdate.ll
2003-02-27-PreheaderProblem.ll
2003-02-27-StoreSinkPHIs.ll
2003-02-28-PromoteDifferentType.ll
2003-05-02-LoadHoist.ll
2003-12-11-SinkingToPHI.ll
2004-09-14-AliasAnalysisInvalidate.ll [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
2004-11-17-UndefIndexCrash.ll
2006-09-12-DeadUserOfSunkInstr.ll
2007-05-22-VolatileSink.ll
2007-07-30-AliasSet.ll
2007-09-17-PromoteValue.ll
2007-09-24-PromoteNullValue.ll
2007-10-01-PromoteSafeValue.ll
2008-05-20-AliasSetVAArg.ll
2008-07-22-LoadGlobalConstant.ll
2009-12-10-LICM-Indbr-Crash.ll
2011-04-06-HoistMissedASTUpdate.ll
2011-04-06-PromoteResultOfPromotion.ll
2011-04-09-RAUW-AST.ll
2011-07-06-Alignment.ll
2014-09-10-doFinalizationAssert.ll
alias-set-tracker-loss.ll [LICM] Teach LICM how to handle cases where the alias set tracker was 2016-02-27 04:34:07 +00:00
AliasSetMemSet.ll [AliasSetTracker] Teach AliasSetTracker about MemSetInst 2016-02-17 02:01:50 +00:00
argmemonly-call.ll [LICM] Hoist calls to readonly argmemonly functions even with stores in the loop 2015-09-21 22:27:59 +00:00
atomics.ll
basictest.ll
constexpr.ll
crash.ll
debug-value.ll testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
extra-copies.ll
funclet.ll [LICM] Fix a small oversight introduced in r256763 2016-01-04 23:16:22 +00:00
hoist-bitcast-load.ll
hoist-deref-load.ll [LICM] Keep metadata on control equivalent hoists 2016-01-28 15:51:58 +00:00
hoist-invariant-load.ll [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
hoist-round.ll Mark some FP intrinsics as safe to speculatively execute 2016-04-03 12:30:46 +00:00
hoisting.ll
lcssa-ssa-promoter.ll
no-preheader-test.ll
pr23608.ll Fix CHECK directives that weren't checking. 2015-08-31 21:10:35 +00:00
pr26843.ll [AliasSetTracker] Do not strip pointer casts when processing MemSetInst 2016-03-14 18:34:29 +00:00
PR19798.ll
PR21582.ll
PR24013.ll [LICM] Don't try to sink values out of loops without any exits 2015-07-12 03:53:05 +00:00
preheader-safe.ll
Preserve-LCSSA.ll
promote-order.ll
promote-tls.ll [LICM] Store promotion when memory is thread local 2016-03-09 22:59:30 +00:00
scalar_promote.ll
scalar-promote-memmodel.ll
sinking.ll [LICM] Make instruction sinking funclet-aware 2016-01-04 03:37:39 +00:00
speculate.ll
volatile-alias.ll