1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms
Davide Italiano c3b20ee04f [SimplifyLibCalls] New transformation: tan(atan(x)) -> x
This is enabled only under -ffast-math.
So, instead of emitting:
  4007b0:       50                      push   %rax
  4007b1:       e8 8a fd ff ff          callq  400540 <atanf@plt>
  4007b6:       58                      pop    %rax
  4007b7:       e9 94 fd ff ff          jmpq   400550 <tanf@plt>
  4007bc:       0f 1f 40 00             nopl   0x0(%rax)

for:
float mytan(float x) {
  return tanf(atanf(x));
}
we emit a single retq.

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

llvm-svn: 252098
2015-11-04 23:36:56 +00:00
..
ADCE [PM] Port ADCE to the new pass manager 2015-10-30 23:13:18 +00:00
AddDiscriminators Recommit r251680 (also need to update clang test) 2015-10-30 05:07:15 +00:00
AlignmentFromAssumptions
ArgumentPromotion DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
AtomicExpand [ARM] Emit clrex in the expanded cmpxchg fail block. 2015-09-22 17:22:58 +00:00
BBVectorize [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
BDCE
BranchFolding Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
CodeExtractor
CodeGenPrepare [CodegenPrepare] Do not rematerialize gc.relocates across different basic blocks 2015-11-03 18:37:40 +00:00
ConstantHoisting
ConstantMerge [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
ConstProp [test] (NFC) Simplify Transforms/ConstProp/calls.ll 2015-08-28 18:04:20 +00:00
CorrelatedValuePropagation [CVP] Fold return values if possible 2015-11-04 01:43:54 +00:00
DeadArgElim [DeadArgElim] Split the invoke successor edge 2015-09-23 15:41:09 +00:00
DeadStoreElimination [DeadStoreElimination] Remove dead zero store to calloc initialized memory 2015-09-23 11:38:44 +00:00
EarlyCSE [EarlyCSE] Fix handling of target memory intrinsics for CSE'ing loads. 2015-10-07 07:41:29 +00:00
EliminateAvailableExternally
Float2Int
FunctionAttrs [FunctionAttr] Infer nonnull attributes on returns 2015-08-31 19:44:38 +00:00
GCOVProfiling DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
GlobalDCE [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
GlobalOpt GlobalOpt does not treat externally_initialized globals correctly 2015-10-12 13:20:52 +00:00
GVN [GVN] Make a test case more robust 2015-10-28 03:20:05 +00:00
IndVarSimplify Fix PR25372 - teach replaceCongruentPHIs to handle cases where SE evaluates a PHI to a SCEVConstant 2015-11-03 16:27:04 +00:00
Inline [InlineFunction] Correctly inline TerminatePadInst 2015-10-13 22:08:17 +00:00
InstCombine [SimplifyLibCalls] New transformation: tan(atan(x)) -> x 2015-11-04 23:36:56 +00:00
InstMerge
InstSimplify [InstSimplify] sgt on i1s also encodes implication 2015-10-29 03:19:10 +00:00
Internalize [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
IPConstantProp
IRCE
JumpThreading [JumpThreading] Use dominating conditions to prove implications 2015-10-28 21:27:08 +00:00
LCSSA
LICM Revert "r251451 - [AliasSetTracker] Use mod/ref information for UnknownInstr" 2015-10-28 22:13:41 +00:00
LoadCombine
LoopDeletion
LoopDistribute
LoopIdiom Reapply: [LIR] Add support for creating memsets from loops with a negative stride. 2015-10-28 14:38:49 +00:00
LoopInterchange
LoopLoadElim LLE 6/6: Add LoopLoadElimination pass 2015-11-03 23:50:08 +00:00
LoopReroll [LoopReroll] Ignore debug intrinsics 2015-09-28 17:03:23 +00:00
LoopRotate DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopSimplify DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopStrengthReduce [ScalarEvolutionExpander] PHI on a catchpad can be used on both edges 2015-10-27 19:48:28 +00:00
LoopUnroll Revert "[IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader" 2015-11-03 07:14:39 +00:00
LoopUnswitch Teach LoopUnswitch not to perform non-trivial unswitching on loops containing convergent operations. 2015-10-09 18:40:20 +00:00
LoopVectorize LoopVectorizer - skip 'bitcast' between GEP and load. 2015-11-03 10:29:34 +00:00
LowerAtomic
LowerBitSets [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
LowerExpectIntrinsic [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
LowerInvoke
LowerSwitch
Mem2Reg DI: Update tests before adding !dbg subprogram attachments 2015-08-28 23:32:00 +00:00
MemCpyOpt [MemCpyOpt] Fix wrong merging adjacent nontemporal stores into memset calls. 2015-10-09 10:53:41 +00:00
MergeFunc MergeFunctions: Clear GlobalNumbers ValueMap 2015-10-05 17:26:36 +00:00
MetaRenamer [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
NaryReassociate [NaryReassociate] SeenExprs records WeakVH 2015-10-01 03:51:44 +00:00
ObjCARC [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Make the width of a counted loop settable. 2015-09-15 01:42:48 +00:00
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC [RS4GC] Strip noalias attribute after statepoint rewrite 2015-10-26 19:06:01 +00:00
SafeStack [safestack] Fast access to the unsafe stack pointer on AArch64/Android. 2015-10-26 18:28:25 +00:00
SampleProfile SamplePGO - Count sample records in embedded profiles when computing coverage. 2015-10-31 21:53:58 +00:00
Scalarizer DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
ScalarRepl DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
SCCP [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG [SimplifyCFG] Merge conditional stores 2015-11-04 15:28:04 +00:00
Sink
SLPVectorizer [SLP] Be more aggressive about reduction width selection. 2015-10-27 17:59:03 +00:00
SpeculativeExecution
SROA [PM] Port SROA to the new pass manager. 2015-09-12 09:09:14 +00:00
StraightLineStrengthReduce
StripDeadPrototypes [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
StripSymbols DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
StructurizeCFG Fix CHECK directives that weren't checking. 2015-08-31 21:10:35 +00:00
TailCallElim
TailDup
Util