llvm-project/llvm/test
Matthew Simpson cb35c5d5c2 [ICP] Expose unconditional call promotion interface
This patch modifies the indirect call promotion utilities by exposing and using
an unconditional call promotion interface. The unconditional promotion
interface (i.e., call promotion without creating an if-then-else) can be used
if it's known that an indirect call has only one possible callee. The existing
conditional promotion interface uses this unconditional interface to promote an
indirect call after it has been versioned and placed within the "then" block.

A consequence of unconditional promotion is that the fix-up operations for phi
nodes in the normal destination of invoke instructions are changed. This is
necessary because the existing implementation assumed that an invoke had been
versioned, creating a "merge" block where a return value bitcast could be
placed. In the new implementation, the edge between a promoted invoke's parent
block and its normal destination is split if needed to add a bitcast for the
return value. If the invoke is also versioned, the phi node merging the return
value of the promoted and original invoke instructions is placed in the "merge"
block.

Differential Revision: https://reviews.llvm.org/D40751

llvm-svn: 321210
2017-12-20 19:26:37 +00:00
..
Analysis Give up on array allocas in getPointerDereferenceableBytes 2017-12-20 10:01:30 +00:00
Assembler [ConstantFold] Support vector index when factoring out GEP index into preceding dimensions 2017-12-04 19:56:33 +00:00
Bindings
Bitcode Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
BugPoint
CodeGen [X86] Remove zext from vXi32 to vXi64 on indices of gather/scatter instructions if we can prove the pre-extended value is positive. 2017-12-20 19:25:33 +00:00
DebugInfo Revert "Fix faulty assertion in debug info" 2017-12-19 23:34:37 +00:00
Examples
ExecutionEngine [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
Feature
FileCheck
Instrumentation [hwasan] Implement -fsanitize-recover=hwaddress. 2017-12-20 19:05:44 +00:00
Integer
JitListener
LTO [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
Linker
MC [AMDGPU, AsmParser] Enable the mnemonic spell corrector. 2017-12-20 18:52:57 +00:00
Object Add flag to ArchiveWriter to test GNU64 format more efficiently 2017-12-01 00:54:28 +00:00
ObjectYAML [WebAssembly] Add support for init functions linking metadata 2017-12-14 21:10:03 +00:00
Other Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
SafepointIRVerifier [SafepointIRVerifier] Allow deriving pointers from unrelocated base 2017-12-05 21:39:37 +00:00
SymbolRewriter
TableGen [globalisel][tablegen] Allow ImmLeaf predicates to use InstructionSelector members 2017-12-20 14:41:51 +00:00
ThinLTO/X86 [Support][CachePruning] Disable cache pruning regression fix 2017-12-19 14:42:38 +00:00
Transforms [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
Unit
Verifier [Verifier] Check that GEP indexes has correct types 2017-12-14 09:33:58 +00:00
YAMLParser
tools [dwarfdump][test] Add test case for r321064 2017-12-19 19:42:32 +00:00
.clang-format
CMakeLists.txt [llvm-opt-fuzzer] Add opt fuzzer to the test-depends list. 2017-11-15 15:07:37 +00:00
TestRunner.sh
lit.cfg.py Add opt-viewer testing 2017-11-29 17:07:41 +00:00
lit.site.cfg.py.in Add opt-viewer testing 2017-11-29 17:07:41 +00:00