On 02/22/2012 05:15 PM, Henderson, Stuart wrote:
>> Make an exception for BImode and small_register_classes_for_mode_p
>> (BImode).
>
> Thanks Bernd.
>
> Would this be acceptable:
>
> diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
> index 8d81c89..e4e13ab 100644
> --- a/gcc/ifcvt.c
> +++ b/gcc/ifcvt.c
>
>Make an exception for BImode and small_register_classes_for_mode_p
>(BImode).
Thanks Bernd.
Would this be acceptable:
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 8d81c89..e4e13ab 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -2295,7 +2295,9 @@ noce_get_condition (rtx jump, rtx *earliest, bool
On 02/22/2012 01:23 PM, Henderson, Stuart wrote:
> The problem with noce_get_condition is that if the condition variable
> is a MODE_INT register it will return it and set earliest as the jump
> insn itself. I'm not sure why this is the case, but it seems like
> something we don't want to be doing
>Not really. I think in dead_or_predicable you need to check in the
> /* Try the NCE path if the CE path did not result in any changes. */
>block (I assume this is where we end up in this testcase) that none of
>the live hard regs at the point where we are going to insert the insns
>are in small
On 02/14/2012 07:12 PM, Henderson, Stuart wrote:
>> spill_failure does return for asms since we don't want to ICE on bad
>> user code. That's all that's going on here.
>
> ahh, thanks.
>
>> It sounds like ifcvt needs to be fixed. Your example:
>>> block 44:
>>> set cc = x;
>>> set cc = y; (*)
>>>
Ping.
>>looks like an invalid transformation, but I suspect rather than setting
>>the CC register, the (*) insn is setting a pseudo (more accurate RTL
>>would be useful). There are some cases in ifcvt.c which check
>>targetm.small_register_classes_for_mode already, this is probably what
>>should be
>spill_failure does return for asms since we don't want to ICE on bad
>user code. That's all that's going on here.
ahh, thanks.
>It sounds like ifcvt needs to be fixed. Your example:
>> block 44:
>> set cc = x;
>> set cc = y; (*)
>> if cc jump;
>
>looks like an invalid transformation, but I suspe
On 02/07/2012 07:42 PM, Henderson, Stuart wrote:
> Hi,
> I'm investigating the following ICE building the Blackfin compiler from trunk:
> /home/shender/gnu-upstream/toolchain/gcc-4.7/libgfortran/generated/eoshift1_4.c:
> In function ÃâËeoshift1Ãââ:
> /home/shender/gnu-upstream/toolchain/gcc-4.7/li