This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] New SRA and early interprocedural SRA
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>, Richard Guenther <rguenther at suse dot de>, Michael Matz <matz at suse dot de>
- Date: Wed, 18 Mar 2009 18:20:13 +0100
- Subject: Re: [RFC] New SRA and early interprocedural SRA
- References: <20090220193904.GB4877@virgil.suse.cz>
Hi,
> + /* DECL_WEAK test is required because otherwise we might get $symbolis
> + already defined assembler messages (as we e.g. get for libgomp
> + collapse-2.exe test case (at -O1). */
> + if (!cgraph_node_can_be_local_p (node) || DECL_WEAK (current_function_decl))
this test is wrong. We need to bring DECL_WEAK symbols local in
localize* function instead of ignoring them here. This disables
transformation on most of C++ inline functions.
> + {
> + if (dump_file)
> + fprintf (dump_file, "Function not local to this compilation unit.\n");
> + return 0;
> + }
> +
> + if ((DECL_COMDAT (node->decl) || DECL_EXTERNAL (node->decl))
and I guess test DECL_WEAK here too. This is probably reason why patch
stopped having (negative) effect on tramp3d scores...
Honza