public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
@ 2021-03-05 20:31 qinzhao at gcc dot gnu.org
  2021-03-06  8:30 ` [Bug rtl-optimization/99421] " marxin at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: qinzhao at gcc dot gnu.org @ 2021-03-05 20:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

            Bug ID: 99421
           Summary: ICE:in code_motion_process_successors, at
                    sel-sched.c:6389 on aarch64
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: qinzhao at gcc dot gnu.org
  Target Milestone: ---

with the attached tar file, (from CPU2017 502.gcc_r)
untar it,
cd bug_3
sh t
during RTL pass: sched2
predict.c: In function ‘expr_expected_value_1’:
predict.c:1263:1: internal compiler error: in code_motion_process_successors,
at sel-sched.c:6389
0xd83883 code_motion_process_successors
        ../../latest_gcc_2/gcc/sel-sched.c:6386
0xd83883 code_motion_path_driver
        ../../latest_gcc_2/gcc/sel-sched.c:6609
0xd834f7 code_motion_process_successors
        ../../latest_gcc_2/gcc/sel-sched.c:6343
0xd834f7 code_motion_path_driver
        ../../latest_gcc_2/gcc/sel-sched.c:6609
0xd8645f move_op
        ../../latest_gcc_2/gcc/sel-sched.c:6702
0xd8645f move_exprs_to_boundary
        ../../latest_gcc_2/gcc/sel-sched.c:5224
0xd8645f schedule_expr_on_boundary
        ../../latest_gcc_2/gcc/sel-sched.c:5436
0xd87be3 fill_insns
        ../../latest_gcc_2/gcc/sel-sched.c:5578
0xd8a143 schedule_on_fences
        ../../latest_gcc_2/gcc/sel-sched.c:7353
0xd8a143 sel_sched_region_2
        ../../latest_gcc_2/gcc/sel-sched.c:7491
0xd8ac43 sel_sched_region_1
        ../../latest_gcc_2/gcc/sel-sched.c:7533
0xd8cc83 sel_sched_region(int)
        ../../latest_gcc_2/gcc/sel-sched.c:7634
0xd8d8d7 run_selective_scheduling()
        ../../latest_gcc_2/gcc/sel-sched.c:7720
0xd68977 rest_of_handle_sched2
        ../../latest_gcc_2/gcc/sched-rgn.c:3738
0xd68977 execute
        ../../latest_gcc_2/gcc/sched-rgn.c:3882
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


NOTE, this error is repeated with -fprofile-use, and the pre-generated
profiling data file predict.gcda is generated with gcc11 as following:

Target: aarch64-unknown-linux-gnu
Configured with: ../latest_gcc_2/configure
--prefix=/home/qinzhao/Install/latest-2 --enable-languages=c,c++,fortran,lto
--disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.0.1 20210304 (experimental) (GCC) 

since the error depends on the profiling feedback data, the testing case cannot
be reduced by hand or by tool (Creduce), I have to attach the complete
preprocessed file to repeat the error.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
@ 2021-03-06  8:30 ` marxin at gcc dot gnu.org
  2021-03-06 16:33 ` qinzhao at gcc dot gnu.org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-06  8:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
     Ever confirmed|0                           |1
                 CC|                            |marxin at gcc dot gnu.org
   Last reconfirmed|                            |2021-03-06

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Please provide the mentioned tarball and what compiler options are used for the
SPEC run?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
  2021-03-06  8:30 ` [Bug rtl-optimization/99421] " marxin at gcc dot gnu.org
@ 2021-03-06 16:33 ` qinzhao at gcc dot gnu.org
  2021-03-08  8:16 ` marxin at gcc dot gnu.org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: qinzhao at gcc dot gnu.org @ 2021-03-06 16:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #2 from qinzhao at gcc dot gnu.org ---
Created attachment 50318
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50318&action=edit
tar ball to repeat the failure

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
  2021-03-06  8:30 ` [Bug rtl-optimization/99421] " marxin at gcc dot gnu.org
  2021-03-06 16:33 ` qinzhao at gcc dot gnu.org
@ 2021-03-08  8:16 ` marxin at gcc dot gnu.org
  2021-03-08  8:16 ` marxin at gcc dot gnu.org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08  8:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, reduced test-case:

$ cat predict.ii
typedef struct {
  int *use
} ssa_use_operand_t;
enum { GIMPLE_PHI, GIMPLE_UNARY_RHS, GIMPLE_SINGLE_RHS } gimple_num_ops;
gimple_call_fndecl_addr_0_0, gimple_call_num_args, gimple_phi_num_args,
    gimple_phi_arg_imm_use_ptr_gs_0_0, expr_expected_value_1___trans_tmp_13,
    expr_expected_value_1___trans_tmp_11, expr_expected_value_1_def_0_0,
    expr_expected_value_1_new_val, expr_expected_value_1_val_0_1,
    expr_expected_value_1_code, expr_expected_value_1_op1,
    expr_expected_value_1___trans_tmp_4, expr_expected_value_1___trans_tmp_2,
    expr_expected_value_1_decl_0_0, expr_expected_value_1_val;
