Re: Symtab cleanups 4/17 - ICE in GUPC due to use of init section

2013-06-19 Thread Gary Funck
On 06/19/13 09:26:30, Gary Funck wrote: > The variable declaration tree node looks about right to me. > However, it never makes it into the output assembler file. > > What is the recommended method for making sure that the > static variable created above is associated with the current > translatio

Re: Symtab cleanups 4/17 - ICE in GUPC due to use of init section

2013-06-19 Thread Gary Funck
On 06/18/13 16:37:04, Gary Funck wrote: > The initialization function is currently generated in tree form in the > usual way (it will be gimplified when the gimple pass is run). > > The code that is being generated is roughly equivalent to: > > static void > __upc_init_decls (void) >

Re: Symtab cleanups 4/17 - ICE in GUPC due to use of init section

2013-06-18 Thread Gary Funck
On 06/18/13 22:27:51, Steven Bosscher wrote: > The advice would have to be that the front end should not write out > anything to the assembler file. > > Why not just emit the function as GIMPLE (even if your stmt_list is > empty) and let your main() call it? The initialization function is current

Re: Symtab cleanups 4/17 - ICE in GUPC due to use of init section

2013-06-18 Thread Steven Bosscher
On Tue, Jun 18, 2013 at 10:19 PM, Gary Funck wrote: > It seems that GUPC may be calling assemble_addr_to_section() too early and > that > some other method of locating the UPC shared data related initialization into > the UPC "upc_init_array" section needs to be implemented. Either that, > or som

Re: Symtab cleanups 4/17 - ICE in GUPC due to use of init section

2013-06-18 Thread Gary Funck
On 06/05/13 16:18:52, Jan Hubicka wrote: > Hi, > this patch deals with C++ keyed methods and explicit instantiations. > Currently> C++ calls mark_used that ultimately sets force_output > on the functions. This is equivalent to attribute ((used)) > on the function/variable and it is bit too strong.

Re: Symtab cleanups 4/17

2013-06-06 Thread Hans-Peter Nilsson
> From: Jan Hubicka > Date: Wed, 5 Jun 2013 16:18:52 +0200 > * class.c (emit_register_classes_in_jcr_section): Use DECL_PRESERVE_P > instead of mark_decl_referenced. > > * decl2.c (maybe_make_one_only): Use forced_by_abi instad of > mark_decl_referenced. >

Re: Symtab cleanups 4/17

2013-06-05 Thread Jan Hubicka
> Honza, > > Also, you did not remove the declaration of mark_decl_referenced() in tree.h Sorry for the breakage. It was change in final version of patch where I noticed that mark_decl_referenced is dead and I did not get into idea that targets may use it. Looking at the use cases, I think it ma

Re: Symtab cleanups 4/17

2013-06-05 Thread David Edelsohn
Honza, Also, you did not remove the declaration of mark_decl_referenced() in tree.h - David On Wed, Jun 5, 2013 at 11:15 AM, David Edelsohn wrote: > The removal of mark_decl_referenced() breaks bootstrap because some > target-specific code uses that function. > > I am trying with a change to D

Re: Symtab cleanups 4/17

2013-06-05 Thread David Edelsohn
The removal of mark_decl_referenced() breaks bootstrap because some target-specific code uses that function. I am trying with a change to DECL_PRESERVE_P to see if that will fix the problem in rs6000.c - David

Symtab cleanups 4/17

2013-06-05 Thread Jan Hubicka
Hi, this patch deals with C++ keyed methods and explicit instantiations. Currently C++ calls mark_used that ultimately sets force_output on the functions. This is equivalent to attribute ((used)) on the function/variable and it is bit too strong. For example at LTO time we can ignore the C++ ABI