Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Bob Wilson 0035f9c3b9 pr4926: ARM requires the stack pointer to be aligned, even for leaf functions.
For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public
interface" it must be 8-byte aligned.  For the older ARM APCS ABI, the stack
alignment is just always 4 bytes.  For X86, we currently align SP at
entry to a function (e.g., to 16 bytes for Darwin), but no stack alignment
is needed at other times, such as for a leaf function.

After discussing this with Dan, I decided to go with the approach of adding
a new "TransientStackAlignment" field to TargetFrameInfo.  This value
specifies the stack alignment that must be maintained even in between calls.
It defaults to 1 except for ARM, where it is 4.  (Some other targets may
also want to set this if they have similar stack requirements. It's not
currently required for PPC because it sets targetHandlesStackFrameRounding
and handles the alignment in target-specific code.) The existing StackAlignment
value specifies the alignment upon entry to a function, which is how we've
been using it anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-25 14:41:49 +00:00
autoconf PR4047: Permit configure --enable-targets=host,cpp for example. "host" has the 2009-09-23 17:05:42 +00:00
bindings Expose initializing the native target for the execution engine. 2009-09-14 21:54:32 +00:00
cmake Update CMake. 2009-09-17 00:06:48 +00:00
docs add and document regex support for FileCheck. You can now do stuff like: 2009-09-24 21:47:32 +00:00
examples Auto-upgrade malloc instructions to malloc calls. 2009-09-24 17:47:49 +00:00
include pr4926: ARM requires the stack pointer to be aligned, even for leaf functions. 2009-09-25 14:41:49 +00:00
lib pr4926: ARM requires the stack pointer to be aligned, even for leaf functions. 2009-09-25 14:41:49 +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 pr4926: ARM requires the stack pointer to be aligned, even for leaf functions. 2009-09-25 14:41:49 +00:00
tools Print INST_INBOUNDS_GEP rather than UnknownCode30. 2009-09-25 12:28:37 +00:00
unittests add and document regex support for FileCheck. You can now do stuff like: 2009-09-24 21:47:32 +00:00
utils filecheck should not match a \n with a . 2009-09-25 06:47:09 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
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 Add count/not tools as executables. 2009-09-24 06:23:57 +00:00
configure PR4047: Permit configure --enable-targets=host,cpp for example. "host" has the 2009-09-23 17:05:42 +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 * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile Build (not test) the unittests as part of a normal build. 2009-09-13 22:39:27 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Improve support for cross-hosted builds of LLVM. 2009-09-02 23:52:23 +00:00
Makefile.rules Add 'make check-all', which runs the LLVM tests along with the clang tests if 2009-09-20 06:17:21 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
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.