LLVM backend for 6502
Go to file
Dale Johannesen 4150d83abe Make the implicit inputs and outputs of target-independent
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to)
instead of MVT::Flag.  Remove CARRY_FALSE in favor of 0; adjust
all target-independent code to use this format.

Most targets will still produce a Flag-setting target-dependent
version when selection is done.  X86 is converted to use i32
instead, which means TableGen needs to produce different code
in xxxGenDAGISel.inc.  This keys off the new supportsHasI1 bit
in xxxInstrInfo, currently set only for X86; in principle this
is temporary and should go away when all other targets have
been converted.  All relevant X86 instruction patterns are
modified to represent setting and using EFLAGS explicitly.  The
same can be done on other targets.

The immediate behavior change is that an ADC/ADD pair are no
longer tightly coupled in the X86 scheduler; they can be
separated by instructions that don't clobber the flags (MOV).
I will soon add some peephole optimizations based on using
other instructions that set the flags to feed into ADC.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:27:20 +00:00
autoconf Split the ENABLE_THREADS #define in two. Now ENABLE_THREADS indicates the ability to run multiple threads at once in the JIT, and requires only 2009-05-19 22:18:56 +00:00
bindings Give embedded metadata its own type instead of relying on EmptyStructTy. 2009-05-30 05:06:04 +00:00
cmake CMake: Set LIBS on llvm-config so we can query the system libraries 2009-05-27 15:49:33 +00:00
docs Metadata uses metadata type not empty struct. 2009-05-30 16:08:30 +00:00
examples silence a warning. 2009-04-15 00:16:05 +00:00
include Make the implicit inputs and outputs of target-independent 2009-06-01 23:27:20 +00:00
lib Make the implicit inputs and outputs of target-independent 2009-06-01 23:27:20 +00:00
projects Revert r67655 and r67656, as they are breaking the build. I'm 2009-03-25 00:52:11 +00:00
runtime
test PR4286: Make RewriteLoadUserOfWholeAlloca and 2009-06-01 09:14:32 +00:00
tools <rdar://problem/6927148> libLTO needs to handle i386 magic objc class symbols 2009-06-01 20:33:09 +00:00
unittests Give embedded metadata its own type instead of relying on EmptyStructTy. 2009-05-30 05:06:04 +00:00
utils Make the implicit inputs and outputs of target-independent 2009-06-01 23:27:20 +00:00
website
win32 Add a new codegen pass that normalizes dwarf exception handling 2009-05-22 20:36:31 +00:00
Xcode
build-for-llvm-top.sh
CMakeLists.txt CMake: Added notes pointing to the LLVM CMake documentation. 2009-04-04 22:52:02 +00:00
configure Split the ENABLE_THREADS #define in two. Now ENABLE_THREADS indicates the ability to run multiple threads at once in the JIT, and requires only 2009-05-19 22:18:56 +00:00
CREDITS.TXT Use latin symbols. I was told not everybody has a UTF-8 capable editor. 2009-05-23 20:40:47 +00:00
LICENSE.TXT Now that we have atomics support properly detected by configure, 2009-05-19 00:08:29 +00:00
llvm.spec.in
Makefile Change 'make install' to install tblgen, for better support of out-of-tree targets, 2009-05-08 17:32:47 +00:00
Makefile.common
Makefile.config.in Add a --enable-profiling option to configure to build Debug+Profile and 2009-04-17 14:49:22 +00:00
Makefile.rules For the new ar --plugin libLLVMgold.so to work we need libLTO linked with 2009-05-26 19:11:47 +00:00
ModuleInfo.txt
README.txt README.txt: test commit w/blank line appended 2009-03-23 21:00:45 +00:00

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.