[Bug tree-optimization/99721] ICE: Segmentation fault (in vect_schedule_slp_node)

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 23 08:01:21 GMT 2021


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
I was able to reduce the test-case to:

$ cat pr99721.f90
subroutine sub_c
  complex, dimension(2,3) :: at
  complex, dimension(2,4) :: b
  complex, dimension(3,4) :: c
  data b / (41., 43.), 0, 0, 0, 0, 0, 0, 0/
  c = matmul(transpose(at), b)
  if (any (c /= cres)) stop 
end

$ valgrind --trace-children=yes
~/BIG/bin/aarch64/dev/shm/buildbot/install/gcc/bin/aarch64-linux-gnu-gcc
pr99721.f90 -c -O3  -march=armv8.3-a
...
==11878== Invalid read of size 8
==11878==    at 0xEE46F2: vect_schedule_slp_node(vec_info*, _slp_tree*,
_slp_instance*) (tree-vect-slp.c:6150)
==11878==    by 0xEF058F: vect_schedule_scc(vec_info*, _slp_tree*,
_slp_instance*, hash_map<_slp_tree*, slp_scc_info,
simple_hashmap_traits<default_hash_traits<_slp_tree*>, slp_scc_info> >&, int&,
vec<_slp_tree*, va_heap, vl_ptr>&) (tree-vect-slp.c:6342)
==11878==    by 0xEF029E: vect_schedule_scc(vec_info*, _slp_tree*,
_slp_instance*, hash_map<_slp_tree*, slp_scc_info,
simple_hashmap_traits<default_hash_traits<_slp_tree*>, slp_scc_info> >&, int&,
vec<_slp_tree*, va_heap, vl_ptr>&) (tree-vect-slp.c:6323)
==11878==    by 0xEF029E: vect_schedule_scc(vec_info*, _slp_tree*,
_slp_instance*, hash_map<_slp_tree*, slp_scc_info,
simple_hashmap_traits<default_hash_traits<_slp_tree*>, slp_scc_info> >&, int&,
vec<_slp_tree*, va_heap, vl_ptr>&) (tree-vect-slp.c:6323)
==11878==    by 0xEF029E: vect_schedule_scc(vec_info*, _slp_tree*,
_slp_instance*, hash_map<_slp_tree*, slp_scc_info,
simple_hashmap_traits<default_hash_traits<_slp_tree*>, slp_scc_info> >&, int&,
vec<_slp_tree*, va_heap, vl_ptr>&) (tree-vect-slp.c:6323)
==11878==    by 0xEF0A1B: vect_schedule_slp(vec_info*, vec<_slp_instance*,
va_heap, vl_ptr>) (tree-vect-slp.c:6458)
==11878==    by 0xED2A0B: vect_transform_loop(_loop_vec_info*, gimple*)
(tree-vect-loop.c:9535)
==11878==    by 0xEFAB6C: try_vectorize_loop_1(hash_table<simduid_to_vf, false,
xcallocator>*&, unsigned int*, loop*, gimple*, gimple*)
(tree-vectorizer.c:1104)
==11878==    by 0xEFB7D9: vectorize_loops() (tree-vectorizer.c:1243)
==11878==    by 0xBE1267: execute_one_pass(opt_pass*) (passes.c:2567)
==11878==    by 0xBE1BCF: execute_pass_list_1(opt_pass*) (passes.c:2656)
==11878==    by 0xBE1BE1: execute_pass_list_1(opt_pass*) (passes.c:2657)
==11878==  Address 0x8 is not stack'd, malloc'd or (recently) free'd


More information about the Gcc-bugs mailing list