On Mon, Oct 8, 2012 at 11:26 AM, Ludovic Courtès <l...@gnu.org> wrote: > Hello, > > Consider the attached plug-in, which adds a new dummy pass after the > “ssa” pass, with ‘TODO_rebuild_alias’ as its start flags: > > > > When compiling with -O0 a non-trivial file with that plug-in, one ends > up with: > > numbers.c:8728:10: internal compiler error: in make_decl_rtl, at > varasm.c:1163 > gcc: internal compiler error: Aborted (program cc1) > > and a backtrace like this: > > --8<---------------cut here---------------start------------->8--- > #6 0x000000000056bfa4 in fancy_abort (file=<optimized out>, line=1163, > function=0xc2a3f5 "make_decl_rtl") at ../../gcc-4.6.2/gcc/diagnostic.c:893 > #7 0x0000000000853bae in make_decl_rtl (decl=0x7f3cfd0458c0) at > ../../gcc-4.6.2/gcc/varasm.c:1159 > #8 0x00000000005bd485 in expand_expr_real_1 (exp=0x7f3cfd0458c0, > target=<optimized out>, > tmode=VOIDmode, modifier=EXPAND_WRITE, alt_rtl=<optimized out>) > at ../../gcc-4.6.2/gcc/expr.c:8462 > #9 0x00000000005c83a8 in expand_expr (modifier=EXPAND_WRITE, mode=VOIDmode, > target=0x0, > exp=0x7f3cfd0458c0) at ../../gcc-4.6.2/gcc/expr.h:422 > #10 expand_assignment (nontemporal=0 '\000', from=0x7f3cfc967160, > to=0x7f3cfd0458c0) > at ../../gcc-4.6.2/gcc/expr.c:4422 > #11 expand_assignment (to=0x7f3cfd0458c0, from=0x7f3cfc967160, nontemporal=0 > '\000') > at ../../gcc-4.6.2/gcc/expr.c:4119 > #12 0x00000000005350c8 in expand_gimple_stmt_1 (stmt=0x7f3cfd046460) > at ../../gcc-4.6.2/gcc/cfgexpand.c:1975 > #13 expand_gimple_stmt (stmt=0x7f3cfd046460) at > ../../gcc-4.6.2/gcc/cfgexpand.c:2084 > #14 0x0000000000536218 in expand_gimple_basic_block (bb=0x7f3cfd047a90) > at ../../gcc-4.6.2/gcc/cfgexpand.c:3626 > #15 0x0000000000539bbe in gimple_expand_cfg () at > ../../gcc-4.6.2/gcc/cfgexpand.c:4109 > #16 0x000000000068b589 in execute_one_pass (pass=0x10a3dc0) at > ../../gcc-4.6.2/gcc/passes.c:1556 > #17 0x000000000068b835 in execute_pass_list (pass=0x10a3dc0) at > ../../gcc-4.6.2/gcc/passes.c:1611 > #18 0x0000000000757751 in tree_rest_of_compilation (fndecl=0x7f3cfdb03900) > at ../../gcc-4.6.2/gcc/tree-optimize.c:422 > #19 0x00000000008978cf in cgraph_expand_function (node=0x7f3cfd2c8420) > at ../../gcc-4.6.2/gcc/cgraphunit.c:1576 > #20 0x000000000089975e in cgraph_output_in_order () at > ../../gcc-4.6.2/gcc/cgraphunit.c:1733 > #21 cgraph_optimize () at ../../gcc-4.6.2/gcc/cgraphunit.c:1894 > #22 0x000000000089992a in cgraph_finalize_compilation_unit () > at ../../gcc-4.6.2/gcc/cgraphunit.c:1096 > #23 0x00000000004a3df5 in c_write_global_declarations () at > ../../gcc-4.6.2/gcc/c-decl.c:9871 > --8<---------------cut here---------------end--------------->8--- > > There’s no such problem when optimizations are turned on, though. > > Does it mean that extra work is needed at -O0 before one can use alias info?
At -O0 no virtual operands are produced. TODO_rebuild_alias only computes points-to sets which are in itself not useful. What do you want to achieve with TODO_rebuild_alias? Richard. > Thanks, > Ludo’. >