[LLVMdev] CodeGen fails for CallInst with label

Chris Lattner sabre at nondot.org
Sat Apr 19 12:16:18 PDT 2008


On Apr 19, 2008, at 12:04 PM, Edward Lee wrote:

> On Sat, Apr 19, 2008 at 1:27 PM, Chris Lattner <sabre at nondot.org>  
> wrote:
>> On Apr 19, 2008, at 1:30 AM, Edward Lee wrote:
>>> It seems like LLVM happily creates function calls that pass in  
>>> labels
>>> but doesn't know how to emit them.
>> Yep, this isn't supported.  We can't quite enforce it as invalid at
>> this moment, but don't expect it to work.
> That's a little bit disappointing for me. Is there some way in LLVM to
> get the address of a label and put it in a register for use within
> that function?

No.  The reason we don't allow this is because it violates the CFG.   
The compiler needs to know where and how control flow happens so that  
dataflow analysis and code motion does not corrupt the behavior of the  
program being compiled.

We do plan to eventually optimize indirect goto more aggressively, but  
this is a big and nasty project.

-Chris



More information about the llvm-dev mailing list