------- Additional Comments From kazu at cs dot umass dot edu  2005-02-06 18:08 
-------
Yes, global_constant is considered call clobbered.

Here is the full dump of .t18.alias1.

;; Function foo (foo)

foo: Total number of aliased vops: 1

Referenced variables in foo: 5

Variable: global_constant.0, UID 0, const int

Variable: global_constant, UID 1, const int, is an alias tag, is global, call
clobbered, default def: global_constant_1

Variable: D.1128, UID 2, union node *, type memory tag: TMT.1

Variable: p, UID 3, union node *, type memory tag: TMT.1, default def: p_3

Variable: TMT.1, UID 4, union node, is addressable, is global, call clobbered,
may aliases: { global_constant }



Pointed-to sets for pointers in foo

p_3, is dereferenced, points-to anything
D.1128_4, is dereferenced, its value escapes, points-to anything


Flow-insensitive alias information for foo

Aliased symbols

global_constant, UID 1, const int, is an alias tag, is global, call clobbered,
default def: global_constant_1
TMT.1, UID 4, union node, is addressable, is global, call clobbered, may
aliases: { global_constant }

Dereferenced pointers

D.1128, UID 2, union node *, type memory tag: TMT.1
p, UID 3, union node *, type memory tag: TMT.1, default def: p_3

Type memory tags

TMT.1, UID 4, union node, is addressable, is global, call clobbered, may
aliases: { global_constant }


Flow-sensitive alias information for foo

SSA_NAME pointers


Name memory tags


foo (p)
{
  union node * D.1128;
  const int global_constant.0;

<bb 0>:
  #   VUSE <global_constant_1>;
  global_constant.0_2 = global_constant;
  if (global_constant.0_2 == 1) goto <L0>; else goto <L1>;

<L0>:;
  #   VUSE <global_constant_1>;
  abort ();

<L1>:;
  #   VUSE <global_constant_1>;
  D.1128_4 = p_3->ptr;
  #   global_constant_6 = V_MAY_DEF <global_constant_1>;
  bar (D.1128_4);
  #   VUSE <global_constant_6>;
  global_constant.0_5 = global_constant;
  if (global_constant.0_5 == 1) goto <L2>; else goto <L3>;

<L2>:;
  #   VUSE <global_constant_6>;
  abort ();

<L3>:;
  return;

}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19789

Reply via email to