llvm-6502/lib
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
..
Analysis Don't include <fenv.h> now that we have llvm/System/FEnv.h. 2010-09-17 21:47:03 +00:00
Archive Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
AsmParser Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
Bitcode Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
CodeGen Enable machine sinking critical edge splitting. e.g. 2010-09-20 22:52:00 +00:00
CompilerDriver llvmc: make -x work with unknown suffixes. 2010-09-15 15:20:41 +00:00
ExecutionEngine Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
Linker Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
MC Produce a R_X86_64_32 when the value is >=0. 2010-09-20 19:20:47 +00:00
Support Add better support for environment portion of triple. Original patch by 2010-09-16 08:25:48 +00:00
System Fix the "unable to rename temporary" lit test failing on Windows. rename is now copy + delete on Windows. Problem to be revisited for a permanent and clean solution. 2010-09-20 04:03:07 +00:00
Target Simplify ARM callee-saved register handling by removing the distinction 2010-09-20 19:32:20 +00:00
Transforms do not rely on the implicit-dereference semantics of dyn_cast_or_null 2010-09-18 11:55:34 +00:00
VMCore Allow the PassRegistry mutex to be lazily initialized, and clean up the global namespace at the same time. 2010-09-16 23:44:50 +00:00
Makefile