Evan Cheng 44be1a8d66 Enable machine sinking critical edge splitting. e.g.
define double @foo(double %x, double %y, i1 %c) nounwind {
  %a = fdiv double %x, 3.2
  %z = select i1 %c, double %a, double %y
  ret double %z
}

Was:
_foo:
        divsd   LCPI0_0(%rip), %xmm0
        testb   $1, %dil
        jne     LBB0_2
        movaps  %xmm1, %xmm0
LBB0_2:
        ret

Now:
_foo:
        testb   $1, %dil
        je      LBB0_2
        divsd   LCPI0_0(%rip), %xmm0
        ret
LBB0_2:
        movaps  %xmm1, %xmm0
        ret

This avoids the divsd when early exit is taken.
rdar://8454886


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-20 22:52:00 +00:00
..
2010-07-13 18:14:47 +00:00
2010-07-16 22:51:10 +00:00
2010-07-10 22:42:12 +00:00
2010-08-30 18:12:35 +00:00
2010-06-14 20:19:03 +00:00
2010-09-17 22:28:18 +00:00
2010-08-17 22:35:20 +00:00
2010-09-17 22:28:18 +00:00
2010-08-15 19:40:29 +00:00
2010-09-17 22:28:18 +00:00
2010-06-03 04:02:59 +00:00
2010-06-09 20:30:22 +00:00