<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/CodeGen/PowerPC, branch release_32</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/CodeGen/PowerPC?h=release_32</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/CodeGen/PowerPC?h=release_32'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2012-11-19T22:17:54Z</updated>
<entry>
<title>Merging r167855 into 3.2 relase branch</title>
<updated>2012-11-19T22:17:54Z</updated>
<author>
<name>Pawel Wodnicki</name>
<email>pawel@32bitmicro.com</email>
</author>
<published>2012-11-19T22:17:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=97b07299fad0d019224912afe63fa916c4a0c507'/>
<id>urn:sha1:97b07299fad0d019224912afe63fa916c4a0c507</id>
<content type='text'>
Do not consider a machine instruction that uses and defines the same
physical register as candidate for common subexpression elimination
in MachineCSE.

This fixes a bug on PowerPC in MultiSource/Applications/oggenc/oggenc
caused by MachineCSE invalidly merging two separate DYNALLOC insns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_32@168334 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix assertions in updateRegMaskSlots().</title>
<updated>2012-11-09T19:18:49Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2012-11-09T19:18:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=722c9a7925d1a66569513a1894fdd230962fa3f9'/>
<id>urn:sha1:722c9a7925d1a66569513a1894fdd230962fa3f9</id>
<content type='text'>
The RegMaskSlots contains 'r' slots while NewIdx and OldIdx are 'B'
slots. This broke the checks in the assertions.

This fixes PR14302.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167625 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>On PowerPC64, integer return values (as well as arguments) are supposed</title>
<updated>2012-11-05T19:39:45Z</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2012-11-05T19:39:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=86aef0a4f093700420c76f313e5668c39db110aa'/>
<id>urn:sha1:86aef0a4f093700420c76f313e5668c39db110aa</id>
<content type='text'>
to be extended to a full register.   This is modeled in the IR by marking
the return value (or argument) with a signext or zeroext attribute.

However, while these attributes are respected for function arguments,
they are currently ignored for function return values by the PowerPC
back-end.  This patch updates PPCCallingConv.td to ask for the promotion
to i64, and fixes LowerReturn and LowerCallResult to implement it.

The new test case verifies that both arguments and return values are
properly extended when passing them; and also that the optimizers
understand incoming argument and return values are in fact guaranteed
by the ABI to be extended.

The patch caused a spurious breakage in CodeGen/PowerPC/coalesce-ext.ll,
since the test case used a "ret" instruction to create a use of an i32
value at the end of the function (to set up data flow as required for
what the test is intended to test).  Since there's now an implicit
promotion to i64, that data flow no longer works as expected.  To fix
this, this patch now adds an extra "add" to ensure we have an appropriate
use of the i32 value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167396 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add support for the PowerPC-specific inline asm Z constraint and y modifier.</title>
<updated>2012-11-05T18:18:42Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2012-11-05T18:18:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=827b7a070d349737f1d6ff63115e0cbb0c031f9c'/>
<id>urn:sha1:827b7a070d349737f1d6ff63115e0cbb0c031f9c</id>
<content type='text'>
The Z constraint specifies an r+r memory address, and the y modifier expands
to the "r, r" in the asm string. For this initial implementation, the base
register is forced to r0 (which has the special meaning of 0 for r+r addressing
on PowerPC) and the full address is taken in the second register. In the
future, this should be improved.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167388 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[PATCH] PowerPC: Expand load extend vector operations</title>
<updated>2012-11-05T17:15:56Z</updated>
<author>
<name>Adhemerval Zanella</name>
<email>azanella@linux.vnet.ibm.com</email>
</author>
<published>2012-11-05T17:15:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cfe09ed28d8a65b671e8b7a716a933e98e810e32'/>
<id>urn:sha1:cfe09ed28d8a65b671e8b7a716a933e98e810e32</id>
<content type='text'>
This patch expands the SEXTLOAD, ZEXTLOAD, and EXTLOAD operations for
vector types when altivec is enabled.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167386 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This patch addresses an ABI compatibility issue with empty aggregate</title>
<updated>2012-10-31T01:15:05Z</updated>
<author>
<name>Bill Schmidt</name>
<email>wschmidt@linux.vnet.ibm.com</email>
</author>
<published>2012-10-31T01:15:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=42d43351b274603ed0ac28128498a35b8987ce15'/>
<id>urn:sha1:42d43351b274603ed0ac28128498a35b8987ce15</id>
<content type='text'>
parameters.  Examples of these are:

  struct { } a;
  union { } b[256];
  int a[0];

