On Fri, 2013-03-22 at 13:00 -0600, Jeff Law wrote:

> As others have pointed out, this is jump threading.
> 
> The reason you're not seeing jump threading in the CoreMark test is the 
> switch is inside a loop and threading a backedge is severely constrained.
> 
> There's a BZ for this issue with a bit more state for this issue.
> 
> jeff

It took me a minute to map BZ to bugzilla, but I assume you mean there
is a bugzilla report with information on this issue, I'll look around to
see what I can find.

The example I gave was a simple case and ideally the duplicated code
(codeX) could have other edges leading into or out of it without that
preventing the jump threading.  But it sounds like it does prevent it
with the current implementation of jump threading.  Maybe it is just the
presence of a back edge that is preventing it.  I will look more into
the GCC implementation and what constraints there are and why they
prevent its use in CoreMark.

Steve Ellcey
sell...@imgtec.com


Reply via email to