[llvm-commits] [llvm-gcc-4.2] r85513 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-internal.h
Bob Wilson
bob.wilson at apple.com
Thu Oct 29 15:09:26 PDT 2009
On Oct 29, 2009, at 2:01 PM, Duncan Sands wrote:
> Hi Bob,
>
>> Besides consistency with clang, the idea behind doing it this way
>> is to reduce the number of edges in the CFG. Indirect branches are
>> typically used in things like interpreter loops, where you have a
>> large number of labels and a large number of gotos. If you add an
>> edge from every goto to every label, the CFG can blow up. Instead
>> we have a single indirect branch and all the gotos branch to it,
>> basically factoring out the CFG.
>
> but gcc already does this factorization for you IIRC. So you should
> find
> that there is already only one computed goto in the gimple no matter
> how
> many there were to start off with.
Oh, I didn't know that. I was just trying to be consistent with the
existing code in llvm-gcc and clang. I'll have another look at it.
If what you say is correct, I agree that the dragonegg approach would
be better.
More information about the llvm-commits
mailing list