On Thu, 2013-04-25 at 09:53 +0200, Richard Biener wrote:

> We have gimple_duplicate_sese_region for this.  It may be not perfect though.
> Eventually it should be changed to handle SEME regions as well and all
> loop copying / versioning code should use it as well (though I don't think
> any of the loop copying / versioning code handles multiple exits).
> 
> I've slowly started to move us in this direction by removing duplicate
> functionality
> in the compiler as I come along it ...
> 
> Richard.

One thing I have noticed with this routine is that I am trying to call
gimple_duplicate_sese_region before the various loop optimizations and
before the loop information is all set up (not sure if that is good or
bad, right now it just is).  So I died when calling set_loop_copy.  I
put that call and the other loop uses in an 'if (loop)' block to make
that assertion stop and I was then able to copy one (SEME) block with
this routine.  When I tried to copy a second block with a second call,
it died in iterate_fix_dominators.  I tried removing all the dominator
information after creating my first new block hoping it would correctly
regenerate everything before doing the second block but that didn't seem
to work.

Steve Ellcey
sell...@imgtec.com


Reply via email to