An empty aggregate has an address, although dereferencing that address is
pointless.  When passed as a parameter, an empty aggregate does not consume
a protocol register, nor does it consume a doubleword in the parameter save
area.  Passing an empty aggregate by reference passes an address just as
for any other aggregate.  Returning an empty aggregate uses GPR3 as a hidden
address of the return value location, just as for any other aggregate.

The patch modifies PPCTargetLowering::LowerFormalArguments_64SVR4 and
PPCTargetLowering::LowerCall_64SVR4 to properly skip empty aggregate
parameters passed by value.  The handling of return values and by-reference
parameters was already correct.

Built on powerpc64-unknown-linux-gnu and tested with no new regressions.
A test case is included to test proper handling of empty aggregate
parameters on both sides of the function call protocol.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167090 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>PowerPC: Expand FSRQT for vector types</title>
<updated>2012-10-30T18:29:42Z</updated>
<author>
<name>Adhemerval Zanella</name>
<email>azanella@linux.vnet.ibm.com</email>
</author>
<published>2012-10-30T18:29:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c83b5dc625bd85276a23c36c1fbad193203d2bc7'/>
<id>urn:sha1:c83b5dc625bd85276a23c36c1fbad193203d2bc7</id>
<content type='text'>
This patch expands FSQRT for floating point vector types when altivec is
used.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167034 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>PowerPC: More support for Altivec compare operations</title>
<updated>2012-10-30T13:50:19Z</updated>
<author>
<name>Adhemerval Zanella</name>
<email>azanella@linux.vnet.ibm.com</email>
</author>
<published>2012-10-30T13:50:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5f41fd685b6e82c3194be782566bbc438d697cc9'/>
<id>urn:sha1:5f41fd685b6e82c3194be782566bbc438d697cc9</id>
<content type='text'>
This patch adds more support for vector type comparisons using altivec.
It adds correct support for v16i8, v8i16, v4i32, and v4f32 vector
types for comparison operators ==, !=, &gt;, &gt;=, &lt;, and &lt;=.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167015 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This patch solves a problem with passing varargs parameters under the PPC64</title>
<updated>2012-10-29T21:18:16Z</updated>
<author>
<name>Bill Schmidt</name>
<email>wschmidt@linux.vnet.ibm.com</email>
</author>
<published>2012-10-29T21:18:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e6c56433de56fb89f1d476332134b6b2e22cfa28'/>
<id>urn:sha1:e6c56433de56fb89f1d476332134b6b2e22cfa28</id>
<content type='text'>
ELF ABI.

A varargs parameter consisting of a single-precision floating-point value,
or of a single-element aggregate containing a single-precision floating-point
value, must be passed in the low-order (rightmost) four bytes of the
doubleword stack slot reserved for that parameter.  If there are GPR protocol
registers remaining, the parameter must also be mirrored in the low-order
four bytes of the reserved GPR.

Prior to this patch, such parameters were being passed in the high-order
four bytes of the stack slot and the mirrored GPR.

The patch adds a new test case to verify the correct code generation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166968 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>In various places throughout the code generator, there were special</title>
<updated>2012-10-29T18:35:49Z</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2012-10-29T18:35:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e669c930a61dd56891df2f9822966ecb173c8072'/>
<id>urn:sha1:e669c930a61dd56891df2f9822966ecb173c8072</id>
<content type='text'>
checks to avoid performing compile-time arithmetic on PPCDoubleDouble.

Now that APFloat supports arithmetic on PPCDoubleDouble, those checks
are no longer needed, and we can treat the type like any other.


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