This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] fix PR34413: ltrans-7.f90 fails on amd64-linux
Sebastian Pop wrote:
> On Dec 20, 2007 11:14 PM, David Daney <ddaney@avtrex.com> wrote:
>
>> David Daney wrote:
>>
>>> Sebastian Pop wrote:
>>>
>>>
>>>> Hi,
>>>> the attached patch fixes the loop interchange for this important
>>>> testcase. The original patch that I sent as feedback to the PR
>>>> http://gcc.gnu.org/PR34413 fails for two cases in the vectorizer
>>>> vect-{104,105}.c where the type of the chrec_a is a pointer type and
>>>> the difference expected chrec_b to be of size_type in that case. This
>>>> patch uses a larger integer type, long_integer_type_node instead of
>>>> integer_type_node, such that on 64 bit machines pointer types can fit
>>>> in. The patch bootstrapped and passed testsuite fixing ltrans-7.f90
>>>> on an amd64-linux. I will commit the patch to trunk.
>>>>
>>>> Sebastian
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> 2007-12-19 Sebastian Pop <sebastian.pop@amd.com>
>>>>
>>>> PR tree-optimization/34413
>>>> * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
>>>> analyze_siv_subscript_cst_affine, analyze_miv_subscript,
>>>> omega_setup_subscript): Use long_integer_type_node instead of
>>>> integer_type_node.
>>>>
>>>>
>>>>
>>>>
>>> This causes an ICE on certain java code.
>>> long_integer_type_node is NULL. I am not sure where it is supposed to
>>> be initialized.
>>>
>>>
>>>
>> For java *type_node is initialize in gcc/java/decl.c in
>> java_init_decl_processing (). Java does not initialize
>> long_integer_type_node thus the ICE because your patch uses
>> long_integer_type_node.
>>
>> For the time being I am going to revert this patch in my local tree. My
>> testcase is a 1000 class 600,000 line program. If a reduced test case
>> is needed I may be able to generate one in a couple of days.
>>
>>
>
> I'm testing another patch for using the front-end specific signed types
> from a type. Attached is the patch that I'm bootstrapping on amd64-linux.
>
> Sorry for the fails,
> Sebastian
>
> ------------------------------------------------------------------------
>
> 2007-12-20 Sebastian Pop <sebastian.pop@amd.com>
>
> * tree-data-ref.c (signed_type_for_types): New.
> (affine_fn_op): Use signed_type_for_types and signed_type_for instead
> of long_integer_type_node.
> (analyze_ziv_subscript): Same.
> (analyze_siv_subscript_cst_affine): Same.
> (analyze_miv_subscript): Same.
> (omega_setup_subscript): Same.
>
>
This patch fixes the ICE in my testcase.
Thanks,
David Daney