This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/53390] New: ICE: tree check: expected integer_cst, have nop_expr in vect_compute_data_ref_alignmen on 32-bit x86 host
- From: "gary at intrepid dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 May 2012 17:08:57 +0000
- Subject: [Bug tree-optimization/53390] New: ICE: tree check: expected integer_cst, have nop_expr in vect_compute_data_ref_alignmen on 32-bit x86 host
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53390
Bug #: 53390
Summary: ICE: tree check: expected integer_cst, have nop_expr
in vect_compute_data_ref_alignmen on 32-bit x86 host
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: gary@intrepid.com
CC: PHHargrove@lbl.gov
Host: CentOS 6 x86-32
Target: x86-32
Built on x86-32 with GCC 4.8 trunk version 187616 (2012-05-16), the attached
test case fails with following internal error (with checks enabled).
test.i: In function âfooâ:
test.i:10:6: internal compiler error: tree check: expected integer_cst, have
nop_expr in tree_int_cst_sgn, at tree.c:6601
Back trace:
#0 internal_error (gmsgid=0x8f57f68 "tree check: %s, have %s in %s, at %s:%d")
at gcc/diagnostic.c:955
#1 0x089e6b71 in tree_check_failed (node=0xb7c8a378,
file=0x8f57148 "gcc/tree.c", line=6601,
function=0x8f5958c "tree_int_cst_sgn")
at gcc/tree.c:8886
#2 0x089d7c50 in tree_int_cst_sgn (t=0xb7c8a378)
at gcc/tree.c:6601
#3 0x089d7108 in tree_int_cst_lt (t1=0xb7c8a378, t2=0xb7bec594)
at gcc/tree.c:6503
#4 0x089d7634 in tree_int_cst_compare (t1=0xb7c8a378, t2=0xb7bec594)
at gcc/tree.c:6525
#5 0x08e2abda in vect_compute_data_ref_alignment (dr=0x92a3768)
at gcc/tree-vect-data-refs.c:923
#6 0x08e2ae38 in vect_compute_data_refs_alignment (loop_vinfo=0x92a37e0,
bb_vinfo=0x0) at gcc/tree-vect-data-refs.c:976
#7 0x08e2d99f in vect_analyze_data_refs_alignment (loop_vinfo=0x92a37e0,
bb_vinfo=0x0)
at gcc/tree-vect-data-refs.c:2074
(gdb) f 5
#5 0x08e2abda in vect_compute_data_ref_alignment (dr=0x92a3768)
at gcc/tree-vect-data-refs.c:923
923 if (tree_int_cst_compare (DR_STEP (dr), size_zero_node) < 0)
(gdb) l
918 && DECL_ALIGN (base) >= TYPE_ALIGN (vectype)));
919
920 /* If this is a backward running DR then first access in the larger
921 vectype actually is N-1 elements before the address in the DR.
922 Adjust misalign accordingly. */
923 if (tree_int_cst_compare (DR_STEP (dr), size_zero_node) < 0)
924 {
925 tree offset = ssize_int (TYPE_VECTOR_SUBPARTS (vectype) - 1);
926 /* DR_STEP(dr) is the same as -TYPE_SIZE of the scalar type,
927 otherwise we wouldn't be here. */
(gdb) down
#4 0x089d7634 in tree_int_cst_compare (t1=0xb7c8a378, t2=0xb7bec594)
at gcc/tree.c:6525
6525 if (tree_int_cst_lt (t1, t2))
(gdb) p t1
$1 = (const_tree) 0xb7c8a378
(gdb) pt
<nop_expr 0xb7c8a378
type <integer_type 0xb7bff0c0 ssizetype public SI
size <integer_cst 0xb7bec55c constant 32>
unit size <integer_cst 0xb7bec578 constant 4>
align 32 symtab 0 alias set -1 canonical type 0xb7bff0c0 precision 32
min <integer_cst 0xb7bec620 -2147483648> max <integer_cst 0xb7bec63c
2147483647>>
arg 0 <mult_expr 0xb7c87a80
type <integer_type 0xb7bff3c0 unsigned int public unsigned SI size
<integer_cst 0xb7bec55c 32> unit size <integer_cst 0xb7bec578 4>
align 32 symtab 0 alias set -1 canonical type 0xb7bff3c0 precision
32 min <integer_cst 0xb7bec86c 0> max <integer_cst 0xb7bec850 4294967295>
pointer_to_this <pointer_type 0xb7c0b300>>
arg 0 <nop_expr 0xb7c8a348 type <integer_type 0xb7bff3c0 unsigned int>
arg 0 <ssa_name 0xb7c70d3c type <integer_type 0xb7bff360 int>
visited var <var_decl 0xb7c81cc0 pretmp.12>def_stmt
pretmp.12_42 = var2;
version 42>>
arg 1 <integer_cst 0xb7c7fa64 constant 2>>>
I was unable to cause this to fail on an x86_64 *host* compiling with -m32, but
perhaps needed to try some other configuration options. The failing compiler
above was built on an x86-32 (CentOS 6) host with --disable-bootstrap and
--enable-checking.