LLVM backend for 6502
Go to file
Quentin Colombet 637582eaf7 When code size is the priority (Oz, MinSize attribute), help llvm
turning a code like this:

if (foo)
   free(foo)

into that:
free(foo)

Move a call to free from basic block FB into FB's predecessor, P,
when the path from P to FB is taken only if the argument of free is
not equal to NULL.

Some restrictions apply on P and FB to be sure that this code motion
is profitable. Namely:
1. FB must have only one predecessor P.
2. FB must contain only the call to free plus an unconditional
   branch to S.
3. P's successors are FB and S.

Because of 1., we will not increase the code size when moving the call
to free from FB to P.
Because of 2., FB will be empty after the move.
Because of 2. and 3., P's branch instruction becomes useless, so as FB
(simplifycfg will do the job).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171762 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07 18:37:41 +00:00
autoconf Fix a stray 'dnl' that my editor line-wrapped into this comment. Thanks 2013-01-05 00:34:40 +00:00
bindings [python] Add markup option to disassembler 2012-12-01 21:57:30 +00:00
cmake Add time getters to the process interface for requesting the elapsed 2013-01-04 23:19:55 +00:00
docs Documentation: add a note that Clang on Mageia 2 can not find libstdc++ headers 2013-01-07 12:17:44 +00:00
examples Update the examples for the new header file locations. 2013-01-02 11:56:33 +00:00
include When code size is the priority (Oz, MinSize attribute), help llvm 2013-01-07 18:37:41 +00:00
lib When code size is the priority (Oz, MinSize attribute), help llvm 2013-01-07 18:37:41 +00:00
projects Clean up the sample include orderings, not that it really matters... 2012-12-04 10:46:21 +00:00
runtime
test When code size is the priority (Oz, MinSize attribute), help llvm 2013-01-07 18:37:41 +00:00
tools Move CallGraphSCCPass.h into the Analysis tree; that's where the 2013-01-07 15:26:48 +00:00
unittests Rename the VMCore unittest tree to IR. Somehow was missed when doing the 2013-01-07 15:35:46 +00:00
utils Claim ".td" files. Improve README cp command. Drop "Bundle" from description 2013-01-07 17:07:10 +00:00
.arcconfig Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool. 2012-12-01 12:07:58 +00:00
.gitignore
CMakeLists.txt Fix spelling 2012-12-13 15:25:07 +00:00
CODE_OWNERS.TXT R600: Add entry in CODE_OWNERS.TXT 2012-12-19 22:10:35 +00:00
configure Finally, fix the autoconf setup to allow for a missing clock_gettime; 2013-01-05 00:29:06 +00:00
CREDITS.TXT
LICENSE.TXT Add LICENSE.TXT covering contributions made by ARM. 2013-01-07 10:04:49 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile Update the root Makefile for VMCore -> IR. Missed by my original search 2013-01-02 09:27:25 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Add options to disable building of ARCMT, Rewriter and Static Analyzer 2012-12-13 16:07:19 +00:00
Makefile.rules Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
README.txt

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.