llvm-6502/lib
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
..
Analysis [LCG] Add the last (and most complex) of the edge insertion mutation 2014-05-04 09:38:32 +00:00
AsmParser
Bitcode [IR] Make {extract,insert}element accept an index of any integer type. 2014-05-01 22:12:39 +00:00
CodeGen Try simplifying LexicalScopes ownership again. 2014-05-02 22:21:05 +00:00
DebugInfo
ExecutionEngine
IR IR: Cleanup AttributeSet::get for AttrBuilder 2014-05-03 23:00:35 +00:00
IRReader
LineEditor
Linker
LTO Use a range loop. 2014-05-05 20:06:41 +00:00
MC Walk back commits for unused function parameters - they're still being 2014-05-05 23:26:59 +00:00
Object [ELFYAML] Group ELF header falgs to target specific blocks. Handle flags 2014-05-03 11:39:50 +00:00
Option
ProfileData
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
Target Fix typo. 2014-05-05 21:50:57 +00:00
Transforms 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
CMakeLists.txt
LLVMBuild.txt
Makefile