[LLVMdev] Embedded C Language Extensions

Evan Cheng evan.cheng at apple.com
Fri Sep 14 09:39:03 PDT 2007


We'll have to introduce local load / store instructions. These look  
just like normal load / store except for the additional address space  
index bit. Alternatively, just add the address space information to  
load / store. I can see advantages to either approaches.

Evan

On Sep 13, 2007, at 6:56 PM, Christopher Lamb wrote:

>
> I think that this is something that can be tackled after the basic
> address space support is in place.
>
> Here are some questions/suggestions that might help guide where to
> look through the code base and think about the design:
> * Where does the address space information need to be stored in the  
> IR?
> 	Globals, function parameters that are pointers, alloca's, malloc's,
> GEP's?
> * What changes are required so that the address space info is
> preserved in the IR by existing passes?
> * Where is the address space information consumed in the back end?
> 	My guess is instruction selection, which means that the DAG node
> form of LD/ST will need to carry address space information.
> * What changes are required so that the address space info is
> preserved in the DAG nodes given existing transformations?
>
> Perhaps take a look at how other pointer attributes (volatile/
> noalias) weave their way through the data flow to get an idea of
> these further attributes might be handled.
>
> Chris can most likely help answer those questions above and probably
> issues I haven't thought of as well =)
>
> --
> Christopher Lamb
>
>
>
> _______________________________________________
> 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