This is the mail archive of the gcc@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]

Another DCE problem with array addresses


This looks very similar to the problem fixed with
	http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02671.html

Here's the test case (cut down from the ACATS suite):

PROCEDURE C41325A IS

   TYPE ARRAY_1 IS ARRAY (1..10) OF INTEGER;

   VAR_ARA_1 : ARRAY_1 := (1..10 => 1);
BEGIN
     IF "<=" (VAR_ARA_1, ARRAY_1'(1..10 => 1)) THEN
          NULL;
     ELSE
	raise Program_Error;
     END IF;

END C41325A;

Here's the relevant diff:

*** c41325a.adb.t21.copyrename1 2004-08-01 09:24:50.000000000 -0400
--- c41325a.adb.t22.dce1        2004-08-01 09:24:50.000000000 -0400
***************
*** 42,75 ****
    var_ara_1[7]{lb: 1 sz: 4} = 1;
    #   var_ara_1_9 = V_MAY_DEF <var_ara_1_8>;
    var_ara_1[8]{lb: 1 sz: 4} = 1;
    #   var_ara_1_10 = V_MAY_DEF <var_ara_1_9>;
    var_ara_1[9]{lb: 1 sz: 4} = 1;
    #   var_ara_1_11 = V_MAY_DEF <var_ara_1_10>;
    var_ara_1[10]{lb: 1 sz: 4} = 1;
-   #   T.0_13 = V_MAY_DEF <T.0_12>;
-   T.0[1]{lb: 1 sz: 4} = 1;
-   #   T.0_14 = V_MAY_DEF <T.0_13>;
-   T.0[2]{lb: 1 sz: 4} = 1;
-   #   T.0_15 = V_MAY_DEF <T.0_14>;
-   T.0[3]{lb: 1 sz: 4} = 1;
-   #   T.0_16 = V_MAY_DEF <T.0_15>;
-   T.0[4]{lb: 1 sz: 4} = 1;
-   #   T.0_17 = V_MAY_DEF <T.0_16>;
-   T.0[5]{lb: 1 sz: 4} = 1;
-   #   T.0_18 = V_MAY_DEF <T.0_17>;
-   T.0[6]{lb: 1 sz: 4} = 1;
-   #   T.0_19 = V_MAY_DEF <T.0_18>;
-   T.0[7]{lb: 1 sz: 4} = 1;
-   #   T.0_20 = V_MAY_DEF <T.0_19>;
-   T.0[8]{lb: 1 sz: 4} = 1;
-   #   T.0_21 = V_MAY_DEF <T.0_20>;
-   T.0[9]{lb: 1 sz: 4} = 1;
-   #   T.0_22 = V_MAY_DEF <T.0_21>;
-   T.0[10]{lb: 1 sz: 4} = 1;
    R12b_23 = &T.0;
    R12b.1_24 = (SIGNED_64)R12b_23;
    R12b.2_25 = (system__address)R12b.1_24;
    var_ara_1.3_26 = (SIGNED_64)&var_ara_1;
    var_ara_1.4_27 = (system__address)var_ara_1.3_26;
    #   var_ara_1_29 = V_MAY_DEF <var_ara_1_11>;
    T.5_28 = system__compare_array_signed_32__compare_array_s32 (var_ara_1.4_27,
 R12b.2_25, 10, 10);
--- 42,55 ----


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