<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/Inline, branch release_32</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/Inline?h=release_32</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/Inline?h=release_32'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2012-09-19T09:22:17Z</updated>
<entry>
<title>rename test</title>
<updated>2012-09-19T09:22:17Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2012-09-19T09:22:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f2524412395f092424ed0d457cecc9b2b95cb0f9'/>
<id>urn:sha1:f2524412395f092424ed0d457cecc9b2b95cb0f9</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164210 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Prevent inlining of callees which allocate lots of memory into a recursive caller.</title>
<updated>2012-09-19T08:08:04Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2012-09-19T08:08:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=92df026f0da91dc65ef6186e97ff87b1f53e8cd0'/>
<id>urn:sha1:92df026f0da91dc65ef6186e97ff87b1f53e8cd0</id>
<content type='text'>
Example:

void foo() {
 ... foo();   // I'm recursive!

  bar();
}

bar() {  int a[1000];  // large stack size }

rdar://10853263



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164207 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix broken check lines.</title>
<updated>2012-08-17T12:28:26Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-08-17T12:28:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4e81d40545b01e0ce486b4de72282e66b91f48e9'/>
<id>urn:sha1:4e81d40545b01e0ce486b4de72282e66b91f48e9</id>
<content type='text'>
I really need to find a way to automate this, but I can't come up with a regex
that has no false positives while handling tricky cases like custom check
prefixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162097 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>PR13095: Give an inline cost bonus to functions using byval arguments.</title>
<updated>2012-08-07T11:13:19Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-08-07T11:13:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b6fdd022b7414f916ba7b08560a0f55e14863326'/>
<id>urn:sha1:b6fdd022b7414f916ba7b08560a0f55e14863326</id>
<content type='text'>
We give a bonus for every argument because the argument setup is not needed
anymore when the function is inlined. With this patch we interpret byval
arguments as a compact representation of many arguments. The byval argument
setup is implemented in the backend as an inline memcpy, so to model the
cost as accurately as possible we take the number of pointer-sized elements
in the byval argument and give a bonus of 2 instructions for every one of
those. The bonus is capped at 8 elements, which is the number of stores
at which the x86 backend switches from an expanded inline memcpy to a real
memcpy. It would be better to use the real memcpy threshold from the backend,
but it's not available via TargetData.

This change brings the performance of c-ray in line with gcc 4.7. The included
test case tries to reproduce the c-ray problem to catch regressions for this
benchmark early, its performance is dominated by the inline decision of a
specific call.

This only has a small impact on most code, more on x86 and arm than on x86_64
due to the way the ABI works. When building LLVM for x86 it gives a small
inline cost boost to virtually any function using StringRef or STL allocators,
but only a 0.01% increase in overall binary size. The size of gcc compiled by
clang actually shrunk by a couple bytes with this patch applied, but not
significantly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161413 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix PR13412, a nasty miscompile due to the interleaved</title>
<updated>2012-08-07T10:59:59Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-08-07T10:59:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=961e1acfb275613679c0d00d4a0b4ed394b51a9d'/>
<id>urn:sha1:961e1acfb275613679c0d00d4a0b4ed394b51a9d</id>
<content type='text'>
instsimplify+inline strategy.

The crux of the problem is that instsimplify was reasonably relying on
an invariant that is true within any single function, but is no longer
true mid-inline the way we use it. This invariant is that an argument
pointer != a local (alloca) pointer.

The fix is really light weight though, and allows instsimplify to be
resiliant to these situations: when checking the relation ships to
function arguments, ensure that the argumets come from the same
function. If they come from different functions, then none of these
assumptions hold. All credit to Benjamin Kramer for coming up with this
clever solution to the problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161410 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix the remaining TCL-style quotes found in the testsuite. This is</title>
<updated>2012-07-02T19:09:46Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-07-02T19:09:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1de43ede8904e08de37f601c9bab0b70f71156e1'/>
<id>urn:sha1:1de43ede8904e08de37f601c9bab0b70f71156e1</id>
<content type='text'>
another mechanical change accomplished though the power of terrible Perl
scripts.

I have manually switched some "s to 's to make escaping simpler.

While I started this to fix tests that aren't run in all configurations,
the massive number of tests is due to a really frustrating fragility of
our testing infrastructure: things like 'grep -v', 'not grep', and
'expected failures' can mask broken tests all too easily.

Essentially, I'm deeply disturbed that I can change the testsuite so
radically without causing any change in results for most platforms. =/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159547 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Convert the uses of '|&amp;' to use '2&gt;&amp;1 |' instead, which works on old</title>
<updated>2012-07-02T18:37:59Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-07-02T18:37:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=49589f0d0e35f643e697ab7ae8a51a530d38b0d8'/>
<id>urn:sha1:49589f0d0e35f643e697ab7ae8a51a530d38b0d8</id>
<content type='text'>
versions of Bash. In addition, I can back out the change to the lit
built-in shell test runner to support this.

This should fix the majority of fallout on Darwin, but I suspect there
will be a few straggling issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159544 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Convert all tests using TCL-style quoting to use shell-style quoting.</title>
<updated>2012-07-02T12:47:22Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-07-02T12:47:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4177e6fff50552908bab510f1e896fa974a6f155'/>
<id>urn:sha1:4177e6fff50552908bab510f1e896fa974a6f155</id>
<content type='text'>
This was done through the aid of a terrible Perl creation. I will not
paste any of the horrors here. Suffice to say, it require multiple
staged rounds of replacements, state carried between, and a few
nested-construct-parsing hacks that I'm not proud of. It happens, by
luck, to be able to deal with all the TCL-quoting patterns in evidence
in the LLVM test suite.

If anyone is maintaining large out-of-tree test trees, feel free to poke
me and I'll send you the steps I used to convert things, as well as
answer any painful questions etc. IRC works best for this type of thing
I find.

Once converted, switch the LLVM lit config to use ShTests the same as
Clang. In addition to being able to delete large amounts of Python code
from 'lit', this will also simplify the entire test suite and some of
lit's architecture.

Finally, the test suite runs 33% faster on Linux now. ;]
For my 16-hardware-thread (2x 4-core xeon e5520): 36s -&gt; 24s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159525 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix the inliner so that the optsize function attribute don't alter the</title>
<updated>2012-05-23T13:42:57Z</updated>
<author>
<name>Patrik Hägglund</name>
<email>patrik.h.hagglund@ericsson.com</email>
</author>
<published>2012-05-23T13:42:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ab767213fdfc219384e26b8073783cb883974dcd'/>
<id>urn:sha1:ab767213fdfc219384e26b8073783cb883974dcd</id>
<content type='text'>
inline threshold if the global inline threshold is lower (as for -Oz).

Reviewed by Chandler Carruth and Bill Wendling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157323 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Sink the collection of return instructions until after *all*</title>
<updated>2012-04-06T17:21:31Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-04-06T17:21:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=9ceebb7e92e980340d199b550e3a2110c80ea871'/>
<id>urn:sha1:9ceebb7e92e980340d199b550e3a2110c80ea871</id>
<content type='text'>
simplification has been performed. This is a bit less efficient
(requires another ilist walk of the basic blocks) but shouldn't matter
in practice. More importantly, it's just too much work to keep track of
all the various ways the return instructions can be mutated while
simplifying them. This fixes yet another crasher, reported by Daniel
Dunbar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154179 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
