[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