llvm-project/llvm/lib/VMCore
Rafael Espindola cc80cdebb9 Teach GVN to reason about edges dominating uses. This allows it to handle cases
where some fact lake a=b dominates a use in a phi, but doesn't dominate the
basic block itself.

This feature could also be implemented by splitting critical edges, but at least
with the current algorithm reasoning about the dominance directly is faster.

The time for running "opt -O2" in the testcase in pr10584 is 1.003 times slower
and on gcc as a single file it is 1.0007 times faster.

llvm-svn: 162023
2012-08-16 15:09:43 +00:00
..
AsmWriter.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Attributes.cpp [ms-inline asm] Add a new Inline Asm Non-Standard Dialect attribute. 2012-08-10 00:00:22 +00:00
AutoUpgrade.cpp Fix a dangling StringRef bug in the auto upgrader. In one case, we reset 2012-07-20 21:09:18 +00:00
BasicBlock.cpp Add a constified getLandingPad() method. 2012-01-31 00:26:24 +00:00
CMakeLists.txt Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
ConstantFold.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
ConstantFold.h Convert ConstantFoldGetElementPtr to use ArrayRef. 2011-07-19 15:30:30 +00:00
Constants.cpp Fixed few warnings; trimmed empty lines. 2012-07-13 01:25:27 +00:00
ConstantsContext.h Switch this code to use hash_combine_range rather than incremental calls 2012-03-07 03:22:32 +00:00
Core.cpp Extend the IL for selecting TLS models (PR9788) 2012-06-23 11:37:03 +00:00
DIBuilder.cpp Remove trailing comma in array initialization list. 2012-07-06 17:49:19 +00:00
DebugInfo.cpp Print the name last. 2012-07-06 23:43:12 +00:00
DebugLoc.cpp Pull the simple parts of DenseMapInfo<DebugLoc> inline and prune includes. 2012-07-19 15:00:34 +00:00
Dominators.cpp Teach GVN to reason about edges dominating uses. This allows it to handle cases 2012-08-16 15:09:43 +00:00
Function.cpp move some code around so that Verifier.cpp can get access to the intrinsic info table. 2012-05-27 18:28:35 +00:00
GCOV.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
GVMaterializer.cpp
Globals.cpp Clean-up after r159077. 2012-06-23 12:14:23 +00:00
IRBuilder.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
InlineAsm.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
Instruction.cpp Refactor operation equivalence checking in BBVectorize by extending Instruction::isSameOperationAs. 2012-06-28 05:42:26 +00:00
Instructions.cpp PHINode::hasConstantValue(): return undef if the PHI is fully recursive. 2012-07-03 21:15:40 +00:00
IntrinsicInst.cpp
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LLVMContext.cpp revert r158660, since Chris has some issues with this patch (namely using code to reprent information only used by the compiler) 2012-06-18 23:34:26 +00:00
LLVMContextImpl.cpp Efficient Constant Uniquing. 2012-02-05 20:54:10 +00:00
LLVMContextImpl.h Cache the hash value of the operands in the MDNode. 2012-04-11 14:06:54 +00:00
LeakDetector.cpp Merge System into Support. 2010-11-29 18:16:10 +00:00
LeaksContext.h
Makefile Build system infrastructure for multiple tblgens. 2011-10-06 01:51:51 +00:00
Metadata.cpp Typo. 2012-08-14 01:09:10 +00:00
Module.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Pass.cpp Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. 2012-02-15 03:21:47 +00:00
PassManager.cpp Adding some debug information to PassManager 2012-07-18 19:59:29 +00:00
PassRegistry.cpp Cosmetic changes, as per Nick's review. 2011-09-29 16:46:47 +00:00
PrintModulePass.cpp Now with fewer extraneous semicolons! 2010-10-07 22:25:06 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Postpone the deletion of the old name in StructType::setName to allow using a slice of the old name. 2012-08-04 09:47:02 +00:00
TypeFinder.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Use.cpp Add missing include of <new> 2012-03-26 14:04:17 +00:00
User.cpp Add some missing anchors. 2011-12-01 08:00:17 +00:00
Value.cpp Move CallbackVHs dtor inline, it can be devirtualized in many cases. Move the other virtual methods out of line as they are only called from within Value.cpp anyway. 2012-05-19 19:15:25 +00:00
ValueSymbolTable.cpp eliminate the Type::getDescription() method, using "<<" instead. This 2011-06-18 21:18:23 +00:00
ValueTypes.cpp Add support for v16i32/v16i64 into the code generator. This is required for backends that use i32/i64 vectors for the getSetCCResultType function. 2012-07-26 21:22:00 +00:00
Verifier.cpp Fix a typo that led to a failure to correctly verify bitcast instructions. 2012-08-15 02:37:07 +00:00