[llvm-dev] Question about using multiple functions in a Function pass

Alexey Zhikhartsev via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 10 11:45:47 PDT 2019


Hi Iulia,

Function passes are not allowed to process functions other than the current
one. Please see
http://llvm.org/docs/WritingAnLLVMPass.html#the-functionpass-class

Alex

On Tue., Sep. 10, 2019, 11:56 a.m. Iulia Stirb via llvm-dev, <
llvm-dev at lists.llvm.org> wrote:

> Hi all,
>
> I would want to know if from the runOnFunction method of a Function pass,
> other functions in IR, except for the one received as parameter, can be
> obtained as well, from a call instruction, as follows:
>
> Function F = dyn_cast<Function>(callInst);
>
> Or do I need a Module pass to work in IR with multiple functions from
> input source code? If so, it is accepted to have O(n^3) complexity in a
> module pass when iterating through each instruction of each basic block of
> each function in the module.
>
> Unrelated to the topic, I would also like to ask if a module object
> contains the IR for the entire application if the application contains
> multiple source files?
>
> Kind regards,
> Iulia ȘTIRB
>
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190910/8a7860a8/attachment.html>


More information about the llvm-dev mailing list