This is the mail archive of the gcc@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]

Re: 3.1 performance problems


Hi,
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.

Honza


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