This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Irreducible loops in generated code
- From: Alain Ketterlin <alain dot ketterlin at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 18 Aug 2010 11:53:26 +0200
- Subject: Irreducible loops in generated code
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.
-- Alain.