[llvm-dev] transfer type to 'local' context
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Tue Aug 15 11:05:43 PDT 2017
On 8/15/2017 5:48 AM, alex via llvm-dev wrote:
> Hi all,
>
> is there an easy way to get a 'copy' of a type living in another context
> into the local context?
No, as far as I know. (Probably not hard to write, if you really need
it, though; the LLVM type system is pretty simple.)
> Background:
> when calling a function residing in a different module (context2) from a
> module (context1), we first need to introduce a function declaration of
> the function with empty body.
>
> However, in order to do so, we need the function type.
> pFuncInContext2->getType gives us the type in context2.
> The returnType or argument type might refer to some types yet only
> defined in context2 (e.g. special structs).
>
> In order to get the functin declaration right, I would need to find out
> if we have in context 1every necessary type referred to by the function
> (in context2) and introduce it if not.
>
> Is there an elegant way wrapping all this?
> E.G. getTypeinLocalcontext(context1, pFuncTypeInContext2)?
Why are your modules in different contexts? IR linking normally
involves loading all of the relevant modules into the same context.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev
mailing list