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 [SCEV] Make isImpliedCond smarter. 2015-03-18 00:41:29 +00:00
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 Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor
Linker Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
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 Make getLastArgNoClaim work for up to 4 arguments. 2015-03-20 23:32:58 +00:00
Passes [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
ProfileData InstrProf: Teach llvm-cov to handle universal binaries when given -arch 2015-03-11 02:30:51 +00:00
Support Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
TableGen Remove StringRef->std::string->StringRef conversions. 2015-03-17 21:33:38 +00:00
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 [modules] Mark Analysis/TargetLibraryInfo.def as a textual header. 2015-03-06 23:39:54 +00:00
module.modulemap.build
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 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
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 Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +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