Problem with operand handling
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Tue Sep 7 13:59:00 GMT 2004
what is 'decorator_traceback'?
I've got to run and will be back on this afternoon, but I'll put
the .t18.ssa file below. It's small enough.
Did you call mark_call_clobbered() on decorator_traceback? If so, why
if it passes all the tests in is_gimple_reg.. ie, its not volatile,
its address is not taken, and its not global...
A quick GDB session shows that it is called for that variable, from
add_may_alias.
;; Function GNAT.EXCEPTION_TRACES.DECORATOR_WRAPPER (gnat__exception_traces__decorator_wrapper)
GNAT.EXCEPTION_TRACES.DECORATOR_WRAPPER (traceback, len)
{
system__traceback_entries__traceback_entry___XDLU_0__18446744073709551615[1 .. T.2] & decorator_traceback;
typedef system__traceback_entries__traceback_entry___XDLU_0__18446744073709551615 gnat__exception_traces__decorator_wrapper__Tdecorator_tracebackS[T.5];
typedef <unnamed type> struct <unnamed type>;
typedef gnat__exception_traces__decorator_wrapper__TTdecorator_tracebackSP1___XDL_1 gnat__exception_traces__decorator_wrapper__TTdecorator_tracebackSP1___XDL_1;
natural___XDLU_0__2147483647 gnat__exception_traces__decorator_wrapper__TTdecorator_tracebackSP1___U;
struct string___XUP T.11;
system__traceback_entries__traceback_entry___XDLU_0__18446744073709551615[(long int) <PLACEHOLDER_EXPR struct ada__exceptions__traceback__tracebacks_array___XUP>.P_BOUNDS->LB0 .. (long int) <PLACEHOLDER_EXPR struct ada__exceptions__traceback__tracebacks_array___XUP>.P_BOUNDS->UB0] * decorator_traceback.10;
struct ada__exceptions__traceback__tracebacks_array___XUB T.9;
struct ada__exceptions__traceback__tracebacks_array___XUP T.8;
struct string___XUP (*gnat__exception_traces__traceback_decorator) (struct ada__exceptions__traceback__tracebacks_array___XUP) gnat__exception_traces__current_decorator.7;
struct string___XUP T.6;
long int T.5;
bit_size_type T.4;
bit_size_type T.3;
long int T.2;
long int T.1;
integer len.0;
<bb 0>:
gnat__exception_traces__decorator_wrapper__TTdecorator_tracebackSP1___U_2 = len_1;
len.0_3 = (integer) len_1;
len.0_4 = (integer) len_1;
T.1_5 = (long int) len.0_4;
T.2_6 = MAX_EXPR <T.1_5, 0>;
len.0_7 = (integer) len_1;
T.1_8 = (long int) len.0_7;
T.2_9 = MAX_EXPR <T.1_8, 0>;
T.3_10 = (bit_size_type) T.2_9;
T.4_11 = T.3_10 * 64;
len.0_12 = (integer) len_1;
T.1_13 = (long int) len.0_12;
T.2_14 = MAX_EXPR <T.1_13, 0>;
T.5_15 = T.2_14 * 8;
decorator_traceback_17 = (system__traceback_entries__traceback_entry___XDLU_0__18446744073709551615[1 .. T.2] &) traceback_16;
gnat__exception_traces__current_decorator.7_19 = gnat__exception_traces__current_decorator;
len.0_20 = (integer) len_1;
T.9.LB0 = 1;
T.9.UB0 = len.0_20;
decorator_traceback.10_24 = (system__traceback_entries__traceback_entry___XDLU_0__18446744073709551615[(long int) <PLACEHOLDER_EXPR struct ada__exceptions__traceback__tracebacks_array___XUP>.P_BOUNDS->LB0 .. (long int) <PLACEHOLDER_EXPR struct ada__exceptions__traceback__tracebacks_array___XUP>.P_BOUNDS->UB0] *) decorator_traceback_17;
T.8.P_ARRAY = decorator_traceback.10_24;
T.8.P_BOUNDS = &T.9;
T.11 = gnat__exception_traces__current_decorator.7_19 (T.8);
T.6 = T.11;
return T.6;
}
More information about the Gcc
mailing list