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

Reply via email to