[llvm-commits] [llvm] r156622 - /llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
Chad Rosier
mcrosier at apple.com
Fri May 11 10:54:18 PDT 2012
On May 11, 2012, at 10:50 AM, Eli Friedman wrote:
> On Fri, May 11, 2012 at 10:41 AM, Chad Rosier <mcrosier at apple.com> wrote:
>> Author: mcrosier
>> Date: Fri May 11 12:41:06 2012
>> New Revision: 156622
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=156622&view=rev
>> Log:
>> [fast-isel] Rather then assert (or segfault in a non-asserts build), fall back
>> to selection DAG isel if we're unable to handle a non-double multi-reg retval.
>> rdar://11430407
>> PR12796
>>
>> Modified:
>> llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
>>
>> Modified: llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMFastISel.cpp?rev=156622&r1=156621&r2=156622&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/ARMFastISel.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/ARMFastISel.cpp Fri May 11 12:41:06 2012
>> @@ -2014,8 +2014,7 @@
>>
>> // Finally update the result.
>> UpdateValueMap(I, ResultReg);
>> - } else {
>> - assert(RVLocs.size() == 1 &&"Can't handle non-double multi-reg retvals!");
>> + } else if (RVLocs.size() == 1) {
>> EVT CopyVT = RVLocs[0].getValVT();
>>
>> // Special handling for extended integers.
>> @@ -2031,6 +2030,9 @@
>>
>> // Finally update the result.
>> UpdateValueMap(I, ResultReg);
>> + } else {
>> + // Can't handle non-double multi-reg retvals.
>> + return false;
>
> Are you sure you don't need to handle this before generating the
> actual call instruction?
Fairly sure the fast-isel "dead-code" removal logic I added will clean this up, so I believe it's safe. I'll double check, however.
> Also, missing test case.
I'll add one shortly.
Chad
>
> -Eli
More information about the llvm-commits
mailing list