<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/CodeGen, branch stable</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/CodeGen?h=stable</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/CodeGen?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-04-01T18:12:58Z</updated>
<entry>
<title>Merge load/store sequences with adresses: base + index + offset</title>
<updated>2013-04-01T18:12:58Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-04-01T18:12:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f28a29b776b7dc2b97d09c75d69494f862c216b3'/>
<id>urn:sha1:f28a29b776b7dc2b97d09c75d69494f862c216b3</id>
<content type='text'>
We would also like to merge sequences that involve a variable index like in the
example below.

    int index = *idx++
    int i0 = c[index+0];
    int i1 = c[index+1];
    b[0] = i0;
    b[1] = i1;

By extending the parsing of the base pointer to handle dags that contain a
base, index, and offset we can handle examples like the one above.

The dag for the code above will look something like:

 (load (i64 add (i64 copyfromreg %c)
                (i64 signextend (i8 load %index))))

 (load (i64 add (i64 copyfromreg %c)
                (i64 signextend (i32 add (i32 signextend (i8 load %index))
                                         (i32 1)))))

The code that parses the tree ignores the intermediate sign extensions. However,
if there is a sign extension it needs to be on all indexes.

 (load (i64 add (i64 copyfromreg %c)
                (i64 signextend (add (i8 load %index)
                                     (i8 1))))
 vs

 (load (i64 add (i64 copyfromreg %c)
                (i64 signextend (i32 add (i32 signextend (i8 load %index))
                                         (i32 1)))))
radar://13536387

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178483 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>DAGCombine: visitXOR can replace a node without returning it, bail out in that case.</title>
<updated>2013-03-30T21:28:18Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-30T21:28:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=0b68b758bbb6718fc67423109eeb9df64c711a37'/>
<id>urn:sha1:0b68b758bbb6718fc67423109eeb9df64c711a37</id>
<content type='text'>
Fixes the crash reported in PR15608.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178429 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use SmallVectorImpl instead of SmallVector at the uses.</title>
<updated>2013-03-29T23:34:06Z</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2013-03-29T23:34:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f7cef7081b2e09b48d47263e391db2390dddf5e8'/>
<id>urn:sha1:f7cef7081b2e09b48d47263e391db2390dddf5e8</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178386 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use 12 as the magic number for our abbreviation data and our</title>
<updated>2013-03-29T20:23:06Z</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2013-03-29T20:23:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=2df938ad713140c352b2d81b49490e337c018891'/>
<id>urn:sha1:2df938ad713140c352b2d81b49490e337c018891</id>
<content type='text'>
die values. A lot of DIEs have 10 attributes in C++ code (example
clang), none had more than 12. Seems like a good default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178366 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Move the construction of the skeleton compile unit after the</title>
<updated>2013-03-29T20:23:02Z</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2013-03-29T20:23:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c126c3232a7c6c2e2a2ec9477252f1372b14f728'/>
<id>urn:sha1:c126c3232a7c6c2e2a2ec9477252f1372b14f728</id>
<content type='text'>
entire original compile unit has been constructed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178365 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Remove the old CodePlacementOpt pass.</title>
<updated>2013-03-29T17:14:24Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-29T17:14:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=74a4533a4290b7c6f1fe04a30ca13ec25c529e0a'/>
<id>urn:sha1:74a4533a4290b7c6f1fe04a30ca13ec25c529e0a</id>
<content type='text'>
It was superseded by MachineBlockPlacement and disabled by default since LLVM 3.1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178349 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a typo</title>
<updated>2013-03-29T16:34:23Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-03-29T16:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=975ee54731476ff6541fc42f6a8cd706f3d33f58'/>
<id>urn:sha1:975ee54731476ff6541fc42f6a8cd706f3d33f58</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178346 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[fast-isel] Add a preemptive fix for the case where we fail to materialize an</title>
<updated>2013-03-28T23:04:47Z</updated>
<author>
<name>Chad Rosier</name>
<email>mcrosier@apple.com</email>
</author>
<published>2013-03-28T23:04:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=7ae3bb83c278e991940d022b7b48d996da408abf'/>
<id>urn:sha1:7ae3bb83c278e991940d022b7b48d996da408abf</id>
<content type='text'>
immediate in a register.  I don't believe this should ever fail, but I see no
harm in trying to make this code bullet proof.

I've added an assert to ensure my assumtion is correct.  If the assertion fires
something is wrong and we should fix it, rather then just silently fall back to
SelectionDAG isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178305 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix target-customized spilling in the register scavenger</title>
<updated>2013-03-27T13:00:56Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-27T13:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=26998ee794e9b6f9b0bc27d1e273b6b78afce57d'/>
<id>urn:sha1:26998ee794e9b6f9b0bc27d1e273b6b78afce57d</id>
<content type='text'>
This is a follow-up to r178073 (which should actually make target-customized
spilling work again).

I still don't have a regression test for this (but it would be good to have
one; Thumb 1 and Mips16 use this callback as well).

Patch by Richard Sandiford.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178137 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix the register scavenger for targets that provide custom spilling</title>
<updated>2013-03-26T21:20:15Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-26T21:20:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=df23a60fa6ce053511388e1bccca5900757e1aac'/>
<id>urn:sha1:df23a60fa6ce053511388e1bccca5900757e1aac</id>
<content type='text'>
As pointed out by Richard Sandiford, my recent updates to the register
scavenger broke targets that use custom spilling (because the new code assumed
that if there were no valid spill slots, than spilling would be impossible).

I don't have a test case, but it should be possible to create one for Thumb 1,
Mips 16, etc.

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