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: dce3 botch with c41203a ACATS test


    Given a variable V whose address has been taken, we call get_alias_set
    (V).  Given a pointer P that has been dereferenced, we create an
    artificial variable TMT of type TREE_TYPE (TREE_TYPE (P)) and compute
    get_alias_set (TMT).  Later on, we compare the alias sets of V and TMT
    with alias_sets_conflict_p (inside may_alias_p).  If that is true,
    then we add V to the may-alias set of TMT.

    If the calls to get_alias_set take those flags into account, then I
    guess we do.

Yes, that's fine.  The key point is that it must be the *outermost*
reference that's passed to get_alias_set.  If you pass someting
inside, the code that goes inside has to know about these flags.

    No.  This part is purely type-based.  We don't check individual
    references, just the types of the variables and type memory tags.

Then I wonder why this couldn't be reproduced in another language ...

I'm going to do a build with current sources but the loop optimizer
disabled and see where things stand.

I think we'll have problems with the invariant test, but we'll see.


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