------- Comment #8 from dennis dot wassel at googlemail dot com 2008-11-27 10:32 ------- (In reply to comment #6) > This ICE is different than the one you reported first: this fails in the > debug dumps function. Could you report the backtrace using the following > flags: > > gfortran -O3 -ftree-vectorize -ftree-parallelize-loops=2 -c ma57.f
Found the error report function and put a breakpoint on it. This is where the trouble stems from: Starting program: /localdata/libexec/gcc/i686-pc-linux-gnu/4.3.2/f951 ma57.f -ffixed-form -quiet -dumpbase ma57.f -mtune=athlon64 -march=athlon64 -auxbase ma57 -O3 -version -ftree-vectorize -ftree-parallelize-loops=2 -fintrinsic-modules-path /localdata/bin/../lib/gcc/i686-pc-linux-gnu/4.3.2/finclude -o /tmp/cc2PjThK.s Failed to read a valid object file image from memory. GNU F95 (GCC) version 4.3.2 (i686-pc-linux-gnu) compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.3.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Breakpoint 2, pp_printf (pp=0x87a3050, msg=0x862be16 "In function %qs") at pretty-print.c:772 (gdb) bt #0 pp_printf (pp=0x87a3050, msg=0x862be16 "In function %qs") at pretty-print.c:772 #1 0x08218c00 in lhd_print_error_function (..., file=0x87c56d8 "ma57.f", ...) at langhooks.c:408 #2 0x08177791 in diagnostic_report_current_function at diagnostic.c:268 #3 0x08177d79 in default_diagnostic_starter at diagnostic.c:306 #4 0x08177a42 in diagnostic_report_diagnostic at diagnostic.c:421 #5 0x0817811f in error (gmsgid=0x86d295c "edge from %d to %d should be marked irreducible") at diagnostic.c:558 #6 0x08557f9a in verify_loop_structure () at cfgloop.c:1433 #7 0x08304d0a in parallelize_loops () at tree-parloops.c:1801 #8 0x08355be5 in tree_parallelize_loops () at tree-ssa-loop.c:486 #9 0x082466ea in execute_one_pass (pass=0x875c440) at passes.c:1122 #10 0x082469ef in execute_pass_list (pass=0x875c440) at passes.c:1175 #11 0x08246a10 in execute_pass_list (pass=0x875c100) at passes.c:1176 #12 0x08246a10 in execute_pass_list (pass=0x875b900) at passes.c:1176 #13 0x082fe85a in tree_rest_of_compilation (fndecl=0xb7a575b0) at tree-optimize.c:404 #14 0x084081fd in cgraph_expand_function (node=0xb79e5680) at cgraphunit.c:1157 #15 0x08408cc5 in cgraph_optimize () at cgraphunit.c:1220 #16 0x080e7c95 in gfc_be_parse_file (set_yydebug=0) at fortran/f95-lang.c:264 #17 0x082ca6f8 in toplev_main (argc=18, argv=0xbf9c8714) at toplev.c:1042 #18 0x08127aff in main (argc=142225528, argv=0x8be3d70) at main.c:35 If I remove both the -march and -mtune options, the error message changes (different edge numbers/indices/whatever) to ma57.f: In function 'ma57od': ma57.f:2724: error: edge from 694 to 704 should be marked irreducible ma57.f:2724: error: basic block 704 should be marked irreducible ma57.f:2724: error: edge from 704 to 697 should be marked irreducible ma57.f:2724: error: basic block 697 should be marked irreducible ma57.f:2724: error: edge from 697 to 120 should be marked irreducible ma57.f:2724: confused by earlier errors, bailing out Cheers, Dennis -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37951