Go to file
David Green ba9f245b0d [Inliner] Penalise inlining of calls with loops at Oz
We currently seem to underestimate the size of functions with loops in them,
both in terms of absolute code size and in the difficulties of dealing with
such code. (Calls, for example, can be tail merged to further reduce
codesize). At -Oz, we can then increase code size by inlining small loops
multiple times.

This attempts to penalise functions with loops at -Oz by adding a CallPenalty
for each top level loop in the function. It uses LI (and hence DT) to calculate
the number of loops. As we are dealing with minsize, the inline threshold is
small and functions at this point should be relatively small, making the
construction of these cheap.

Differential Revision: https://reviews.llvm.org/D52716

llvm-svn: 346134
2018-11-05 14:54:34 +00:00
clang [Tooling] Add "-filter" option to AllTUsExecution 2018-11-05 13:42:05 +00:00
clang-tools-extra [clangd] don't buffer the input-mirror stream, it's used to diagnose crashes 2018-11-02 23:47:55 +00:00
compiler-rt Fix build on sparc64-linux-gnu. 2018-11-05 12:27:43 +00:00
debuginfo-tests [debuginfo-tests] commands.getoutput -> subprocess.check_output 2018-11-03 04:52:32 +00:00
libclc Remove redundant OVERRRIDES file 2018-11-04 00:54:46 +00:00
libcxx Fix the test for partition_copy so it is not ridiculously slow. Also, detab. 2018-11-04 17:57:25 +00:00
libcxxabi Use C++11 fallthrough attribute syntax when available and add a break 2018-11-01 18:24:03 +00:00
libunwind [CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON. 2018-10-08 18:35:00 +00:00
lld Handle OUTPUT_FORMAT arguments in quotation marks 2018-11-03 05:25:49 +00:00
lldb [LLDB] Fix FreeBSD/Darwin build 2018-11-04 23:19:25 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [Inliner] Penalise inlining of calls with loops at Oz 2018-11-05 14:54:34 +00:00
openmp [OPENMP][OFFLOADING]Change the lambda capturing flags. 2018-11-02 15:24:47 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly Fix clang -Wimplicit-fallthrough warnings across llvm, NFC 2018-11-01 19:54:45 +00:00
README.md Update the project name in README.md 2018-10-19 00:03:01 +00:00

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.