<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/CodeGen/Thumb2, branch release_28</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/CodeGen/Thumb2?h=release_28</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/CodeGen/Thumb2?h=release_28'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2010-09-03T18:37:12Z</updated>
<entry>
<title>Re-apply r112883:</title>
<updated>2010-09-03T18:37:12Z</updated>
<author>
<name>Jim Grosbach</name>
<email>grosbach@apple.com</email>
</author>
<published>2010-09-03T18:37:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=65482b1bb873dd820f54a24a2f34bd65f2669e5c'/>
<id>urn:sha1:65482b1bb873dd820f54a24a2f34bd65f2669e5c</id>
<content type='text'>
"For ARM stack frames that utilize variable sized objects and have either
large local stack areas or require dynamic stack realignment, allocate a
base register via which to access the local frame. This allows efficient
access to frame indices not accessible via the FP (either due to being out
of range or due to dynamic realignment) or the SP (due to variable sized
object allocation). In particular, this greatly improves efficiency of access
to spill slots in Thumb functions which contain VLAs."

r112986 fixed a latent bug exposed by the above.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112989 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert "For ARM stack frames that utilize variable sized objects and have either", it is breaking oggenc with Clang for ARMv6.</title>
<updated>2010-09-03T15:26:42Z</updated>
<author>
<name>Daniel Dunbar</name>
<email>daniel@zuster.org</email>
</author>
<published>2010-09-03T15:26:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=6a8700301ca6f8f2f5f787c8d1f5206a7dfceed6'/>
<id>urn:sha1:6a8700301ca6f8f2f5f787c8d1f5206a7dfceed6</id>
<content type='text'>
This reverts commit 8d6e29cfda270be483abf638850311670829ee65.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112962 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>For ARM stack frames that utilize variable sized objects and have either</title>
<updated>2010-09-02T22:29:01Z</updated>
<author>
<name>Jim Grosbach</name>
<email>grosbach@apple.com</email>
</author>
<published>2010-09-02T22:29:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1755b3964f931bdd6fa9b4c0138f666ccfa12aca'/>
<id>urn:sha1:1755b3964f931bdd6fa9b4c0138f666ccfa12aca</id>
<content type='text'>
large local stack areas or require dynamic stack realignment, allocate a
base register via which to access the local frame. This allows efficient
access to frame indices not accessible via the FP (either due to being out
of range or due to dynamic realignment) or the SP (due to variable sized
object allocation). In particular, this greatly improves efficiency of access
to spill slots in Thumb functions which contain VLAs.

rdar://7352504
rdar://8374540
rdar://8355680



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112883 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Now that register allocation properly considers reserved regs, simplify the</title>
<updated>2010-09-02T18:14:29Z</updated>
<author>
<name>Jim Grosbach</name>
<email>grosbach@apple.com</email>
</author>
<published>2010-09-02T18:14:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e7c14162631d845ff3c465bfe2c6bdf2f59dba70'/>
<id>urn:sha1:e7c14162631d845ff3c465bfe2c6bdf2f59dba70</id>
<content type='text'>
ARM register class allocation order functions to take advantage of that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112841 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>temporarily revert r112664, it is causing a decoding conflict, and </title>
<updated>2010-09-01T16:00:50Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2010-09-01T16:00:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5bcb8a6112eca5fb72b39b6b4e608ab1b41e94de'/>
<id>urn:sha1:5bcb8a6112eca5fb72b39b6b4e608ab1b41e94de</id>
<content type='text'>
the testcases should be merged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112711 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>We have a chance for an optimization. Consider this code:</title>
<updated>2010-08-31T22:41:22Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2010-08-31T22:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=43a6c5e2fccadb299c35cb3147d112f706922acd'/>
<id>urn:sha1:43a6c5e2fccadb299c35cb3147d112f706922acd</id>
<content type='text'>
int x(int t) {
  if (t &amp; 256)
    return -26;
  return 0;
}

We generate this:

     tst.w   r0, #256
     mvn     r0, #25
     it      eq
     moveq   r0, #0

while gcc generates this:

     ands    r0, r0, #256
     it      ne
     mvnne   r0, #25
     bx      lr

Scandalous really!

During ISel time, we can look for this particular pattern. One where we have a
"MOVCC" that uses the flag off of a CMPZ that itself is comparing an AND
instruction to 0. Something like this (greatly simplified):

  %r0 = ISD::AND ...
  ARMISD::CMPZ %r0, 0         @ sets [CPSR]
  %r0 = ARMISD::MOVCC 0, -26  @ reads [CPSR]

All we have to do is convert the "ISD::AND" into an "ARM::ANDS" that sets [CPSR]
when it's zero. The zero value will all ready be in the %r0 register and we only
need to change it if the AND wasn't zero. Easy!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112664 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add alignment arguments to all the NEON load/store intrinsics.</title>
<updated>2010-08-27T17:13:24Z</updated>
<author>
<name>Bob Wilson</name>
<email>bob.wilson@apple.com</email>
</author>
<published>2010-08-27T17:13:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=7a9ef44b3b4ddd2dd9a7f92fc8b46c5e5bed6a81'/>
<id>urn:sha1:7a9ef44b3b4ddd2dd9a7f92fc8b46c5e5bed6a81</id>
<content type='text'>
Update all the tests using those intrinsics and add support for
auto-upgrading bitcode files with the old versions of the intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112271 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM/Thumb2: Fix a misselect in getARMCmp, when attempting to adjust a signed</title>
<updated>2010-08-25T16:58:05Z</updated>
<author>
<name>Daniel Dunbar</name>
<email>daniel@zuster.org</email>
</author>
<published>2010-08-25T16:58:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=3cc3283fcbb90924196cc38ee5977b35c4ee28b5'/>
<id>urn:sha1:3cc3283fcbb90924196cc38ee5977b35c4ee28b5</id>
<content type='text'>
comparison that would overflow.
 - The other under/overflow cases can't actually happen because the immediates
   which would trigger them are legal (so we don't enter this code), but
   adjusted the style to make it clear the transform is always valid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112053 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Change ARM PKHTB and PKHBT instructions to use a shift_imm operand to avoid</title>
<updated>2010-08-17T17:23:19Z</updated>
<author>
<name>Bob Wilson</name>
<email>bob.wilson@apple.com</email>
</author>
<published>2010-08-17T17:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f955f290c949ff0df7d23cec055efcc4ffeb35d1'/>
<id>urn:sha1:f955f290c949ff0df7d23cec055efcc4ffeb35d1</id>
<content type='text'>
printing "lsl #0".  This fixes the remaining parts of pr7792.  Make
corresponding changes for encoding/decoding these instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111251 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Generalize a pattern for PKHTB: an SRL of 16-31 bits will guarantee</title>
<updated>2010-08-16T22:26:55Z</updated>
<author>
<name>Bob Wilson</name>
<email>bob.wilson@apple.com</email>
</author>
<published>2010-08-16T22:26:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=dc66edaced5dacb56f06f52723dd340d5cfe4eab'/>
<id>urn:sha1:dc66edaced5dacb56f06f52723dd340d5cfe4eab</id>
<content type='text'>
that the high halfword is zero.  The shift need not be exactly 16 bits.


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