[LLVMdev] RFC: Constant Creation API

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Jul 28 03:45:38 PDT 2009

Hi Owen,

What if I want to have global llvm::Type's, that can be used by many 
LLVMContext's. For example, I'd like to have one LLVMContext per 
function, and  be able to create constants that belong to the context 
but using a global, shared amongst LLVMContext's, llvm::Type.

I know that's not doable right now, but aren't we losing this 
possibility if we move back to the old static functions?


Owen Anderson wrote:
> So, as you all probably noticed, the APIs for creating constants have 
> been moved (or in a specific cases, are about to be moved) from static 
> methods on Constant to instance methods on LLVMContext.
> However, as was recently pointed out on llvm-commits and on IRC, this 
> is no longer strictly necessary.  Because types have contexts, all of 
> the constant subclasses could be friended to LLVMContext, and then put 
> the work of uniquing by accessing the context off of the type.
> There are obviously some pros and to both approaches.  Going back to 
> the old-style increases compatibility with 2.5, and breaks up the 
> massive LLVMContext class.  On the downside, it would cause massive 
> thrashing on TOT, because I will have to revert about two weeks worth 
> of commits in widely dispersed parts of the tree, and because a number 
> of clients have already switched to the new TOT API.
> Any comments and/or opinions on this decision are welcome.
> --Owen
> ------------------------------------------------------------------------
> _______________________________________________
> 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