This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH RFA: PR 29286: Handle placement new aliasing issues


On 6/11/07, Eric Botcazou <ebotcazou@adacore.com> wrote:
> I'm going to investigate why it has been failing for some time.

It's the second paragraph in:

/* Given a pointer variable P, fill in its points-to set, or return
   false if we can't.
   Rather than return false for variables that point-to anything, we
   instead find the corresponding SMT, and merge in it's aliases.  In
   addition to these aliases, we also set the bits for the SMT's
   themselves and their subsets, as SMT's are still in use by
   non-SSA_NAME's, and pruning may eliminate every one of their
   aliases.  In such a case, if we did not include the right set of
   SMT's in the points-to set of the variable, we'd end up with
   statements that do not conflict but should.  */

bool
find_what_p_points_to (tree p)


That doesn't work for ref-all pointers since the aliases of their special SMT are computed near the end of the pass:

  /* If the program contains ref-all pointers, finalize may-alias information
     for them.  This pass needs to be run after call-clobbering information
     has been computed.  */
  if (ai->ref_all_symbol_mem_tag)
    finalize_ref_all_pointers (ai);


I think that returning false for them again is good enough.


Lightly tested on x86_64-suse-linux. Daniel, is that OK with you?


* tree-ssa-structalias.c (find_what_p_points_to): Return false for ref-all pointers that point-to anything.

This is fine.


If you would be so kind, please also remove the pt_anything flag from
them once you merge in the ref-all info (IE in tree-ssa-alias.c).

I am trying to remove both SMT's (at least, their visibility outside
of the alias machinery) and pt_anything.  I'd like a world where we
only have one type of memory tag visible to the external users.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]