Related articles |
---|
Backward branches kugan@ieee.org (2003-12-14) |
Re: Backward branches torbenm@diku.dk (2003-12-20) |
Re: Backward branches haberg@matematik.su.se (2003-12-21) |
Re: Backward branches kugan@ieee.org (2004-01-02) |
Re: Backward branches vbdis@aol.com (2004-01-09) |
Re: Backward branches j.troeger@qut.edu.au (Jens Troeger) (2004-01-12) |
Re: Backward branches Robert.Thorpe@antenova.com (Robert Thorpe) (2004-01-16) |
From: | torbenm@diku.dk (Torben Ęgidius Mogensen) |
Newsgroups: | comp.compilers |
Date: | 20 Dec 2003 11:44:36 -0500 |
Organization: | Department of Computer Science, University of Copenhagen |
References: | 03-12-108 |
Keywords: | optimize, architecture |
Posted-Date: | 20 Dec 2003 11:44:36 EST |
kugan@ieee.org (kugan) writes:
> I need to detect loops using H/W. I am wondering whether it is
> possible to detect loops just by detecting backward branches. What
> would be the approximate success rate for this scheme? What are the
> other instances where backward branches will be used?
Any loop (that hasn't been fully unrolled) will certainly involve a
backwards branch at some point. Not all backwards branches are loops,
though. If you reorder basic blocks, you can well have one branch of
an if-then-else placed after the join-point, so you need a backwards
jump to get to the join-point. Jumps to exception-handling code can
also be backwards, but compilers would tend to make these forwards as
some branch predictors assume backwards branches are taken (until they
have gathered evidence to the contrary).
In summary: All lopps involve backwards branches. It is possible for
a compiler to arrange that all backwards branches are loops, but you
shouldn't bet on it.
Torben
Return to the
comp.compilers page.
Search the
comp.compilers archives again.