Go to file
Ulrich Weigand 339d0597d3 On PowerPC64, integer return values (as well as arguments) are supposed
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.

llvm-svn: 167396
2012-11-05 19:39:45 +00:00
clang On PowerPC64, integer arguments and return values need to be sign- or 2012-11-05 19:13:42 +00:00
clang-tools-extra Following the example from loop-convert tests, simplifying the remove-cstr-calls lit script. 2012-11-05 18:28:45 +00:00
compiler-rt [Sanitizer] Add internal_isatty to sanitizer_libc and PrintsToTty to determine whether error reports are printed to terminal 2012-11-02 15:18:34 +00:00
debuginfo-tests XTARGET was removed, update debug-info tests. 2012-10-20 01:38:50 +00:00
libclc Implement any() builtin. Patch by Tom Stellard! 2012-10-08 03:39:21 +00:00
libcxx peek should set eofbit if sgetc() returns eof. 2012-11-01 17:32:07 +00:00
libcxxabi Make the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy. 2012-10-13 18:45:59 +00:00
lld Add absolute symbol scope recognition in lld/Core 2012-11-05 19:13:54 +00:00
lldb Avoid potentially disastrous mistakes when removing a file. 2012-11-05 18:41:33 +00:00
llvm On PowerPC64, integer return values (as well as arguments) are supposed 2012-11-05 19:39:45 +00:00
polly Tests: Pipe test files into 'opt' 2012-11-04 16:56:20 +00:00