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-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 translation

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 - 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 something

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 currently

Re: Symtab cleanups 4/17

2013-06-06 Thread Hans-Peter Nilsson
From: Jan Hubicka hubi...@ucw.cz 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.

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

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

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 dje@gmail.com wrote: The removal of mark_decl_referenced() breaks bootstrap because some target-specific code uses that function. I am trying with

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 may