Re: [RFC] hard-reg-set.h refactoring

2011-08-02 Thread Mike Stump
On Aug 2, 2011, at 12:51 AM, Paolo Bonzini wrote: > On 08/01/2011 09:10 PM, Dimitrios Apostolou wrote: >> >> Keeping my patch exactly the same, just changing the >> hook_void_hard_reg_set to receive a (HOST_WIDEST_FAST_INT *) arg and >> doing the necessary typecasts, added an extra 3 M instructi

Re: [RFC] hard-reg-set.h refactoring

2011-08-02 Thread Paolo Bonzini
On 08/01/2011 09:10 PM, Dimitrios Apostolou wrote: Keeping my patch exactly the same, just changing the hook_void_hard_reg_set to receive a (HOST_WIDEST_FAST_INT *) arg and doing the necessary typecasts, added an extra 3 M instructions. But the ix86_live_on_entry is only called 1233x times from

Re: [RFC] hard-reg-set.h refactoring

2011-08-01 Thread Dimitrios Apostolou
On Mon, 1 Aug 2011, Paolo Bonzini wrote: On 08/01/2011 05:57 PM, Dimitrios Apostolou wrote: I don't fully understand the output from -fdump-tree-all, but my conclusion based also on profiler output and objdump, is that both unrolling and inlining is happening in both versions. Nevertheless I c

Re: [RFC] hard-reg-set.h refactoring

2011-08-01 Thread Paolo Bonzini
On 08/01/2011 05:57 PM, Dimitrios Apostolou wrote: I don't fully understand the output from -fdump-tree-all, but my conclusion based also on profiler output and objdump, is that both unrolling and inlining is happening in both versions. Nevertheless I can see that assembly output is a bit differ

Re: [RFC] hard-reg-set.h refactoring

2011-08-01 Thread Dimitrios Apostolou
On Sun, 31 Jul 2011, Paolo Bonzini wrote: On Sat, Jul 30, 2011 at 19:21, Dimitrios Apostolou wrote: Nevertheless I'd appreciate comments on whether any part of this patch is worth keeping. FWIW I've profiled this on i386 to be about 4 M instr slower out of ~1.5 G inst. I'll be now checking the

Re: [RFC] hard-reg-set.h refactoring

2011-07-31 Thread Paolo Bonzini
On Sat, Jul 30, 2011 at 19:21, Dimitrios Apostolou wrote: > I don't intend for this to go mainline, Jakub has explained on IRC that > certain ABIs make it slower to pass structs and we wouldn't want that. This can be "fixed" by marking the functions as always_inline. They should be always inline

[RFC] hard-reg-set.h refactoring

2011-07-30 Thread Dimitrios Apostolou
Hello list, the attached patch changes hard-reg-set.h in the following areas: 1) HARD_REG_SET is now always a struct so that it can be used in files where we don't want to include tm.h. Many thanks to Paolo for providing the idea and the original patch. 2) Code for specific HARD_REG_SET_LONG