[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-10-02 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

Segher Boessenkool  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #12 from Segher Boessenkool  ---
Fixed.

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-09-27 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #11 from Segher Boessenkool  ---
This should be fixed on trunk now.  Martin, can you please check that?

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-31 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

Martin Liška  changed:

   What|Removed |Added

   Priority|P3  |P4

--- Comment #10 from Martin Liška  ---
Having proper assembler, I can't reproduce that.

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-30 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #9 from Segher Boessenkool  ---
It's a different symptom, but sure, might be related.  Somehow your toolchain
thinks it is a newer ISA but not compliant to older ISAs :-/

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-30 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #8 from Martin Liška  ---
Same happens for:

./xgcc -B.
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/do_check_3.f90

#0  lookup_handler (scode=1122058) at insn-opinit.c:1156
#1  0x032f34de in raw_optab_handler (scode=1122058) at
insn-opinit.c:1173
#2  0x013a87d2 in convert_optab_handler (op=ufixtrunc_optab,
to_mode=E_DImode, from_mode=E_SFmode) at
/home/marxin/Programming/gcc/gcc/optabs-query.h:55
#3  0x01c4c93a in can_fix_p (fixmode=E_DImode, fltmode=E_SFmode,
unsignedp=1, truncp_ptr=0x7fffc9bb) at
/home/marxin/Programming/gcc/gcc/optabs-query.c:313
#4  0x01c2759a in expand_fix (to=0x75afca38, from=0x75afc9f0,
unsignedp=1) at /home/marxin/Programming/gcc/gcc/optabs.c:4922
#5  0x01405268 in expand_expr_real_2 (ops=0x7fffd230,
target=0x75afca38, tmode=E_DImode, modifier=EXPAND_NORMAL) at
/home/marxin/Programming/gcc/gcc/expr.c:8961
#6  0x00f8e553 in expand_gimple_stmt_1 (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673
#7  0x00f8ea9a in expand_gimple_stmt (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734
#8  0x00fa3f59 in expand_gimple_basic_block (bb=, disable_tail_calls=false) at
/home/marxin/Programming/gcc/gcc/cfgexpand.c:5770

on native target pats contains {scode = 1122058, icode =
CODE_FOR_fixuns_truncsfdi2}, on cross compiler not.

cross-compiler: (gdb) p sizeof(pats)
$2 = 4440

native:
(gdb) p sizeof(pats)
$15 = 5448

That said, isn't it similar to: PR86684?

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #7 from Segher Boessenkool  ---
lang_hooks.types.type_for_mode can return NULL, but emit_library_call_value
cannot handle that.

Why it fails on a cross and not natively, I don't know...  target bug is
my guess.

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #6 from Martin Liška  ---
Backtrace from GDB with function arguments visible:

