| |||||||||||||||||||||||||||||
|
Hi, I am trying to get the SVN head built locally again and back at work on the GNAT/RTEMS work I was doing. Unfortunately, I have tripped across something that is quite bad. Compiling on Linux x86 targeting the PowerPC or SPARC leads to a huge compilation time on a single file. joel 27918 27917 98 08:18 pts/11 02:46:24 /home/joel/work-gnat/svn/b-gcc2-powerpc/./gcc/gnat1 -quiet -nostdinc -dumpbase g-catiio.adb -O2 -W -Wall -g -gnatpg -gnatO g-catiio.o g-catiio.adb -o /tmp/cch0iMng.s Here is the same process in top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 27918 joel 20 0 106m 95m 10m R 100 9.6 170:37.92 gnat1 This is with a PowerPC build. The SPARC eventually finished in an over night build so I don't know how long it took. It doesn't appear to be thrashing on memory. Just CPU time. I attached to the gnat1 process in gdb and got this back trace: (gdb) bt #0 0x083f0231 in bitmap_elt_ior (dst=0xc688880, dst_elt=0xc4170d0, dst_prev=0xafc2144, a_elt=0xc4170d0, b_elt=0xb1d551c, changed=0 '\0') at ../../gcc/gcc/bitmap.c:1404 #1 0x083f03af in bitmap_ior_into (a=0xc688880, b=0xc6822f8) at ../../gcc/gcc/bitmap.c:1511 #2 0x0842361e in df_live_confluence_n (e=0x42126e88) at ../../gcc/gcc/df-problems.c:1524 #3 0x0841d8b5 in df_worklist_propagate_forward (dataflow=0xade6c60, bb_index=1284, bbindex_to_postorder=0xc6d4050, pending=0xaf65f4c, considered=0xc651eb8) at ../../gcc/gcc/df-core.c:875 #4 0x0841dfa8 in df_worklist_dataflow (dataflow=0xade6c60, blocks_to_consider=0xaf65618, blocks_in_postorder=0xacd75d0, n_blocks=1746) at ../../gcc/gcc/df-core.c:999 #5 0x0841e17b in df_analyze_problem (dflow=0xade6c60, blocks_to_consider=0xaf65618, postorder=0xacd75d0, n_blocks=1746) at ../../gcc/gcc/df-core.c:1060 #6 0x0841e50e in df_analyze () at ../../gcc/gcc/df-core.c:1150 #7 0x08c48e6c in if_convert () at ../../gcc/gcc/ifcvt.c:4045 #8 0x08c49091 in rest_of_handle_if_conversion () at ../../gcc/gcc/ifcvt.c:4124 #9 0x086430ef in execute_one_pass (pass=0x8f19200) at ../../gcc/gcc/passes.c:1118 #10 0x08643239 in execute_pass_list (pass=0x8f19200) at ../../gcc/gcc/passes.c:1171 ---Type <return> to continue, or q <return> to quit--- #11 0x08643255 in execute_pass_list (pass=0x8f13080) at ../../gcc/gcc/passes.c:1172 #12 0x08792fa9 in tree_rest_of_compilation (fndecl=0x40048480) at ../../gcc/gcc/tree-optimize.c:404 #13 0x08a1006b in cgraph_expand_function (node=0x400bd300) at ../../gcc/gcc/cgraphunit.c:1151 #14 0x08a101fc in cgraph_expand_all_functions () at ../../gcc/gcc/cgraphunit.c:1214 #15 0x08a1080d in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1421 #16 0x080a549d in gnat_write_global_declarations () at ../../gcc/gcc/ada/utils.c:4024 #17 0x08705647 in compile_file () at ../../gcc/gcc/toplev.c:1055 #18 0x0870706e in do_compile () at ../../gcc/gcc/toplev.c:2245 #19 0x087070d0 in toplev_main (argc=15, argv=0xbf8d1484) at ../../gcc/gcc/toplev.c:2277 #20 0x083daa6e in main (argc=Cannot access memory at address 0xffffff3a ) at ../../gcc/gcc/main.c:35 (gdb) Single stepping for a while, I didn't see it get up the call chain farther than df_worklist_propagate_forward before it descended again. Any ideas? --joel
| ||||||||||||||||||||||||||||
© 2004-2008 readlist.com