On Tue, Oct 10, 2017 at 3:03 PM, Nathan Sidwell <nat...@acm.org> wrote:
> I have a patch cleaning up a bit of the C++ FE, which will involve hashing
> via DECL_ASSEMBLER_NAME.  however, all the items in that hash are known to
> have it set, so its mapping to a function call is undesirable.
>
> This patch adds DECL_ASSEMBLER_NAME_RAW, which gets at the field directly.
> I can then use that for my hash table.  The cleanup to use that is fairly
> trivial.
>
> However, I also looked more deeply at DECL_ASSEMBLER_NAME_SET_P. It does
> more than the name suggests -- namely checking HAS_DECL_ASSEMBLER_NAME_P
> too.  There are about 72 uses of DECL_ASSEMBLER_NAME_SET_P and investigation
> showed only about 4 applying it to decls that are not
> HAS_DECL_ASSEMBLER_NAME_P.  So, I remove the HAS_DECL_ASSEMBLER_NAME_P from
> DECL_ASSEMBLER_NAME_SET_P and explicitly check it at the 4 locations that
> need it.
>
> In doing this I noticed a couple of items:
>
> 1) ipa-utils.h (type_in_anonymous_namespace_p) is applying
> HAS_DECL_ASSEMBLER_NAME_P to a type.  That's clearly wrong, It looks like a
> thinko for TYPE_NAME (t).  Making that change seems fine.
>
> 2) tree-ssa-structalias.c (alias_get_name) seemed overly complicated, so I
> reimplemented it.
>
> I checked the target-specific code, and there are only two uses of
> DECL_ASSEMBLER_NAME_SET_P.  Both look safe to me (the avr one seems
> superfluous, and DECL_ASSEMBLER_NAME would be fine there.
>
> booted on x86_64-linux
>
> ok?

Ok.

Thanks,
Richard.

> nathan
> --
> Nathan Sidwell

Reply via email to