This is the mail archive of the
mailing list for the GCC project.
Re: 3.1 performance problems
- To: gcc at gcc dot gnu dot org, zippel at linux-m68k dot org
- Subject: Re: 3.1 performance problems
- From: Jan Hubicka <jh at suse dot cz>
- Date: Thu, 19 Jul 2001 19:36:38 +0200
I am aware of the problem. Basically we now work harder to simplify
the flow, as the CFG is built first and then code is simplified.
The performance problem is caused by large amount of calls forwarder_block_p
function. I can cut them down dramatically by caching the result and I
have patch in queue for this, but it has outdated somehow, as I've changed
rest of code. I don't remember the exact numbers, but I remember that it
cut down the time of cfg_cleanup under CSE. Other simplifications are possible
by making try_crossjump smarter about cases whole basic block match.
The memory issue can be cut down similary by better reusing the basic block
slots when CFG is modified. I will try to do that later.
So both cases are to my best belief temporary slowdowns and I will address
them soon, once the transformation is finished and bugs solved.
The testcase is rather extreme and in common case the cfg_cleanup already
is cheaper then the jump pass was.