Mirror of official llvm git repository located at http://llvm.org/git/llvm. Updated every five minutes.
Go to file
Chandler Carruth d383b8eec3 [inliner] Skip debug intrinsics even earlier in computing the inline
cost so that they don't impact the vector bonus. Fundamentally, counting
unsimplified instructions is just *wrong*; it will continue to introduce
instability as things which do not generate code bizarrely impact
inlining. For example, sufficiently nested inlined functions could turn
off the vector bonus with lifetime markers just like the debug
intrinsics do. =/

This is a short-term tactical fix. Long term, I think we need to remove
the vector bonus entirely. That's a separate patch and discussion
though.

The patch to fix this provided by Dario Domizioli. I've added some
comments about the planned direction and used a heavily pruned form of
debug info intrinsics for the test case. While this debug info doesn't
work or "do" anything useful, it lets us easily test all manner of
interference easily, and I suspect this will not be the last time we
want to craft a pattern where debug info interferes with the inliner in
a problematic way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200609 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-01 10:38:17 +00:00
autoconf Introduce line editor library. 2014-01-31 23:46:14 +00:00
bindings
cmake Introduce line editor library. 2014-01-31 23:46:14 +00:00
docs [stackprotector] Implement the sspstrong rules for stack layout. 2014-02-01 01:36:16 +00:00
examples
include Implement inalloca codegen for x86 with the new inalloca design 2014-01-31 23:50:57 +00:00
lib [inliner] Skip debug intrinsics even earlier in computing the inline 2014-02-01 10:38:17 +00:00
projects llvm/projects/CMakeLists.txt: Add dragonegg. 2014-01-24 12:53:08 +00:00
test [inliner] Skip debug intrinsics even earlier in computing the inline 2014-02-01 10:38:17 +00:00
tools Simplify getSymbolFlags. 2014-01-31 20:57:12 +00:00
unittests Introduce line editor library. 2014-01-31 23:46:14 +00:00
utils Separate x86 opcode maps and 0x66/0xf2/0xf3 prefixes from each other in the TSFlags. This greatly simplifies the switch statements in the disassembler tables and the code emitters. 2014-01-31 08:47:06 +00:00
.arcconfig
.clang-format
.gitignore Added .DS_Store entry in .gitignore for ignoring .DS_Store files in the source 2014-01-25 15:15:16 +00:00
CMakeLists.txt [CMake] Move libgtest for external projects. 2014-01-31 17:32:46 +00:00
CODE_OWNERS.TXT
configure Introduce line editor library. 2014-01-31 23:46:14 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
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 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.