LLVM backend for 6502
Go to file
Dan Gohman 3a5797d946 Change how extended types are represented in MVTs. Instead of fiddling
bits, use a union of a SimpleValueType enum and a regular Type*.

This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits.
In most cases, this doesn't add significant overhead. There are places
in codegen that use arrays of MVTs, so these are now larger, but
they're small in common cases.

This eliminates restrictions on the size of integer types and vector
types that can be represented in codegen. As the included testcase
demonstrates, it's now possible to codegen very large add operations.
There are still some complications with using very large types. PR2880
is still open so they can't be used as return values on normal targets,
there are no libcalls defined for very large integers so operations
like multiply and divide aren't supported.

This also introduces a minimal tablgen Type library, capable of
handling IntegerType and VectorType. This will allow parts of
TableGen that don't depend on using SimpleValueType values to handle
arbitrary integer and vector types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58623 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03 17:56:27 +00:00
autoconf [PR2886] Don't look for ocaml's .opt executables; something in the autoconf/test machinery doesn't handle the period properly. 2008-10-22 12:40:40 +00:00
bindings
cmake CMake: Fix some unwanted commentary line wraps on the last change. 2008-10-31 01:37:26 +00:00
docs mention fortran status. 2008-10-30 03:58:13 +00:00
examples CMake: use add_llvm_example for HowToUseJIT. 2008-10-22 02:52:59 +00:00
include Change how extended types are represented in MVTs. Instead of fiddling 2008-11-03 17:56:27 +00:00
lib Change how extended types are represented in MVTs. Instead of fiddling 2008-11-03 17:56:27 +00:00
projects Add "sample" documentation to sample project. 2008-09-15 05:31:29 +00:00
runtime
test Change how extended types are represented in MVTs. Instead of fiddling 2008-11-03 17:56:27 +00:00
tools CMake: Removed some cruft. 2008-10-29 02:33:15 +00:00
utils Change how extended types are represented in MVTs. Instead of fiddling 2008-11-03 17:56:27 +00:00
website
win32 Add a file to VC++ proj. 2008-10-24 10:38:57 +00:00
Xcode Remove Stacker.html from Xcode project. 2008-10-14 23:23:59 +00:00
build-for-llvm-top.sh
CMakeLists.txt Change the name of the generated solution file for a CMake build. (from 'project' to 'LLVM'). 2008-10-30 21:22:00 +00:00
configure Regenerate. 2008-10-22 12:40:55 +00:00
CREDITS.TXT Updated email address. 2008-10-21 19:50:00 +00:00
LICENSE.TXT
llvm.spec.in
Makefile Add support for Canadian Cross builds where the host executables are not 2008-10-02 22:56:44 +00:00
Makefile.common
Makefile.config.in Use spaces rather than tab. 2008-10-22 09:42:14 +00:00
Makefile.rules Comment fix. 2008-11-03 17:33:36 +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.