[LLVMdev] Seperating LLVM representation for processing with different backends

Evan Cheng evan.cheng at apple.com
Mon Jan 14 11:14:24 PST 2008

On Jan 9, 2008, at 2:12 AM, aditya vishnubhotla wrote:

> Hi,
> I am writing a pass which identifies the parts(basic
> blocks/functions) of
> the input algorithm with more of data flow or control
> flow. These parts are to
> be separated executed by different backends.
> My idea is to insert replacement basic blocks with
> intrinsic instructions
> within the basic block. These instructions should
> satisfy the data
> dependencies within the LLVM data structure and should
> do the parameter
> marshalling for switching to the other architecture to
> and fro.
> Dependencies of the different passes:
>  analysis part
>           |
>        filter
>       /       \
> ppc          custom backend


> Switching between the ppc and custom backend would be
> by using different
> filter passes in two compiler runs.
> I have a couple of questions regarding the problem
> outlined above:
> Is the approach using intrinsic instructions
> worthwile?

Probably. If what you are trying to represent is truly target  
specific then using intrinsics is good solution.

> What has to be done to the existing backends to make
> these new instrinsic
> instructions known?

You need to add Intrinsics??.td file to include/llvm as well as  
instruction selection patterns / code to translate them to target  
specific instructions.

> Is there an way to eliminate two compiler runs, one
> for each backend?

Right now, the only way I see that can be possible is if you have a  
single target capable of handling codegen for both parts. So for  
example, if you can make the target into a variant of ppc, then you  
can potentially dynamically switch between the two for different  
BB's. But I would suggest you put the idea away for now. It would  
seem to me the problem you described present plenty of challenges for  
now. :-)


> Best regards
> Aditya
> ______________________________________________________________________ 
> ______________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/ 
> newsearch/category.php?category=shopping
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list