[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #7 from pinskia at gcc dot gnu dot org 2007-08-20 00:48 --- Subject: Bug 32940 Author: pinskia Date: Mon Aug 20 00:48:09 2007 New Revision: 127634 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127634 Log: 2007-08-19 Andrew Pinski [EMAIL PROTECTED] PR middle-end/32940 * cfgexpand.c (expand_one_register_var): Mark pointer DECL_ARTIFICIAL as REG_POINTER also. * stmt.c (expand_decl): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/cfgexpand.c trunk/gcc/stmt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #8 from pinskia at gcc dot gnu dot org 2007-08-20 00:48 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #6 from pinskia at gcc dot gnu dot org 2007-08-06 19:22 --- This patch helps more than just PR 28690 as we now have the ablity to use r0 more for the index which causes us to use one less callee saved register in some cases and reduces the stack size. I saw that result while compiling tramp3d. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #5 from pthaugen at us dot ibm dot com 2007-08-03 15:30 --- This patch gives us an additional 2-3% overall on CPU2000, running on Power6. Facerec was the big winner with about 40% improvement, there were a few improvements in the 5-10% range and a few degradations in the 1-2% range that could be attributed to other issues like loop alignment or possibly an issue with r0 getting assigned to the base reg by renaming which I'm currently testing a patch for. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #4 from bergner at gcc dot gnu dot org 2007-08-03 14:43 --- Andrew's patch from Comment #3 bootstrapped and regtested with no regressions on powerpc64-linux running the testsuite in both 32-bit and 64-bit modes. I can also confirm that it fixes the test case I posted above. Pat is running SPEC2000 with the patch now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-08-02 00:37 --- Created an attachment (id=14008) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14008action=view) Patch which needs full testing still Hi, this reverts Jeff's patch in both stmt.c and cfgexpand.c (I don't know how much code of stmt.c's function is still used though). This patch has not been bootstrapped and tested yet and after it gets done, it still needs an extra test on hppa-hpux as that is what Jeff's patch was trying to fix. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-08-02 00:31 --- .L4: slwi 0,3,2 lwzx 0,9,0 add 3,3,4 addi 4,4,-1 bdnz .L4 Much better correct? -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Keywords||missed-optimization http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940
[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-07-30 23:54 --- ;; quadrant.0 = quadrant (insn 16 15 17 t.c:8 (set (reg:SI 127) (high:SI (symbol_ref:SI (quadrant) [flags 0x84] var_decl 0xf7d9f070 quadrant))) -1 (nil)) (insn 17 16 18 t.c:8 (set (reg/f:SI 126) (lo_sum:SI (reg:SI 127) (symbol_ref:SI (quadrant) [flags 0x84] var_decl 0xf7d9f070 quadrant))) -1 (expr_list:REG_EQUAL (symbol_ref:SI (quadrant) [flags 0x84] var_decl 0xf7d9f070 quadrant) (nil))) (insn 18 17 0 t.c:8 (set (reg:SI 121 [ quadrant.0 ]) (mem/f/c/i:SI (reg/f:SI 126) [2 quadrant+0 S4 A32])) -1 (nil)) The problem here is that DECL_ARTIFICIAL causes REG_POINTER not to be set. See: http://gcc.gnu.org/ml/gcc-patches/2004-06/msg00020.html Reverting that patch was the next step on my pointer plus work (after fixing up the regressions that still need fixing). -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-07-30 23:54:41 date|| Summary|ivopts fails to set |REG_POINTER attribute on |REG_POINTER attribute on|DECL_ARTIFICIAL pointers |pseudo | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940