This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] speedup reg_overlap_mentioned_p


Paolo Bonzini <paolo.bonzini@polimi.it> writes:

> Andreas Jaeger wrote:
>
>>bonzini <paolo.bonzini@polimi.it> writes:
>>
>>
>>>+  for (;;)
>>>+    {
>>>   switch (GET_CODE (x))
>>>     {
>>>+        case STRICT_LOW_PART:
>>>+        case ZERO_EXTRACT:
>>>+        case SIGN_EXTRACT:
>>>+          /* Overly conservative.  */
>>>+          x = XEXP (x, 0);
>>>+          continue;
>>>+
>>>
>>>[...]
>>>
>>This looks strange. Why do you add the for (;;) ?  I don't see a
>>reason for this...
>>
> It is needed for STRICT_LOWPART, ZERO_EXTRACT and SIGN_EXTRACT.  There
> is a continue statement.

For a construct like this, I would use a 'retry:' label and a goto,
instead of a fake loop.

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]