Bug 85727 - ICE in simplify_subreg, at simplify-rtx.c:6271
Summary: ICE in simplify_subreg, at simplify-rtx.c:6271
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-checking, ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2018-05-10 03:23 UTC by Arseny Solokha
Modified: 2018-11-12 08:41 UTC (History)
0 users

See Also:
Host:
Target: powerpc-*-linux-gnu*
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arseny Solokha 2018-05-10 03:23:17 UTC
gcc-9.0.0-alpha20180506 snapshot (r259982) ICEs when compiling the following snippet w/ -O2 -fno-dce -fno-forward-propagate -fno-guess-branch-probability -fno-tree-coalesce-vars -fno-tree-dce -fno-tree-loop-im -fno-tree-pre -fno-tree-sink -g:

long long int w9, t0;
int d1, zf;

void
ct (double nd, long long int lu, int xp, int cx, short int hz, char sb)
{
  long long int yk = 0;
  unsigned int i6 = hz;
  int ae = xp;

  t0 = cx;

  while ((int) ((double) (1 / ae) + 1) / 3 == lu)
    {
      unsigned long long int ba = 0x8001;

      yk = zf / ba - d1 + (ae - ba / (sb + 1));
      nd = (i6 - yk) | (w9 + xp + ba);
      ae = !sb + d1 / ba;
    }

  while (nd < 1.0)
    hz = yk + t0 / sb;
}

% powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20180506 -O2 -fno-dce -fno-forward-propagate -fno-guess-branch-probability -fno-tree-coalesce-vars -fno-tree-dce -fno-tree-loop-im -fno-tree-pre -fno-tree-sink -g -c yudhcajz.c
during RTL pass: vartrack
yudhcajz.c: In function 'ct':
yudhcajz.c:24:1: internal compiler error: in simplify_subreg, at simplify-rtx.c:6271
 }
 ^
0xc2efb0 simplify_subreg(machine_mode, rtx_def*, machine_mode, poly_int<1u, unsigned long>)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/simplify-rtx.c:6271
0xc332bb simplify_gen_subreg(machine_mode, rtx_def*, machine_mode, poly_int<1u, unsigned long>)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/simplify-rtx.c:6525
0xfcec61 vt_expand_loc_callback
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8470
0x78a049 cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1679
0x789e2a cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1753
0x78be7d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1561
0xfcec3c vt_expand_loc_callback
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8463
0x78a049 cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1679
0x789e2a cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1753
0x78be7d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1561
0xfcf13a vt_expand_var_loc_chain
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8366
0xfcf13a vt_expand_loc_callback
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8529
0x78a100 cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1714
0x78be7d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1561
0xfcf13a vt_expand_var_loc_chain
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8366
0xfcf13a vt_expand_loc_callback
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8529
0x78be7d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1561
0xfcec3c vt_expand_loc_callback
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/var-tracking.c:8463
0x78a049 cselib_expand_value_rtx_1
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1679
0x78be7d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*)
	/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180506/work/gcc-9-20180506/gcc/cselib.c:1561
Comment 1 Arseny Solokha 2018-11-12 06:42:00 UTC
I cannot reproduce it on the trunk anymore (as of r266019).
Comment 2 Arseny Solokha 2018-11-12 08:41:07 UTC
OK, I'll reopen it if necessary.