Go to file
Evan Cheng f3e9a48584 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

llvm-svn: 114372
2010-09-20 22:52:00 +00:00
clang Check in support for OpenCL conditional operator on vector types. 2010-09-20 22:41:17 +00:00
compiler-rt Adds an extra explicit cast to fix Bug 7931 and removes codepaths that were never used 2010-08-17 19:13:45 +00:00
debuginfo-tests test case for r113843. 2010-09-14 20:29:59 +00:00
libcxx Tweak clang support for char16_t/char32_t 2010-09-16 23:27:26 +00:00
lldb Make the short option print out before the long option in the 2010-09-20 21:52:58 +00:00
llvm Enable machine sinking critical edge splitting. e.g. 2010-09-20 22:52:00 +00:00