Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-13 Thread Richard Biener
On Sun, Jan 12, 2014 at 10:51 PM, Trevor Saunders wrote: > On Sun, Jan 12, 2014 at 02:23:21PM +0100, Richard Biener wrote: >> On Fri, Jan 10, 2014 at 6:37 PM, Richard Henderson wrote: >> > On 01/09/2014 03:34 PM, Jakub Jelinek wrote: >> >> 2014-01-09 Jakub Jelinek >> >> >> >> * target-gl

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-12 Thread Trevor Saunders
On Sun, Jan 12, 2014 at 02:23:21PM +0100, Richard Biener wrote: > On Fri, Jan 10, 2014 at 6:37 PM, Richard Henderson wrote: > > On 01/09/2014 03:34 PM, Jakub Jelinek wrote: > >> 2014-01-09 Jakub Jelinek > >> > >> * target-globals.c (save_target_globals): Allocate < 4KB structs > >> using

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-12 Thread Richard Biener
On Fri, Jan 10, 2014 at 6:37 PM, Richard Henderson wrote: > On 01/09/2014 03:34 PM, Jakub Jelinek wrote: >> 2014-01-09 Jakub Jelinek >> >> * target-globals.c (save_target_globals): Allocate < 4KB structs using >> GC in payload of target_globals struct instead of allocating them on >

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-10 Thread Richard Henderson
On 01/09/2014 03:34 PM, Jakub Jelinek wrote: > 2014-01-09 Jakub Jelinek > > * target-globals.c (save_target_globals): Allocate < 4KB structs using > GC in payload of target_globals struct instead of allocating them on > the heap and the larger structs separately using GC. >

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-09 Thread Jakub Jelinek
On Thu, Jan 09, 2014 at 08:42:03AM -0800, Richard Henderson wrote: > On 01/09/2014 08:35 AM, Jakub Jelinek wrote: > > That would be fine for 1), but would mean 2). It is also fine to GC > > allocate each structure individually, but some (like bb_reorder) are say > > just 4 bytes long, so it might

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-09 Thread Richard Henderson
On 01/09/2014 08:35 AM, Jakub Jelinek wrote: > That would be fine for 1), but would mean 2). It is also fine to GC > allocate each structure individually, but some (like bb_reorder) are say > just 4 bytes long, so it might be overkill. Hmm.. Perhaps define the whole structure as you do, but som

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-09 Thread Jakub Jelinek
On Thu, Jan 09, 2014 at 08:25:31AM -0800, Richard Henderson wrote: > > + p = (struct target_globals_extra *) > > + ggc_internal_cleared_alloc_stat (sizeof (struct target_globals_extra) > > + PASS_MEM_STAT); > > + g = (struct target_globals *) p; > > + g->fla

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-09 Thread Richard Henderson
On 01/08/2014 10:34 AM, Jakub Jelinek wrote: >struct target_globals *g; > - > - g = ggc_alloc_target_globals (); > - g->flag_state = XCNEW (struct target_flag_state); > - g->regs = XCNEW (struct target_regs); > + struct target_globals_extra { > +struct target_globals g; > +struct ta

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-08 Thread Jakub Jelinek
On Wed, Jan 08, 2014 at 07:41:26PM +, Richard Sandiford wrote: > Jakub Jelinek writes: > > 2014-01-08 Jakub Jelinek > > > > * target-globals.c (save_target_globals): Allocate most of the > > structs using GC in payload of target_globals struct instead > > of allocating them on t

Re: [PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-08 Thread Richard Sandiford
Jakub Jelinek writes: > 2014-01-08 Jakub Jelinek > > * target-globals.c (save_target_globals): Allocate most of the > structs using GC in payload of target_globals struct instead > of allocating them on the heap. Looks good to me FWIW. I don't know either way about the one-b

[PATCH] Allocate all target globals using GC for SWITCHABLE_TARGETs

2014-01-08 Thread Jakub Jelinek
On Wed, Jan 08, 2014 at 01:45:40PM +0100, Jakub Jelinek wrote: > I'd like to get rid of all the XCNEW calls in target-globals.c as a > follow-up. Here it is. The rationale is both to avoid many separate heap allocations and if TARGET_OPTION_NODE is no longer needed (all FUNCTION_DECLs referencing