#0  0x015140fd in aggregate_value_p (exp=0x0, fntype=0x0) at
/home/marxin/Programming/gcc/gcc/function.c:2046
#1  0x00f3d2e0 in emit_library_call_value_1 (retval=1,
orgfun=0x75834210, value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, nargs=1,
args=0x7fffc0d0) at /home/marxin/Programming/gcc/gcc/calls.c:4745
#2  0x0136c557 in emit_library_call_value (fun=0x75834210,
value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, arg1=0x75912ea0,
arg1_mode=E_SFmode) at /home/marxin/Programming/gcc/gcc/rtl.h:4185
#3  0x013b3a7a in convert_mode_scalar (to=0x75917558,
from=0x75912ea0, unsignedp=0) at
/home/marxin/Programming/gcc/gcc/expr.c:329
#4  0x013b2da4 in convert_move (to=0x75917558, from=0x75912ea0,
unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:271
#5  0x013ba345 in convert_modes (mode=E_KFmode, oldmode=E_SFmode,
x=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:712
#6  0x013b86db in convert_to_mode (mode=E_KFmode, x=0x75912ea0,
unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:637
#7  0x01c27738 in expand_fix (to=0x75912f30, from=0x75912ea0,
unsignedp=1) at /home/marxin/Programming/gcc/gcc/optabs.c:4930
#8  0x01405268 in expand_expr_real_2 (ops=0x7fffd1e0,
target=0x75912f30, tmode=E_DImode, modifier=EXPAND_NORMAL) at
/home/marxin/Programming/gcc/gcc/expr.c:8961
#9  0x00f8e553 in expand_gimple_stmt_1 (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673
#10 0x00f8ea9a in expand_gimple_stmt (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734
#11 0x00fa3f59 in expand_gimple_basic_block (bb=, disable_tail_calls=false) at
/home/marxin/Programming/gcc/gcc/cfgexpand.c:5770
#12 0x00fa88db in (anonymous namespace)::pass_expand::execute
(this=0x6e6f770, fun=0x75903000) at
/home/marxin/Programming/gcc/gcc/cfgexpand.c:6373
#13 0x01d1578d in execute_one_pass (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2446
#14 0x01d1611e in execute_pass_list_1 (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2535
#15 0x01d16272 in execute_pass_list (fn=0x75903000, pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2546
#16 0x010a13e3 in cgraph_node::expand (this=) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2121
#17 0x010a3a16 in output_in_order () at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2365
#18 0x010a5434 in symbol_table::compile (this=0x7580d000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2609
#19 0x010a5ea7 in symbol_table::finalize_compilation_unit
(this=0x7580d000) at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2788
#20 0x020dd5b6 in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:480
#21 0x020e4821 in do_compile () at
/home/marxin/Programming/gcc/gcc/toplev.c:2170
#22 0x020e4e50 in toplev::main (this=0x7fffd98e, argc=12,
argv=0x7fffda88) at /home/marxin/Programming/gcc/gcc/toplev.c:2305
#23 0x03aec681 in main (argc=12, argv=0x7fffda88) at
/home/marxin/Programming/gcc/gcc/main.c:39

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #5 from Martin Liška  ---
In calls.c I see:

   │4742  if (outmode != VOIDmode)  
   │4743{
   │4744  tfom = lang_hooks.types.type_for_mode (outmode, 0);
  >│4745  if (aggregate_value_p (tfom, 0))


(gdb) p tfom
$2 = 
(gdb) p outmode
$3 = E_KFmode

Would it help?

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #4 from Martin Liška  ---
ubsan build helps:

$ UBSAN_OPTIONS=print_stacktrace=1  ./xgcc -B.
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90
-frounding-math
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:5:

13 |   do x = 1.0, 2.05, 0.1
   | 1
Warning: Deleted feature: Loop variable at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:8:

13 |   do x = 1.0, 2.05, 0.1
   |1
Warning: Deleted feature: Start expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:13:

13 |   do x = 1.0, 2.05, 0.1
   | 1
Warning: Deleted feature: End expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:19:

13 |   do x = 1.0, 2.05, 0.1
   |   1
Warning: Deleted feature: Step expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/function.c:2046:22: runtime error: member
access within null pointer of type 'const union tree_node'
#0 0x15140fc in aggregate_value_p(tree_node const*, tree_node const*)
/home/marxin/Programming/gcc/gcc/function.c:2046
#1 0xf3d2df in emit_library_call_value_1(int, rtx_def*, rtx_def*,
libcall_type, machine_mode, int, std::pair*)
/home/marxin/Programming/gcc/gcc/calls.c:4745
#2 0x136c556 in emit_library_call_value(rtx_def*, rtx_def*, libcall_type,
machine_mode, rtx_def*, machine_mode)
/home/marxin/Programming/gcc/gcc/rtl.h:4185
#3 0x13b3a79 in convert_mode_scalar
/home/marxin/Programming/gcc/gcc/expr.c:329
#4 0x13b2da3 in convert_move(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:271
#5 0x13ba344 in convert_modes(machine_mode, machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:712
#6 0x13b86da in convert_to_mode(machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:637
#7 0x1c27737 in expand_fix(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/optabs.c:4930
#8 0x1405267 in expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier) /home/marxin/Programming/gcc/gcc/expr.c:8961
#9 0xf8e552 in expand_gimple_stmt_1
/home/marxin/Programming/gcc/gcc/cfgexpand.c:3673
#10 0xf8ea99 in expand_gimple_stmt
/home/marxin/Programming/gcc/gcc/cfgexpand.c:3734
#11 0xfa3f58 in expand_gimple_basic_block
/home/marxin/Programming/gcc/gcc/cfgexpand.c:5770
#12 0xfa88da in execute /home/marxin/Programming/gcc/gcc/cfgexpand.c:6373
#13 0x1d1578c in execute_one_pass(opt_pass*)
/home/marxin/Programming/gcc/gcc/passes.c:2446
#14 0x1d1611d in execute_pass_list_1
/home/marxin/Programming/gcc/gcc/passes.c:2535
#15 0x1d16271 in execute_pass_list(function*, opt_pass*)
/home/marxin/Programming/gcc/gcc/passes.c:2546
#16 0x10a13e2 in cgraph_node::expand()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2121
#17 0x10a3a15 in output_in_order
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2365
#18 0x10a5433 in symbol_table::compile()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2609
#19 0x10a5ea6 in symbol_table::finalize_compilation_unit()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2788
#20 0x20dd5b5 in compile_file /home/marxin/Programming/gcc/gcc/toplev.c:480
#21 0x20e4820 in do_compile /home/marxin/Programming/gcc/gcc/toplev.c:2170
#22 0x20e4e4f in toplev::main(int, char**)
/home/marxin/Programming/gcc/gcc/toplev.c:2305
#23 0x3aec680 in main /home/marxin/Programming/gcc/gcc/main.c:39
#24 0x75ea1fea in __libc_start_main ../csu/libc-start.c:308
#25 0x812bc9 in _start (/dev/shm/objdir2/gcc/f951+0x812bc9)

during RTL pass: expand
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:0:

13 |   do x = 1.0, 2.05, 0.1
   | 
internal compiler error: Segmentation fault
0x20dc92f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:325
0x75eb710f ???
   
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x15140fd aggregate_value_p(tree_node const*, tree_node const*)
/home/marxin/Programming/gcc/gcc/function.c:2046
0xf3d2df emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type,
machine_mode, int, std::pair*)
/home/marxin/Programming/gcc/gcc/calls.c:4745
0x136c556 emit_library_call_value(rtx_def*, rtx_def*, libcall_type,
machine_mode, rtx_def*, machine_mode)
/home/marxin/Programming/gcc/gcc/rtl.h:4185
0x13b3a79 convert_mode_scalar
/home/marxin/Programming/gcc/gcc/expr.c:329
0x13b2da3 convert_move(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:271
0x13ba344 convert_modes(machine_mode, machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:712
0x13b86da convert_to_mode(machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:637
0x1c27737 

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #3 from Segher Boessenkool  ---
... Nope, works fine with trunk as well.  You must be doing something you're
not telling us?

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #2 from Segher Boessenkool  ---
Actually, doesn't fail on powerpc64le-linux either.  Well let me try some
brand spanking new tree...

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #1 from Segher Boessenkool  ---
Does not fail on powerpc64-linux, even with -mlittle -mabi=elfv2 .