LLVM backend for 6502
Go to file
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
autoconf Attempt to support platforms which don't have fenv.h. 2010-09-17 20:06:27 +00:00
bindings Remove the Ada bindings which are unmaintained and unused. The project which 2010-09-15 08:17:10 +00:00
cmake cmake: test for the presence of fenv.h 2010-09-17 20:30:48 +00:00
docs docs: Tweak wording. 2010-09-18 08:32:32 +00:00
examples Removed TracingBrainF from examples Makefile. 2010-09-15 14:55:32 +00:00
include Relax this check to silently swallow FE_INEXACT, following directions 2010-09-20 22:32:25 +00:00
lib Enable machine sinking critical edge splitting. e.g. 2010-09-20 22:52:00 +00:00
projects projects: Don't try to build libcxx if one happens to have it checked out into 2010-09-09 15:49:32 +00:00
runtime Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. 2010-09-03 15:42:45 +00:00
test Enable machine sinking critical edge splitting. e.g. 2010-09-20 22:52:00 +00:00
tools llvm-mc: Teach -as-lex to print more token kinds. 2010-09-16 00:42:35 +00:00
unittests Add better support for environment portion of triple. Original patch by 2010-09-16 08:25:48 +00:00
utils Using regexp-opt for keyword regex declarations makes the word lists more 2010-09-19 03:44:22 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 2010-09-13 23:59:48 +00:00
configure Regenerate. 2010-09-17 20:08:35 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules build: Add support for a TOOL_ORDER_FILE variable so commands can build with an 2010-09-16 00:42:32 +00:00
ModuleInfo.txt
README.txt

\Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.