[LLVMdev] One question about two passes interaction

Scott Moore sdmoore at fas.harvard.edu
Fri Feb 22 22:51:06 PST 2013


Hi Robert,

Function passes are expected to have local behavior that can be scheduled
on a per-function basis in no particular order. To get the behavior you
want, you probably want to make "FunctionPass1" a Module pass and have it
iterate through all of the functions in the module.

You can find more information about passes and how to choose a type of pass
in the llvm documentation at http://llvm.org/docs/WritingAnLLVMPass.html.

Cheers,
Scott


On Sat, Feb 23, 2013 at 1:37 AM, Robert Sandra
<robert.sandra0712 at gmail.com>wrote:

> Hi all,
>
> I am trying to run a case as follows:
>
> FunctionPass1:  try to get all function's names and store them to a global
> array
> FunctionPass2:  get information from the global array
> In FunctionPass2, I use getAnalysisUsage() to set that to run
> FunctionPass2, FunctionPass1 should be executed first.
>
> But according to the running result, I found that these two passes are
> executing at the same time,
> which means After FunctionPass1 iterate one function, then FunctionPass2
> will be executed to iterate one function; then FunctionPass1 continues to
> run, and then FunctionPass2....
>
> While, what I expected is that the FunctionPass1 will complete first, then
> FunctionPass2 will be executed. Am I understanding wrong?
>
> Thanks.
> Robert
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130223/bcf7453e/attachment.html>


More information about the llvm-dev mailing list