On Wed, Aug 18, 2010 at 11:53 AM, Alain Ketterlin
<alain.ketter...@gmail.com> wrote:
>
> I'm working on decompiling x86-64 binary programs, using branches to rebuild
> a control-flow graph and looking for loops. I've found a significant number
> of irreducible loops in gcc-produced code (irreducible loops are loops with
> more than one entry point), especially in -O3 optimized binaries, even when
> the source code is "well" structured. My experiments are done mainly on the
> SPEC CPU-2006 benchmarks.
>
> My question is: where do these irreducible loops come from? Which
> optimization pass leads to irreducible regions? Thanks in advance for any
> pointer.

Questions right back at you: What compiler version are you using? Got
a specific exampe (test case)?

In older releases of GCC4, jump threading sometimes resulted in
irreducible regions, but more recent GCCs carefully try to avoid them.

Ciao!
Steven

Reply via email to