LLVM backend for 6502
Go to file
Benjamin Kramer 243018ffcf Emit the LLVM<->DWARF register mapping as a sorted table and use binary search to do the lookup.
This also avoids emitting the information twice, which led to code bloat. On i386-linux-Release+Asserts
with all targets built this change shaves a whopping 1.3 MB off clang. The number is probably exaggerated
by recent inliner changes but the methods were already enormous with the old inline cost computation.

The DWARF reg -> LLVM reg mapping doesn't seem to have holes in it, so it could be a simple lookup table.
I didn't implement that optimization yet to avoid potentially changing functionality.

There is still some duplication both in tablegen and the generated code that should be cleaned up eventually.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153837 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-01 14:23:58 +00:00
autoconf Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
docs Drop O4 from the llc manpage, it was removed in r70445. 2012-03-29 20:40:18 +00:00
examples Switch to a more idiomatic way of silencing unused variable warnings in 2012-02-20 00:02:49 +00:00
include Emit the LLVM<->DWARF register mapping as a sorted table and use binary search to do the lookup. 2012-04-01 14:23:58 +00:00
lib Belatedly address some code review from Chris. 2012-04-01 10:41:24 +00:00
projects Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
runtime Use the correct filename for the error message. 2012-03-28 02:39:06 +00:00
test Add some more testing to cover the remaining two cases where 2012-04-01 10:36:17 +00:00
tools Move trivial functions into the class definition. 2012-03-31 11:25:18 +00:00
unittests I noticed in passing that the Metadata getIfExists method was creating a new 2012-03-31 08:20:11 +00:00
utils Emit the LLVM<->DWARF register mapping as a sorted table and use binary search to do the lookup. 2012-04-01 14:23:58 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt Remove the C backend. 2012-03-23 05:50:46 +00:00
configure Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
CREDITS.TXT sort by alpha. 2012-03-12 21:12:59 +00:00
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Makefile: add missing files to FilesToConfig 2012-01-17 02:56:49 +00:00
Makefile.common
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules Use a posix compliant regexp in export file construction. 2012-03-12 20:58:14 +00:00
README.txt test commit 2012-03-20 13:12:38 +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.

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