[LLVMdev] questions about getAnalysisUsage

Jingyue Wu jingyue at google.com
Mon Sep 29 16:46:56 PDT 2014


addRequiredID is only used when PassName is not statically known. There's
an example in PassPrinters.cpp. I agree with John that you should use
addRequired<PassName> whenever possible.

Jingyue

On Mon Sep 29 2014 at 4:26:25 PM John Criswell <jtcriswel at gmail.com> wrote:

> On 9/29/14, 5:51 PM, songlh wrote:
> > Hi,
> >
> >   I notice that there are several different methods called inside
> > getAnalysisUsage(). The parameters of addRequiredID and addPreservedID
> > are passID. What is the difference between Required and Preserved?
>
> A Required pass is one that must be run before the pass requiring it.
> The required pass is an analysis pass that your pass will query for
> analysis information.  This information is used by the PassManager to
> determine which analysis passes must be run before another analysis or
> optimization pass.
>
>
> A Preserved pass is an analysis pass whose analysis results your pass
> does not modify.  For example, a pass may modify the code in a way that
> does not modify the results of a dominator analysis.  The PassManager
> uses this information to avoid rerunning expensive analyses unnecessarily.
>
> > There are also function named addRequired<PassName>() called. What is
> > the difference between addRequired<PassName>() and addRequiredID(PassID)?
>
> I suspect that addRequired<PassName>() and addRequiredID() do the same
> thing but have different inputs.  When writing a pass, you should just
> use addRequired<PassName>(); I've never seen anyone use addRequiredID().
>
> Regards,
>
> John Criswell
>
> _______________________________________________
> 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/20140929/6ca9cc22/attachment.html>


More information about the llvm-dev mailing list