[PATCH] Strength reduction part 3 of 4: candidates with unknown strides

Janis Johnson janis_johnson@mentor.com
Thu Aug 9 02:21:00 GMT 2012


On 08/08/2012 06:41 PM, William J. Schmidt wrote:
> On Wed, 2012-08-08 at 15:35 -0700, Janis Johnson wrote:
>> On 08/08/2012 03:27 PM, Andrew Pinski wrote:
>>> On Wed, Aug 8, 2012 at 3:25 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> On Wed, Aug 1, 2012 at 10:36 AM, William J. Schmidt
>>>> <wschmidt@linux.vnet.ibm.com> wrote:

>>>>> +/* { dg-do compile } */
>>>>> +/* { dg-options "-O3 -fdump-tree-dom2 -fwrapv" } */
>>>>> +/* { dg-skip-if "" { ilp32 } { "-m32" } { "" } } */
>>>>> +
>>>>
>>>> This doesn't work on x32 nor Linux/ia32 since -m32
>>>> may not be needed for ILP32.  This patch works for
>>>> me.  OK to install?
>>>
>>> This also does not work for mips64 where the options are either
>>> -mabi=32 or -mabi=n32 for ILP32.
>>>
>>> HJL's patch looks correct.
>>>
>>> Thanks,
>>> Andrew
>>
>> There are GCC targets with 16-bit integers.  What's the actual
>> set of targets on which this test is meant to run?  There's a list
>> of effective-target names based on data type sizes in
>> <http://gcc.gnu.org/onlinedocs/gccint/Effective_002dTarget-Keywords.html#Effective_002dTarget-Keywords>.
> 
> Yes, sorry.  The test really is only valid when int and long have
> different sizes.  So according to that link we should skip ilp32 and
> llp64 at a minimum.  It isn't clear what we should do for int16 since
> the size of long isn't specified, so I suppose we should skip that as
> well.  So, perhaps modify HJ's patch to have
> 
> /* { dg-do compile { target { ! { ilp32 llp64 int16 } } } } */
> 
> ?
> 
> Thanks,
> Bill

That's confusing.  Perhaps what you really need is a new effective
target for "sizeof(int) != sizeof(long)".

Janis



More information about the Gcc-patches mailing list