<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Nicholas,</div><div><br></div><div><blockquote type="cite"><div>What if I want to have global llvm::Type's, that can be used by many <br>LLVMContext's. For example, I'd like to have one LLVMContext per <br>function, and  be able to create constants that belong to the context <br>but using a global, shared amongst LLVMContext's, llvm::Type.<br><br>I know that's not doable right now, but aren't we losing this <br>possibility if we move back to the old static functions?<br></div></blockquote></div><br><div>That wasn't going to be possible with the methods-on-LLVMContext either.  The Type uniquing tables will be moving onto the context for similar reasons to the Constant ones, though we will make an effort to preserve the existing APIs.</div><div><br></div><div>I'm not sure I understand your goal with having one context per function.  In general, each <i>Module</i> can have its own context, but functions within the same module need to have the same one, so that function types compare correctly, and so that constants in globals work properly.  Trying to get around this is likely to cause screwy results, as things that should compare as equal won't.</div><div><br></div><div>Hope that helps,</div><div><br></div><div>--Owen</div></body></html>