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>