LLVM backend for 6502
Go to file
Chris Lattner 80e8b506b8 rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte
constant, including globals.  This makes us generate much more "pretty" pattern
globals as well because it doesn't break it down to an array of bytes all the
time.

This enables us to handle stores of relocatable globals.  This kicks in about
48 times in 254.gap, giving us stuff like this:

@.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct
.TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16

...
  call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8*
), i64 %tmp75) nounwind



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126044 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19 19:56:44 +00:00
autoconf lib/Support/Errno.cpp: Check strerror_s() with HAVE_DECL_STRERROR_S in config.h.*. 2011-02-09 04:18:48 +00:00
bindings Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
cmake Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to clean 2011-02-19 18:01:15 +00:00
docs Fix thinko, basic blocks are SESE. The exits may have many edges though. 2011-02-17 02:19:22 +00:00
examples Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
include Allow getting the address of the value in a PointerUnion or PointerIntPair if one is 2011-02-19 03:55:58 +00:00
lib rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte 2011-02-19 19:56:44 +00:00
projects
runtime
test rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte 2011-02-19 19:56:44 +00:00
tools Make "-opt [-emit-llvm]" work for .ll files. 2011-02-19 00:33:27 +00:00
unittests Adds llvm::sys::path::is_separator() to test whether a char is a path separator 2011-02-11 21:24:40 +00:00
utils CMake: updated list of tblgen source files. 2011-02-18 22:06:23 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt Move library stuff out of the toplevel CMakeLists.txt file. 2011-02-18 22:06:14 +00:00
configure lib/Support/Errno.cpp: Check strerror_s() with HAVE_DECL_STRERROR_S in config.h.*. 2011-02-09 04:18:48 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Factor the computation of the basename of libraries. This avoids renaming 2011-02-03 22:01:15 +00:00
ModuleInfo.txt
README.txt Test commit. 2011-02-11 19:11:57 +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.