llvm-6502/lib
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
..
Analysis PR13095: Give an inline cost bonus to functions using byval arguments. 2012-08-07 11:13:19 +00:00
Archive Include cstdio in a few place that depended on getting it transitively through StringExtras.h 2012-03-23 11:35:30 +00:00
AsmParser Extend the IL for selecting TLS models (PR9788) 2012-06-23 11:37:03 +00:00
Bitcode Remove tabs. 2012-07-19 00:15:11 +00:00
CodeGen Add a much more conservative strategy for aligning branch targets. 2012-08-07 09:45:24 +00:00
DebugInfo Fix the representation of debug line table in DebugInfo LLVM library, 2012-08-07 11:46:57 +00:00
ExecutionEngine JIT::runFunction(): add a fast path for functions with a single argument that is a pointer. 2012-08-02 12:09:32 +00:00
Linker Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
MC Keep empty assembly macro argument values in the middle of the list. 2012-07-30 22:44:17 +00:00
Object Reverting r 160419. 2012-07-19 21:43:55 +00:00
Support Add support for the OpenBSD for Bitrig. 2012-08-06 20:52:18 +00:00
TableGen TableGen: Allow use of #NAME# outside of 'def' names. 2012-08-02 18:46:42 +00:00
Target Add a comment about mftb vs. mfspr on PPC. 2012-08-07 17:04:20 +00:00
Transforms Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
VMCore The dominance computation already has logic for computing if an edge dominates 2012-08-07 17:30:46 +00:00
CMakeLists.txt
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile