This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/15242] [3.3/3.4 regression] pessimization of "goto *"


------- Additional Comments From anton at mips dot complang dot tuwien dot ac dot at  2005-02-27 10:47 -------
Subject: Re:  [3.3/3.4/4.0 regression] pessimization of "goto *"

steven at gcc dot gnu dot org wrote:
> Updated patch for this problem

Ok, I have now tried it with gcc-4.0-20050220 and gforth-0.6.2 on i386
and it works ok.  There is a minor remaining regression related to this
issue:

gcc-4.0 compiles "goto **(ip-1);" into

0x804b50d <engine+1341>:        mov    0xfffffffc(%ebx),%eax
0x804b510 <engine+1344>:        jmp    *%eax

gcc-2.95 compiles it into

0x804b103 <engine+227>: jmp    *0xfffffffc(%ebx)

which looks better.

Maybe there should be another combining pass after the duplication of the indirect jumps.  Should I create another PR for this?

Here are updated timing results (gforth-0.6.2 configured with
--enable-force-reg):

Pentium 4 2.26GHz; numbers are times in seconds user time
                                                  gcc-4.0-20050220 
	   gcc-2.95.3	   gcc-3.3	gcc-3.4.0 default no-reorder-blocks
	dynamic no-dyn	dynamic	no-dyn	no-dyn	  dynamic dynamic
siev    0.24    0.48    0.31    0.47    0.50      0.37    0.28
bubble  0.30	0.78	0.36	0.77	0.78	  0.40	  0.36
matrix  0.19	0.94	0.17	0.92	0.96	  0.18	  0.18
fib     0.34	0.57	0.41	0.58	0.59	  0.43	  0.40

- anton




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15242


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]