[llvm-dev] [Inliner] Loop info in the inliner
Philip Reames via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 21 18:22:12 PDT 2016
FYI - There is currently an architectural issue which prevents the SCC
pass manager (which runs the inliner) from relying on Function or Loop
analysis passes. This is the primary motivation of the pass manager
rewrite that Chandler Carruth has been working on for the last two
years. He's getting relatively close to that project being done, but
until then you are going to be effectively blocked on this.
Philip
On 03/21/2016 11:56 AM, Aditya K via llvm-dev wrote:
> Hi,
> It seems inliner does not take into account if a call is inside a
> loop. I'm trying to figure out if loop-info can be made available to
> the inliner.
>
> When I try to add LoopInfoWrapperPass to Inliner.cpp,
>
>
> diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp
> b/llvm/lib/Transforms/IPO/Inliner.cpp
> index 568707d..cb51ea8 100644
> --- a/llvm/lib/Transforms/IPO/Inliner.cpp
> +++ b/llvm/lib/Transforms/IPO/Inliner.cpp
> @@ -14,6 +14,7 @@
> //===----------------------------------------------------------------------===//
>
> #include "llvm/Transforms/IPO/InlinerPass.h"
> +#include "llvm/Analysis/LoopInfo.h"
> #include "llvm/ADT/SmallPtrSet.h"
> #include "llvm/ADT/Statistic.h"
> #include "llvm/Analysis/AliasAnalysis.h"
> @@ -58,6 +59,7 @@ Inliner::Inliner(char &ID, bool InsertLifetime)
> void Inliner::getAnalysisUsage(AnalysisUsage &AU) const {
> AU.addRequired<AssumptionCacheTracker>();
> AU.addRequired<TargetLibraryInfoWrapperPass>();
> + AU.addRequired<LoopInfoWrapperPass>();
> getAAResultsAnalysisUsage(AU);
> CallGraphSCCPass::getAnalysisUsage(AU);
> }
>
> I get llvm_unreachable in `void
> PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass)'
>
> Thanks,
> -Aditya
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://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/20160321/0b10410b/attachment.html>
More information about the llvm-dev
mailing list