LLVM backend for 6502
Go to file
Duncan Sands 674fdc9a28 Run the functionattrs pass after the inliner, and not before.
This makes both logical sense (see below) and increases the
number of functions marked readnone/readonly by about 1-2%
in practice.  The number of functions marked nocapture goes
up by about 5-10%.  The reason it makes sense is shown by
the following example: if you run -functionattrs -inline on
it, then no attributes are assigned.  But if you instead run
-inline -functionattrs then @f is marked readnone because the
simplifications produced by the inliner eliminate the store.

@x = external global i32

define void @w(i1 %b) {
        br i1 %b, label %write, label %return
write:
        store i32 1, i32 *@x
        br label %return
return:
        ret void
}

define void @f() {
        call void @w(i1 0)
        ret void
}



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85893 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-03 09:40:08 +00:00
autoconf Add an autoconf test to check for optional compiler flags like 2009-10-26 19:58:44 +00:00
bindings Expose the rest of the attribute settings. 2009-09-28 04:42:47 +00:00
cmake CMake: Report an error if there is an unknown .cpp file in a source 2009-11-02 19:11:03 +00:00
docs Add missing end-tag. 2009-11-02 00:25:26 +00:00
examples Remove FreeInst. 2009-10-26 23:43:48 +00:00
include Run the functionattrs pass after the inliner, and not before. 2009-11-03 09:40:08 +00:00
lib Trim unnecessary include. 2009-11-03 07:08:08 +00:00
projects Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test Fix PR5367. QPR_8 is the super regclass of DPR_8 and SPR_8. 2009-11-03 05:52:54 +00:00
tools Line this up as well. 2009-11-01 22:08:51 +00:00
unittests Fix the ModuleDeletion test on PPC and ARM. 2009-10-28 00:28:31 +00:00
utils lit: Update Clang's test style to use XFAIL: and XTARGET: lines that match 2009-11-03 07:26:38 +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 CMake: install .def files from source `include/llvm' directory. 2009-10-30 11:42:08 +00:00
configure Regenerate. 2009-10-26 20:00:35 +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 When cross-building, the CFLAGS and CXXFLAGS are for the target, and don't 2009-10-30 19:53:38 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Add an autoconf test to check for optional compiler flags like 2009-10-26 19:58:44 +00:00
Makefile.rules Build in ARM mode explicitly when on ARM Darwin 2009-10-30 21:33:05 +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.