*expr_expected_value_1_op0;
get_gimple_rhs_class() {}
gimple_call_fndecl() {
  addr();
  if (gimple_call_fndecl_addr_0_0)
    return addr;
  return 0;
}
bb_estimate_probability_locally_bb() {
# 2 "predict.c"
}
static *expr_expected_value_1() {
  if (get_gimple_rhs_class == GIMPLE_SINGLE_RHS) {
    if (expr_expected_value_1_op0)
      return expr_expected_value_1_op0;
    if (expr_expected_value_1_code)
      return 0;
    if (bitmap_bit_p())
      return 0;
    bitmap_set_bit();
    if (expr_expected_value_1_def_0_0) {
      int n = gimple_phi_num_args, val;
      for (; n;) {
        gimple_phi_arg_imm_use_ptr_gs_0_0 ? fancy_abort() : 0;
        ssa_use_operand_t *use;
        if (use->use == 0)
          continue;
        expr_expected_value_1();
        if (expr_expected_value_1_new_val)
          return 0;
        if (!val)
          ;
        else if (operand_equal_p())
          return 0;
      }
      return expr_expected_value_1_new_val;
    }
    if (expr_expected_value_1___trans_tmp_11) {
      if (gimple_op())
        return 0;
      gimple_op();
      gimple_assign_rhs1();
      gimple_assign_rhs_code();
      if (gimple_num_ops)
        gimple_op();
      return expr_expected_value_1();
    }
    if (expr_expected_value_1___trans_tmp_13) {
      int decl = gimple_call_fndecl();
      if (!decl)
        return 0;
      if (expr_expected_value_1_decl_0_0) {
        if (gimple_call_num_args)
          return 0;
        gimple_call_arg();
        if (expr_expected_value_1_val_0_1)
          return &expr_expected_value_1_val;
        return gimple_call_arg();
      }
    }
    return 0;
  }
  if (get_gimple_rhs_class()) {
    int *res;
    expr_expected_value_1();
    if (expr_expected_value_1_op0)
      return 0;
    expr_expected_value_1();
    if (expr_expected_value_1_op1)
      return 0;
    fold_build2_stat_loc();
    if (expr_expected_value_1___trans_tmp_2)
      return res;
    return 0;
  }
  if (get_gimple_rhs_class == GIMPLE_UNARY_RHS) {
    int *res;
    expr_expected_value_1();
    if (expr_expected_value_1_op0)
      return 0;
    fold_build1_stat_loc();
    if (expr_expected_value_1___trans_tmp_4)
      return res;
    return 0;
  }
  return 0;
}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-03-08  8:16 ` marxin at gcc dot gnu.org
@ 2021-03-08  8:16 ` marxin at gcc dot gnu.org
  2021-03-08 15:39 ` qinzhao at gcc dot gnu.org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08  8:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |85099
             Status|WAITING                     |NEW


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85099
[Bug 85099] [meta-bug] selective scheduling issues

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-03-08  8:16 ` marxin at gcc dot gnu.org
@ 2021-03-08 15:39 ` qinzhao at gcc dot gnu.org
  2021-03-08 17:58 ` marxin at gcc dot gnu.org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: qinzhao at gcc dot gnu.org @ 2021-03-08 15:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #4 from qinzhao at gcc dot gnu.org ---
