llvm-6502/include/llvm
James Molloy a54c5b4489 "float2int": Add a new pass to demote from float to int where possible.
It is possible to have code that converts from integer to float, performs operations then converts back, and the result is provably the same as if integers were used.

This can come from different sources, but the most obvious is a helper function that uses floats but the arguments given at an inlined callsites are integers.

This pass considers all integers requiring a bitwidth less than or equal to the bitwidth of the mantissa of a floating point type (23 for floats, 52 for doubles) as exactly representable in floating point.

To reduce the risk of harming efficient code, the pass only attempts to perform complete removal of inttofp/fptoint operations, not just move them around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233062 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-24 11:15:23 +00:00
..
ADT Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
Analysis
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
CodeGen Change getISAEncoding to use the target triple to determine 2015-03-21 03:13:01 +00:00
Config Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
DebugInfo DWARFDebugRangeList: make the list of entries available to clients. 2015-03-13 23:30:07 +00:00
ExecutionEngine [Orc] Move delta-handling for trampoline sizes into the resolver block. 2015-03-24 04:27:02 +00:00
IR Remove dead prototype DebugInfoFinder::processExpression(), NFC 2015-03-23 22:10:27 +00:00
IRReader
LineEditor
Linker
LTO libLTO, llvm-lto, gold: Introduce flag for controlling optimization level. 2015-03-19 22:01:00 +00:00
MC Use std::bitset for SubtargetFeatures 2015-03-24 09:17:25 +00:00
Object Refactor: simplify boolean expressions in llvm-objdump 2015-03-23 18:39:02 +00:00
Option
Passes
ProfileData
Support Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
TableGen
Target Fix sign extension for MIPS64 in makeLibCall function 2015-03-23 12:28:13 +00:00
Transforms "float2int": Add a new pass to demote from float to int where possible. 2015-03-24 11:15:23 +00:00
CMakeLists.txt
InitializePasses.h "float2int": Add a new pass to demote from float to int where possible. 2015-03-24 11:15:23 +00:00
LinkAllIR.h
LinkAllPasses.h "float2int": Add a new pass to demote from float to int where possible. 2015-03-24 11:15:23 +00:00
module.modulemap
module.modulemap.build [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Pass.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassAnalysisSupport.h
PassInfo.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassRegistry.h
PassSupport.h