LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 43cda021d9 Fix inline cost predictions with SCIENCE.
After running a batch of measurements, it is clear that the inliner metrics
need some adjustments:

Own argument bonus:       20 -> 5
Outgoing argument penalty: 0 -> 5
Alloca bonus:             10 -> 5
Constant instr bonus:      7 -> 5
Dead successor bonus:     40 -> 5*(avg instrs/block)

The new cost metrics are generaly 25 points higher than before, so we may need
to move thresholds.

With this change, InlineConstants::CallPenalty becomes a political correction:

if (!isa<IntrinsicInst>(II) && !callIsSmall(CS.getCalledFunction()))
  NumInsts += InlineConstants::CallPenalty + CS.arg_size();

The code size is accurately modelled by CS.arg_size(). CallPenalty is added
because calls tend to take a long time, so it may not be worth it to inline a
function with lots of calls.

All of the political corrections are in the InlineConstants namespace:
IndirectCallBonus, CallPenalty, LastCallToStaticBonus, ColdccPenalty,
NoreturnPenalty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94615 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 23:21:56 +00:00
autoconf Remove unneeded checks from configure.ac. 2010-01-26 08:48:04 +00:00
bindings This corrects an error in the type of the Llvm.dispose_context function. 2010-01-24 00:25:09 +00:00
cmake Update CMake LibDeps 2010-01-22 18:14:14 +00:00
docs no need to implement these. 2010-01-25 20:37:36 +00:00
examples This example requires RTTI. 2010-01-25 00:45:01 +00:00
include Fix inline cost predictions with SCIENCE. 2010-01-26 23:21:56 +00:00
lib Fix inline cost predictions with SCIENCE. 2010-01-26 23:21:56 +00:00
projects Fix autoconf llvm srcdir location for generic projects. 2010-01-25 04:10:28 +00:00
runtime remove the random sampling framework, which is not maintained anymore. 2010-01-02 20:07:03 +00:00
test emit jump table an alias ".set" directives through MCStreamer as 2010-01-26 21:53:08 +00:00
tools Support -arch. 2010-01-26 14:55:44 +00:00
unittests Revert 94484. Re-disable unittests that need RTTI. 2010-01-26 19:04:37 +00:00
utils Escape double quotes in 'help'. 2010-01-26 14:55:04 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +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: Add MCParser directory. 2010-01-22 02:04:33 +00:00
configure Regenerate configure. 2010-01-26 08:50:50 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile For 'install-clang' target, also traverse tools/clang/lib/Runtime. 2010-01-20 00:43:07 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
Makefile.rules make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt test commit. 2010-01-26 19:45:17 +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.