llvm-project/llvm
James Molloy 6df8f27c95 [InlineCost] Remove skew when calculating call costs
When calculating the cost of a call instruction we were applying a heuristic penalty as well as the cost of the instruction itself.

However, when calculating the benefit from inlining we weren't discounting the equivalent penalty for the call instruction that would be removed! This caused skew in the calculation and meant we wouldn't inline in the following, trivial case:

  int g() {
    h();
  }
  int f() {
    g();
  }

llvm-svn: 286814
2016-11-14 11:14:41 +00:00
..
bindings [OCaml] Adapt to the new attribute C API. 2016-11-12 03:38:30 +00:00
cmake CMake: make LLVM_OPTIMIZED_TABLEGEN friendly with LLVM_EXTERNAL_CLANG_SOURCE_DIR 2016-11-11 04:27:59 +00:00
docs [LangRef] Drop misleading anecdote 2016-11-13 23:40:40 +00:00
examples [Orc] Update the BuildingAJIT Chapter 5 server class for the recent RPC changes. 2016-11-11 21:55:25 +00:00
include GlobalISel: Fix typos. NFC 2016-11-14 10:22:18 +00:00
lib [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
projects [CMake] Correct configuration order of the sub-projects based on ther dependancies 2016-10-09 20:38:29 +00:00
resources
runtimes [CMake] Make the runtimes directory work with bootstrap builds 2016-10-19 21:50:25 +00:00
test [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
tools llvm-cxxfilt: support reading from stdin 2016-11-13 20:43:38 +00:00
unittests Bitcode: Change module reader functions to return an llvm::Expected. 2016-11-13 07:00:17 +00:00
utils Improve `git llvm push` to suggest `git pull` when applying patch fails 2016-11-12 01:17:59 +00:00
.arcconfig project_id is from another era in phabricator land and does not provide any value. 2016-09-27 15:47:29 +00:00
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [cmake] Fix handling compiler-rt in LLVM_ENABLE_PROJECTS by turning any "-" into "_" 2016-11-09 00:23:20 +00:00
CODE_OWNERS.TXT CODE_OWNERS: Take ownership of the X86 backend. 2016-11-12 05:16:06 +00:00
CREDITS.TXT Test Commit, removed extraneous newline 2016-11-01 17:54:05 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit, deleted empty line at the end of README.txt 2016-11-07 18:31:21 +00:00
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.