------- Additional Comments From s dot bosscher at student dot tudelft dot nl  
2004-11-01 15:03 -------
Subject: RE:  [4.0 Regression] jump threading
         on trees is slow with switch statements with large # of cases

I created a special function for the split_critical_edges pass
to split edges out of SWITCH_EXPR blocks in linear time wrt. the
number of outgoing edges E and the number of case labels C.  The
function makes the edge splitting take O(E+2C) time, instead of
E*C which is effectively quadratic.

The effect for the test case of this PR is huge.

The effect on everything else (for example insn-attrtab) is not
measurable.

Dunno if this is worth the trouble.  The patch I have is a hack
and the real solution is using a smarter representation for the
case label targets.  I'll try some other code and perhaps post
the patch.  We might want to just do it as a hack on the gcc 4.0
release branch...



-- 


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

Reply via email to