Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-30 Thread Bin.Cheng
On Fri, Apr 24, 2015 at 12:52 PM, Thomas Preud'homme thomas.preudho...@arm.com wrote: From: Jeff Law [mailto:l...@redhat.com] Sent: Friday, April 24, 2015 11:15 AM So revised review is ok for the trunk :-) Committed. Hi Thomas, The newly introduced test failed on

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Steven Bosscher
On Thu, Apr 16, 2015 at 10:43 AM, Thomas Preud'homme wrote: 2015-04-15 Thomas Preud'homme thomas.preudho...@arm.com Steven Bosscher stevenb@gmail.com * cprop.c (cprop_reg_p): New. (hash_scan_set): Use above function to check if register can be

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Thomas Preud'homme
From: Jeff Law [mailto:l...@redhat.com] Sent: Friday, April 24, 2015 11:15 AM So revised review is ok for the trunk :-) Committed. Best regards, Thomas

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Jeff Law
On 04/16/2015 02:43 AM, Thomas Preud'homme wrote: From: Jeff Law [mailto:l...@redhat.com] Sent: Monday, April 13, 2015 8:48 PM I know there were several followups between Steven and yourself. With stage1 now open, can you post a final version and do a final bootstrap/test with it? Here is

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Jeff Law
On 04/23/2015 09:10 PM, Thomas Preud'homme wrote: From: Jeff Law [mailto:l...@redhat.com] Sent: Friday, April 24, 2015 10:59 AM Hi Jeff, + +static bool +cprop_reg_p (const_rtx x) +{ + return REG_P (x) !HARD_REGISTER_P (x); +} How about instead this move to a more visible location

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-23 Thread Thomas Preud'homme
From: Jeff Law [mailto:l...@redhat.com] Sent: Friday, April 24, 2015 10:59 AM Hi Jeff, + +static bool +cprop_reg_p (const_rtx x) +{ + return REG_P (x) !HARD_REGISTER_P (x); +} How about instead this move to a more visible location (perhaps a macro in regs.h or an inline

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-16 Thread Thomas Preud'homme
From: Jeff Law [mailto:l...@redhat.com] Sent: Monday, April 13, 2015 8:48 PM I know there were several followups between Steven and yourself. With stage1 now open, can you post a final version and do a final bootstrap/test with it? Here is what came out of our discussion with Steven: The

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-14 Thread Thomas Preud'homme
From: Jeff Law [mailto:l...@redhat.com] Sent: Monday, April 13, 2015 8:48 PM Thomas, I know there were several followups between Steven and yourself. With stage1 now open, can you post a final version and do a final bootstrap/test with it? Sure, I'm testing it right now. Sorry for not

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-04-13 Thread Jeff Law
On 02/16/2015 03:26 AM, Thomas Preud'homme wrote: Hi, The RTL cprop pass in GCC operates by doing a local constant/copy propagation first and then a global one. In the local one, if a constant cannot be propagated (eg. due to constraints of the destination instruction) a copy propagation is

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-29 Thread Thomas Preud'homme
From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- ow...@gcc.gnu.org] On Behalf Of Thomas Preud'homme FYI testing your patch with the one cprop_reg_p negated as said in my previous email shows no regression on arm-none-eabi cross-compiler targeting Cortex-M3. Testing for x86_64 is

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-23 Thread Thomas Preud'homme
From: Steven Bosscher [mailto:stevenb@gmail.com] Sent: Friday, March 20, 2015 8:14 PM I put the cprop_reg_p check there instead of !HARD_REGISTER_P because I like to be able to quickly find all places where a similar check is performed. The check is whether the reg is something that

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-23 Thread Steven Bosscher
On Mon, Mar 23, 2015 at 12:01 PM, Thomas Preud'homme wrote: What about the cprop_reg_p that needs to be negated? Did I miss something that makes it ok? You didn't miss anything. I sent the wrong patch. The one I tested on ppc64 also has the condition reversed: @@ -1328,9 +1329,8 @@

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Steven Bosscher
On Tue, Feb 17, 2015 at 3:51 AM, Thomas Preud'homme wrote: - else if (REG_P (src) - REGNO (src) = FIRST_PSEUDO_REGISTER - REGNO (src) != regno) - { - if (try_replace_reg (reg_used, src, insn)) + else if (src_reg REG_P (src_reg)

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Thomas Preud'homme
From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- ow...@gcc.gnu.org] On Behalf Of Thomas Preud'homme I noticed in do_local_cprop you replace = FIRST_PSEUDO_REGISTER by cprop_reg_p without removing the REG_P as well. Sorry, I missed the parenthesis. REG_P needs indeed to be kept. I'd

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Thomas Preud'homme
Hi Steven, From: Steven Bosscher [mailto:stevenb@gmail.com] Sent: Friday, March 20, 2015 3:54 PM What I meant, is that I believe the tests are already done in hash_scan_set and should be redundant in cprop_insn (i.e. the test can be replaced with gcc_[checking_]assert). Ok. I've

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-20 Thread Steven Bosscher
On Fri, Mar 20, 2015 at 11:27 AM, Thomas Preud'homme wrote: Sorry, I missed the parenthesis. REG_P needs indeed to be kept. I'd be tempted to use !HARD_REGISTER_P instead since REG_P is already checked but I don't mind either way. I put the cprop_reg_p check there instead of !HARD_REGISTER_P

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-03-04 Thread Thomas Preud'homme
Ping? From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- ow...@gcc.gnu.org] On Behalf Of Thomas Preud'homme [SNIP] Likewise for the REG_P and = FIRST_PSEUDO_REGISTER tests here (with the equivalent and IMHO preferable HARD_REGISTER_P test in find_avail_set()). I'm not sure

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Steven Bosscher
On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme wrote: /* Subroutine of cprop_insn that tries to propagate constants into @@ -1044,40 +1042,41 @@ cprop_insn (rtx_insn *insn) - /* Constant propagation. */ - if (cprop_constant_p (src)) - { - if

RE: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Thomas Preud'homme
From: Steven Bosscher [mailto:stevenb@gmail.com] Sent: Tuesday, February 17, 2015 4:19 AM To: Thomas Preud'homme Cc: GCC Patches; Richard Biener Subject: Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme

[PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Thomas Preud'homme
Hi, The RTL cprop pass in GCC operates by doing a local constant/copy propagation first and then a global one. In the local one, if a constant cannot be propagated (eg. due to constraints of the destination instruction) a copy propagation is done instead. However, at the global level copy

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Richard Biener
On Mon, 16 Feb 2015, Thomas Preud'homme wrote: Hi, The RTL cprop pass in GCC operates by doing a local constant/copy propagation first and then a global one. In the local one, if a constant cannot be propagated (eg. due to constraints of the destination instruction) a copy propagation

Re: [PATCH, GCC, stage1] Fallback to copy-prop if constant-prop not possible

2015-02-16 Thread Steven Bosscher
On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme thomas.preudho...@arm.com wrote: Hi, The RTL cprop pass in GCC operates by doing a local constant/copy propagation first and then a global one. In the local one, if a constant cannot be propagated (eg. due to constraints of the