------- 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

Reply via email to