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