llvm-6502/lib/VMCore
Rafael Espindola 702bcce747 The dominance computation already has logic for computing if an edge dominates
a use or a BB, but it is inline in the handling of the invoke instruction.

This patch refactors it so that it can be used in other cases. For example, in

define i32 @f(i32 %x) {
bb0:
  %cmp = icmp eq i32 %x, 0
  br i1 %cmp, label %bb2, label %bb1
bb1:
  br label %bb2
bb2:
  %cond = phi i32 [ %x, %bb0 ], [ 0, %bb1 ]
  %foo = add i32 %cond, %x
  ret i32 %foo
}

GVN should be able to replace %x with 0 in any use that is dominated by the
true edge out of bb0. In the above example the only such use is the one in
the phi.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161429 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07 17:30:46 +00:00
..
AsmWriter.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Attributes.cpp switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients. 2012-05-28 01:47:44 +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
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
DIBuilder.cpp Remove trailing comma in array initialization list. 2012-07-06 17:49:19 +00:00
Dominators.cpp The dominance computation already has logic for computing if an edge dominates 2012-08-07 17:30:46 +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
Globals.cpp Clean-up after r159077. 2012-06-23 12:14:23 +00:00
GVMaterializer.cpp
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 warmup ritual: use high-level argument accessors 2010-06-22 19:46:37 +00:00
IRBuilder.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
LeakDetector.cpp Merge System into Support. 2010-11-29 18:16:10 +00:00
LeaksContext.h
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
Makefile Build system infrastructure for multiple tblgens. 2011-10-06 01:51:51 +00:00
Metadata.cpp Move the Metadata merging methods from GVN and make them public in MDNode. 2012-06-16 20:33:37 +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 make the verifier accept @llvm.donothing as the only intrinsic that can be invoked 2012-06-28 22:57:00 +00:00