LLVM backend for 6502
Go to file
Victor Hernandez 2491ce0353 Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper
identifying the malloc as a non-array malloc.  This broke GlobalOpt's optimization of stores of mallocs 
to global variables.

The fix is to classify malloc's into 3 categories:
1. non-array mallocs
2. array mallocs whose array size can be determined
3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized

getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their 
malloc optimization if this function returns NULL.

Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in
isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84199 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-15 20:14:52 +00:00
autoconf Undo pthread patch from rev. 83930 & 83823. Credit to Paul Davey. 2009-10-14 11:12:33 +00:00
bindings Expose the rest of the attribute settings. 2009-09-28 04:42:47 +00:00
cmake Fix LLVM CMake build system so that it may now work on Solaris and AuroraUX. 2009-10-12 04:00:11 +00:00
docs The gcc plugin is now called dragonegg.so and no longer llvm.so. 2009-10-15 08:17:44 +00:00
examples Make ParallelJIT pthreads linking with CMake slightly less broken 2009-10-12 04:00:13 +00:00
include Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper 2009-10-15 20:14:52 +00:00
lib Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper 2009-10-15 20:14:52 +00:00
projects install-sh chmods to 0755 by default, and this causes 'git diff' to show 2009-08-28 16:12:48 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test Re-apply 84180 with the fixed test case. 2009-10-15 19:26:25 +00:00
tools There seems to be no reason for opt's -S option to be hidden. 2009-10-14 20:01:39 +00:00
unittests Disable another unittest that doesn't work on arm and ppc. 2009-10-15 16:49:16 +00:00
utils Report errors correctly for unselected target intrinsics. 2009-10-15 18:50:03 +00:00
website
win32 Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. 2009-07-24 23:12:02 +00:00
Xcode Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt Fix LLVM CMake build system so that it may now work on Solaris and AuroraUX. 2009-10-12 04:00:11 +00:00
configure Undo pthread patch from rev. 83930 & 83823. Credit to Paul Davey. 2009-10-14 11:12:33 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT Add regular expression matching support, based on OpenBSD regexec()/regcomp() 2009-08-30 08:24:09 +00:00
llvm.spec.in
Makefile Reconfigure automatically when Base.td.in is changed. 2009-10-09 02:40:01 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Enable -g with DEBUG_SYMBOLS and --enable-debug-symbols instead of 2009-09-27 17:47:29 +00:00
Makefile.rules Tablegen target intrinsics from the target main .td file. 2009-10-15 18:48:47 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt First test commit 2009-10-05 22:29:11 +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.