1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/include/llvm
Sanjay Patel 2e19fa34bb Shrinkify libcalls: use float versions of double libm functions with fast-math (bug 17850)
When a call to a double-precision libm function has fast-math semantics 
(via function attribute for now because there is no IR-level FMF on calls), 
we can avoid fpext/fptrunc operations and use the float version of the call
if the input and output are both float.

We already do this optimization using a command-line option; this patch just
adds the ability for fast-math to use the existing functionality.

I moved the cl::opt from InstructionCombining into SimplifyLibCalls because
it's only ever used internally to that class.

Modified the existing test cases to use the unsafe-fp-math attribute rather
than repeating all tests.

This patch should solve: http://llvm.org/bugs/show_bug.cgi?id=17850

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

llvm-svn: 220390
2014-10-22 15:29:23 +00:00
..
ADT [ADT] Add a 'find_as' operation to DenseSet. 2014-10-19 19:36:33 +00:00
Analysis AssumptionTracker: Don't create temporary CallbackVHs. 2014-10-11 19:13:01 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Spell out the template args for compilers having issues with the injected class 2014-09-15 16:13:33 +00:00
CodeGen Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
Config Re-land r219354: Use llvm-symbolizer to symbolize LLVM/Clang crash dumps. 2014-10-10 22:06:59 +00:00
DebugInfo Constify input argument of RelocVisitor and DWARFContext constructors. NFC. 2014-10-20 20:28:51 +00:00
ExecutionEngine [MCJIT] Turn the getSymbolAddress free function created in r218626 into a static 2014-10-01 04:11:13 +00:00
IR Revert "Teach the load analysis to allow finding available values which require" (r220277) 2014-10-21 23:49:52 +00:00
IRReader Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor
Linker
LTO unique_ptrify LTOCodeGenerator::NativeObjectFile 2014-09-02 18:21:06 +00:00
MC Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
Object [MCJIT] Temporarily revert r220245 - it broke several bots. 2014-10-21 00:24:02 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData InstrProf: Avoid linear search in a hot loop 2014-10-02 17:14:18 +00:00
Support GCC has supported C++11 ref-qualifiers since 4.8.1 2014-10-21 21:15:45 +00:00
TableGen [TableGen] Fully resolve class-instance values before defs in multiclasses 2014-09-16 17:14:13 +00:00
Target Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
Transforms Shrinkify libcalls: use float versions of double libm functions with fast-math (bug 17850) 2014-10-22 15:29:23 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
LinkAllIR.h
LinkAllPasses.h Make AAMDNodes ctor and operator bool (!!!) explicit, mop up bugs and weirdness exposed by it. 2014-10-04 22:44:29 +00:00
module.modulemap [modules] Stop excluding Support/Debug.h from the Support module. This header 2014-10-13 00:41:03 +00:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h [PM] Remove an unused and rather expensive mapping from an analysis 2014-10-06 00:30:59 +00:00
PassSupport.h Defining a new API for debug options that doesn't rely on static global cl::opts. 2014-10-15 21:54:35 +00:00