[patch] Enable record_bounds pass

Andreas Schwab schwab@suse.de
Sun Sep 26 13:09:00 GMT 2004


Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> writes:

> 	* tree-optimize.c (init_tree_optimization_passes): Add
> 	pass_record_bounds.
> 	* tree-pass.h (pass_record_bounds): Declare.
> 	* tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
> 	New pass.

Breaks ia64.

$ stage1/xgcc -Bstage1/ -B/usr/local/ia64-suse-linux/bin/ -c   -DUSE_LIBUNWIND_EXCEPTIONS -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Werror -fno-common   -DHAVE_CONFIG_H    -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include  ../../gcc/ra.c -o ra.o
../../gcc/ra.c: In function 'reg_alloc':
../../gcc/ra.c:670: internal compiler error: in emit_move_insn, at expr.c:2485

(gdb) bt
#0  fancy_abort (file=0x40000000008311b0 "../../gcc/expr.c", line=2485, 
    function=0x4000000000831368 "emit_move_insn")
    at ../../gcc/diagnostic.c:590
#1  0x400000000035e6c0 in emit_move_insn (x=0x2000000000c33080, 
    y=0x2000000000c32fc0) at ../../gcc/expr.c:2479
#2  0x4000000000337ee0 in force_reg (mode=SImode, x=0x2000000000c32fc0)
    at ../../gcc/explow.c:670
#3  0x40000000004d4280 in expand_binop (mode=SImode, 
    binoptab=0x2000000000338c00, op0=0x2000000000c32fc0, 
    op1=0x2000000000c33040, target=0x0, unsignedp=1, methods=OPTAB_LIB_WIDEN)
    at ../../gcc/optabs.c:783
#4  0x4000000000382c30 in expand_expr_addr_expr_1 (exp=0x2000000000fea0d0, 
    target=0x0, tmode=SImode, modifier=EXPAND_NORMAL) at ../../gcc/expr.c:6172
#5  0x4000000000372d60 in expand_expr_real_1 (exp=0x2000000000d0ed00, 
    target=0x0, tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6201
#6  0x4000000000381f90 in expand_expr_real (exp=0x2000000000d0ed00, 
    target=0x0, tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6272
#7  0x4000000000372a70 in expand_expr_real_1 (exp=0x2000000000d0ee00, 
    target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at expr.h:493
#8  0x4000000000381f90 in expand_expr_real (exp=0x2000000000d0ee00, 
    target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6272
#9  0x4000000000383250 in expand_operands (exp0=0x2000000000d0edc0, 
    exp1=0x2000000000d0ee00, target=0x0, op0=0x60000fffffffa2c8, 
    op1=0x60000fffffffa2d0, modifier=EXPAND_NORMAL) at expr.h:493
#10 0x4000000000371050 in expand_expr_real_1 (exp=0x200000000100d720, 
    target=0x0, tmode=4294943440, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6346
#11 0x4000000000381f90 in expand_expr_real (exp=0x200000000100d720, 
    target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6272
#12 0x4000000000383220 in expand_operands (exp0=0x200000000100d720, 
    exp1=0x200000000057c330, target=0x0, op0=0x60000fffffffa368, 
    op1=0x60000fffffffa370, modifier=EXPAND_NORMAL) at ../../gcc/expr.c:6038
#13 0x40000000003766f0 in expand_expr_real_1 (exp=0x200000000100d7c0, 
    target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6346
#14 0x4000000000381f90 in expand_expr_real (exp=0x200000000100d7c0, 
    target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6272
#15 0x4000000000383220 in expand_operands (exp0=0x200000000100d7c0, 
    exp1=0x20000000005962e0, target=0x0, op0=0x60000fffffffa408, 
    op1=0x60000fffffffa410, modifier=EXPAND_NORMAL) at ../../gcc/expr.c:6038
#16 0x4000000000377200 in expand_expr_real_1 (exp=0x200000000100d860, 
    target=0x0, tmode=4294943760, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:7515
#17 0x4000000000381f90 in expand_expr_real (exp=0x200000000100d860, 
    target=0x0, tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc/expr.c:6272
#18 0x4000000000212310 in computation_cost (expr=0x200000000100d860)
    at expr.h:493
#19 0x4000000000213640 in get_computation_cost_at (data=0x60000fffffffa580, 
    use=0x60000000002140a0, cand=0x60000000001a9bd0, address_p=0 '\0', 
    depends_on=0x60000fffffffa470, at=0x2000000000ea7de0)
    at ../../gcc/tree-ssa-loop-ivopts.c:2701
#20 0x4000000000214b20 in determine_use_iv_cost_generic (
    data=0x60000fffffffa580, use=0x60000000002140a0, cand=0x60000000001a9bd0)
    at ../../gcc/tree-ssa-loop-ivopts.c:2852
#21 0x4000000000216240 in determine_use_iv_cost (data=0x60000fffffffa580, 
    use=0x60000000002140a0, cand=0x60000000001a9bd0)
    at ../../gcc/tree-ssa-loop-ivopts.c:3077
#22 0x4000000000216d20 in determine_use_iv_costs (data=0x60000fffffffa580)
    at ../../gcc/tree-ssa-loop-ivopts.c:3140
#23 0x4000000000220db0 in tree_ssa_iv_optimize_loop (data=0x60000fffffffa580, 
    loop=0x0) at ../../gcc/tree-ssa-loop-ivopts.c:4306
#24 0x4000000000221e90 in tree_ssa_iv_optimize (loops=0x6000000000190bb0)
    at ../../gcc/tree-ssa-loop-ivopts.c:4381

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-patches mailing list