(In reply to Martin Liška from comment #3)
> Confirmed, reduced test-case:
>
just curious, how did you reduce the testing case with -fprofile-use? (I tried
Creduce, but failed)
another question, how to repeat the failure with this reduced testing case?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-03-08 15:39 ` qinzhao at gcc dot gnu.org
@ 2021-03-08 17:58 ` marxin at gcc dot gnu.org
  2021-03-09  9:49 ` marxin at gcc dot gnu.org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08 17:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to qinzhao from comment #4)
> (In reply to Martin Liška from comment #3)
> > Confirmed, reduced test-case:
> >
> just curious, how did you reduce the testing case with -fprofile-use? (I

Sure. I used C-Vise:
https://github.com/marxin/cvise

with a built cross compiler:
cvise -c 'cp ~/Programming/gcc2/objdir/gcc/predict.gcda . &&
/home/marxin/Programming/gcc2/objdir/gcc/xgcc -B
/home/marxin/Programming/gcc2/objdir/gcc/ -fprofile-use -fselective-scheduling
-fselective-scheduling2 -fsel-sched-pipelining -g  -O3 -fno-strict-aliasing -c
predict.i 2>&1 | grep code_motion_process_successors' predict.i

> tried Creduce, but failed)
> another question, how to repeat the failure with this reduced testing case?

Note that one can theoretically reduce also the .gcda file. I have an
experimental pass for it in C-Vise and I will likely upstream it.

Does it explain all your questions?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-03-08 17:58 ` marxin at gcc dot gnu.org
@ 2021-03-09  9:49 ` marxin at gcc dot gnu.org
  2021-03-09  9:50 ` marxin at gcc dot gnu.org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-09  9:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> ---
> Note that one can theoretically reduce also the .gcda file. I have an
> experimental pass for it in C-Vise and I will likely upstream it.

I've just added that here:
https://github.com/marxin/cvise/commit/ee714eeaa18f617d288dfee676d3f911a8edc2c8

with the commit, one can reduce the GCDA file:

$ ./cvise.py -n1 --pass-group=binary -c 'cp
~/Programming/gcc2/objdir/gcc/predict.i . &&
/home/marxin/Programming/gcc2/objdir/gcc/xgcc -B
/home/marxin/Programming/gcc2/objdir/gcc/ -fprofile-use -fselective-scheduling
-fselective-scheduling2 -fsel-sched-pipelining -g  -O3 -fno-strict-aliasing -c
predict.i 2>&1 | grep code_motion_process_successors' predict.gcda
...
00:00:00 INFO running 1 interestingness test in parallel
00:00:00 INFO INITIAL PASSES
00:00:00 INFO ===< GCDABinaryPass::None >===
00:00:00 INFO (30.0%, 8148 bytes)
00:00:01 INFO (63.9%, 4200 bytes)
00:00:01 INFO (71.0%, 3372 bytes)
00:00:02 INFO (89.8%, 1184 bytes)
00:00:02 INFO (92.2%, 904 bytes)
00:00:03 INFO (92.9%, 828 bytes)
00:00:03 INFO (96.1%, 448 bytes)
00:00:03 INFO MAIN PASSES
00:00:03 INFO Termination check: size was 448; now 448
00:00:03 INFO CLEANUP PASSES
00:00:03 INFO ===================== done ====================
===< PASS statistics >===
  pass name                                              time (s) time (%)  
worked   failed  total executed
  GCDABinaryPass::None                                       3.36    92.65     
  7       12              20

Runtime: 4 seconds

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-03-09  9:49 ` marxin at gcc dot gnu.org
@ 2021-03-09  9:50 ` marxin at gcc dot gnu.org
  2021-03-09 16:39 ` qing.zhao at oracle dot com
  2021-03-09 17:12 ` marxin at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-09  9:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> ---
Created attachment 50336
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50336&action=edit
Reduced gcda file

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-03-09  9:50 ` marxin at gcc dot gnu.org
@ 2021-03-09 16:39 ` qing.zhao at oracle dot com
  2021-03-09 17:12 ` marxin at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: qing.zhao at oracle dot com @ 2021-03-09 16:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #8 from Qing Zhao <qing.zhao at oracle dot com> ---
> On Mar 8, 2021, at 11:58 AM, marxin at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org> wrote:
> 
> Sure. I used C-Vise:
> https://github.com/marxin/cvise

>From my understanding, cvise is similar as creduce, but faster.
So, I am still wondering why creduce cannot reduce testing cases when using
profiling feedback due to
Profiling mismatch? But cvise can do this? Does Cvise reduce source code and
.gcda file at the same 
time?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug rtl-optimization/99421] ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64
  2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-03-09 16:39 ` qing.zhao at oracle dot com
@ 2021-03-09 17:12 ` marxin at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-09 17:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99421

--- Comment #9 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Qing Zhao from comment #8)
> > On Mar 8, 2021, at 11:58 AM, marxin at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org> wrote:
> > 
> > Sure. I used C-Vise:
> > https://github.com/marxin/cvise
> 
> From my understanding, cvise is similar as creduce, but faster.

Exactly.

> So, I am still wondering why creduce cannot reduce testing cases when using
> profiling feedback due to
> Profiling mismatch?

Show me your interestingness test and error message you see and I can guess.
I guess you miss copying of .gcda file into a working directory where each
reduction attempt happens.

> But cvise can do this? Does Cvise reduce source code and
> .gcda file at the same 
> time?

No, it's a separate reduction.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-03-09 17:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05 20:31 [Bug rtl-optimization/99421] New: ICE:in code_motion_process_successors, at sel-sched.c:6389 on aarch64 qinzhao at gcc dot gnu.org
2021-03-06  8:30 ` [Bug rtl-optimization/99421] " marxin at gcc dot gnu.org
2021-03-06 16:33 ` qinzhao at gcc dot gnu.org
2021-03-08  8:16 ` marxin at gcc dot gnu.org
2021-03-08  8:16 ` marxin at gcc dot gnu.org
2021-03-08 15:39 ` qinzhao at gcc dot gnu.org
2021-03-08 17:58 ` marxin at gcc dot gnu.org
2021-03-09  9:49 ` marxin at gcc dot gnu.org
2021-03-09  9:50 ` marxin at gcc dot gnu.org
2021-03-09 16:39 ` qing.zhao at oracle dot com
2021-03-09 17:12 ` marxin at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).