llvm-6502/include/llvm
Nick Lewycky 05da4dd998 Improve 'tail' call marking in TRE. A bootstrap of clang goes from 375k calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'.
The number of tail call to loop conversions remains the same (1618 by my count).

The new algorithm does a local scan over the use-def chains to identify local "alloca-derived" values, as well as points where the alloca could escape. Then, a visit over the CFG marks blocks as being before or after the allocas have escaped, and annotates the calls accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208017 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 23:59:03 +00:00
..
ADT Remove unused field hash_state::seed. 2014-04-30 21:12:17 +00:00
Analysis [LCG] Add the last (and most complex) of the edge insertion mutation 2014-05-04 09:38:32 +00:00
AsmParser
Bitcode Update comment in LLVMBitCodes.h to reflect the actual bitcode record 2014-04-18 18:19:18 +00:00
CodeGen Remove the -disable-cfi option. 2014-05-05 17:33:26 +00:00
Config static link polly into tools 2014-03-14 04:04:14 +00:00
DebugInfo [DWARF parser] Turn DILineInfo into a struct. 2014-04-18 21:36:39 +00:00
ExecutionEngine Fix MSVC build broken by r207580 2014-04-29 22:04:55 +00:00
IR Improve 'tail' call marking in TRE. A bootstrap of clang goes from 375k calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'. 2014-05-05 23:59:03 +00:00
IRReader
LineEditor [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
Linker [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
LTO Rename member variable to try to fix the bots. 2014-05-03 15:28:13 +00:00
MC Walk back commits for unused function parameters - they're still being 2014-05-05 23:26:59 +00:00
Object Add range access to ELFFile's sections collection. 2014-05-05 06:48:34 +00:00
Option Add missing include, found by modules build. 2014-04-24 23:29:25 +00:00
ProfileData OnDiskHashTable: Audit types and use offset_type consistently 2014-04-19 00:33:15 +00:00
Support [Support/MemoryBuffer] Introduce a boolean parameter (false by default) 'IsVolatile' for the open file functions. 2014-05-05 21:55:51 +00:00
TableGen [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 07:20:03 +00:00
Target Fix typo (also tab character). 2014-05-05 21:40:41 +00:00
Transforms Vectorize intrinsic math function calls in SLPVectorizer. 2014-05-03 09:59:54 +00:00
CMakeLists.txt
InitializePasses.h Add an optimization that does CSE in a group of similar GEPs. 2014-05-01 18:38:36 +00:00
LinkAllIR.h
LinkAllPasses.h Add an optimization that does CSE in a group of similar GEPs. 2014-05-01 18:38:36 +00:00
Pass.h [PM] Add pass run listeners to the pass manager. 2014-04-28 18:19:25 +00:00
PassAnalysisSupport.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
PassManager.h
PassRegistry.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
PassSupport.h [PM] Add pass run listeners to the pass manager. 2014-04-28 18:19:25 +00:00