[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers

2007-08-19 Thread pinskia at gcc dot gnu dot org


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

2007-08-19 Thread pinskia at gcc dot gnu dot org


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

2007-08-06 Thread pinskia at gcc dot gnu dot org


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

2007-08-03 Thread pthaugen at us dot ibm dot com


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

2007-08-03 Thread bergner at gcc dot gnu dot org


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

2007-08-01 Thread pinskia at gcc dot gnu dot org


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

2007-08-01 Thread pinskia at gcc dot gnu dot org


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

2007-07-30 Thread pinskia at gcc dot gnu dot org


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