[llvm-commits] [llvm] r156622 - /llvm/trunk/lib/Target/ARM/ARMFastISel.cpp

Eli Friedman eli.friedman at gmail.com
Fri May 11 10:50:51 PDT 2012


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?

Also, missing testcase.

-Eli




More information about the llvm-commits mailing list