search for: passmanagerbuilder

Displaying 20 results from an estimated 284 matches for "passmanagerbuilder".

2011 Nov 22
2
[LLVMdev] Instrumentation passes and -O0 optimization level
Hi LLVMdev, llvm::PassManagerBuilder allows to customize the default pass sequenceby registering passes at specific extension points.However all of theextensions if the -O0 flag is added to the command line; as thecomment says, "If all optimizations are disabled, just run thealways-inline pass."This doesn't play well wit...
2015 Jun 04
5
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Thu, Jun 4, 2015 at 3:58 PM, Duncan P. N. Exon Smith < dexonsmith at apple.com> wrote: > > > Personally, I think the right approach is to add a bool to > createGlobalDCEPass defaulting to true named something like > IsAfterInlining. In most standard pass pipelines, GlobalDCE runs after > inlining for obvious reasons, so the default makes sense. The special case > is
2015 Jun 08
2
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
Talked to Eric Fri and he suggested that this might be the first of several places where we want behavior of LTO compiles to diverge from normal -O2 compiles. So for now I have implemented this such that we pass down -flto to the -cc1 job, and that gets propagated as a code gen option and into the PassManagerBuilder. I have left the current logic translating -flto to the -emit-llvm-bc option, since IMO that is cleaner for controlling the output type. Let me know what you think of saving the overall LTO setting in CodeGenOpts/PassManagerBuilder, or if is it better to record just the individual behaviors we want...
2016 Feb 19
3
target triple in 3.8
...pass manager? > > Something like: > > // Add the TTI (required to inform the vectorizer about register size for > // instance) > PM.add(createTargetTransformInfoWrapperPass(TM->getTargetIRAnalysis())); > > Also, are you populating the pass manager using the passmanagerbuilder? You still need the TLI: > > // Populate the PassManager > PassManagerBuilder PMB; > PMB.LibraryInfo = new TargetLibraryInfoImpl(TM->getTargetTriple()); > .... > > > Or without the PassManagerBuild, something like: > > PM.add(new TargetLibraryInf...
2017 Jul 10
2
Problems with registering of ModulePass (with Dependencies)
...---- #include "llvm/Support/raw_ostream.h" #include "llvm/ADT/Statistic.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/Module.h" #include "llvm/Support/Debug.h" #include "llvm/Transforms/IPO/PassManagerBuilder.h" #include "llvm/Analysis/LoopInfo.h" using namespace llvm; namespace { struct SkeletonPass : public ModulePass { static char ID; SkeletonPass() : ModulePass(ID) { } virtual bool runOnModule(Module &M) override {...
2018 Jun 25
2
How to include a opt pass in clang driver
Hi Eli, I have tried that: static void registerMyPass(const PassManagerBuilder &, llvm::legacy::PassManagerBase &PM) { PM.add(new MyPass()); } static RegisterStandardPasses RegisterMyPass(PassManagerBuilder::EP_OptimizerLast, registerMyPass); It still couldn't find my pass. Regards, Soham Sin...
2015 Jun 08
4
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Mon, Jun 8, 2015 at 11:33 AM, Reid Kleckner <rnk at google.com> wrote: > The clang patch lgtm, and I had some comments on the LLVM patch. Duncan, do > you want to say more there? > > --- include/llvm/Transforms/IPO/PassManagerBuilder.h (revision 237590) > +++ include/llvm/Transforms/IPO/PassManagerBuilder.h (working copy) > @@ -121,6 +121,7 @@ class PassManagerBuilder { > bool VerifyInput; > bool VerifyOutput; > bool MergeFunctions; > + bool LTO; > > While in the context of clang it makes sense...
2015 Jun 05
2
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Thu, Jun 4, 2015 at 5:33 PM, Reid Kleckner <rnk at google.com> wrote: > On Thu, Jun 4, 2015 at 5:17 PM, Teresa Johnson <tejohnson at google.com> wrote: >> >> Agreed. Although I assume you mean invoke the new pass under a >> ThinLTO-only option so that avail extern are not dropped in the >> compile pass before the LTO link? > > > No, this pass
2020 Apr 22
3
how to add my own passes to LTO pass
Hi, I have a module pass and I hope to use it to optimize a real-world program. I need LTOļ¼Œand I have got LTO plugin. But How can I add my passes to LTO Pass. I can't find solution. What should I do? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200422/76d2b046/attachment.html>
2012 Oct 19
2
[LLVMdev] Choosing an alias analyzer
Hi, In lib/Transforms/IPO/PassManagerBuilder.cpp: addInitialAliasAnalysisPasses, I see this code ------ // Add TypeBasedAliasAnalysis before BasicAliasAnalysis so that // BasicAliasAnalysis wins if they disagree. This is intended to help // support "obvious" type-punning idioms. PM.add(createTypeBasedAliasAnalysisPass());...
2018 May 15
2
Pass segmentation fault after llvm_shutdown.
...uggestion about what is going on? The source code of the pass is here: https://github.com/PRUNERS/sword/blob/master/lib/Sword.cpp Any help is much appreciated, Thanks! Simone #0 0x00007f1d93735170 in ?? () #1 0x00000000017d2b96 in llvm::object_deleter<llvm::SmallVector<std::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> >::call(void*) () #2 0x0000000001b0e5e9 in llvm::llvm_shutdown() () #3 0x00000000008d8077 in main () -------------- next part -------------- An HTML attachment wa...
2015 Dec 02
3
Is there a way to pass Optimization passes to clang?
...ng. > I have a feeling this would get rather tricky given that there are several libraries linked in to the final executable as well. It would have to look something like: clang -c file.c -emit-llvm > opt -... > llc ... > as > ld (libs to link in) Someone above mentioned modifying PassManagerBuilder and rebuilding clang - I'd guess there's a list of optimization passes performed somewhere that PassManagerBuilder references, but I haven't been in the optimization pass area of LLVM much yet. Any pointers on that approach? Phil > > David > > -------------- next part --...
2019 Oct 09
3
[cfe-dev] RFC: End-to-end testing
...; > Actually the first one seems more of a pure LLVM test. > > Definitely not. It would test the pipeline as constructed by clang, > which is very different from the default pipeline constructed by > opt/llc. I am not convinced it is "very" difference (they are using the PassManagerBuilder AFAIK), I am only aware of very subtle difference. But more fundamentally: *should* they be different? I would want `opt -O3` to be able to reproduce 1-1 the clang pipeline. Isn't it the role of LLVM PassManagerBuilder to expose what is the "-O3" pipeline? If we see the PassManagerBui...
2014 Aug 19
2
[LLVMdev] [RFC] Removing static initializers for command line options
...le right answer for all users. > There are very few of these currently and we expect it to remain like > that. These should not use cl::opt or static storage at all. They > should be an option passed to the constructor of the pass. It may > also involve exposing it to the C api and the PassManagerBuilder. How would you suggest we expose cl::opts for modifying these options in tools like opt? A good example of this type of option would be the options in LoopUnrollPass.cpp. > > * Options that we use during development of llvm. They are useful for > testing, tracking a bug or enabling/disa...
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...bjects 0.0005 0.0006 20.0 Benchmarks/Prolangs-C/TimberWolfMC/timberwo 0.0005 0.0006 20.0 Benchmarks/Prolangs-C/assembler/assembler 0.0005 0.0006 20.0 -------------- next part -------------- Index: include/llvm/Transforms/IPO/PassManagerBuilder.h =================================================================== --- include/llvm/Transforms/IPO/PassManagerBuilder.h (revision 187135) +++ include/llvm/Transforms/IPO/PassManagerBuilder.h (working copy) @@ -132,8 +132,14 @@ /// populateModulePassManager - This sets up the primary pass ma...
2012 Oct 17
2
[LLVMdev] please advise on PassManager
...hich causes run-time crash). This happens only at -O0; at -O1 we get the correct order of events for some reason (foo gets inlined, then foo and bar are instrumented). The code looks like this: tools/clang/lib/CodeGen/BackendUtil.cpp if (LangOpts.AddressSanitizer) { PMBuilder.addExtension(PassManagerBuilder::EP_OptimizerLast, addAddressSanitizerPass); PMBuilder.addExtension(PassManagerBuilder::EP_EnabledOnOptLevel0, addAddressSanitizerPass); } lib/Transforms/IPO/PassManagerBuilder.cpp void PassManagerBuilder::populateModulePassManag...
2019 Dec 20
3
What's the go-to method to call other transform passes in LLVM9?
...;nbsp;&nbsp; Assertion failed: (Resolver &amp;&amp; "Pass has not been inserted into a PassManager object!"), function getAnalysis, file \LLVM9/llvm/include/llvm/PassAnalysisSupport.h, line 221. Is there any suggestion on this? And how do I make sure my transform passes in PassManagerBuilder are executed in a given order? Previously I create a dummy pass that calls the actual transform passes and run them in order, then inject this dummy pass into PMB -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments...
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got chance to list a detailed pass order for the pre- and post- IPO scalar optimizations. This is wish-list in our mind: pre-IPO: based on the ordering he propose, get rid of the inlining (or just inline tiny func), get rid of all loop xforms... post-IPO: get rid of inlining, or maybe we still need it, only
2018 Jul 10
2
Programmatically Toggle Specific LLVM Optimizations
...lvm -o - | opt <your > list of passes> | llc > (not tested, so don't expect to work straight out of the box) > > This is not strictly the same as optimizing using clang (pass options > are missing), so there will be performance differences. You could > instead customize PassManagerBuilder::populateModulePassManager() and > PassManagerBuilder::populateFunctionPassManager(). > > Michael
2017 Apr 10
3
Relationship between clang, opt and llc
...g a.o b.o c.o ... -o executable 2. clang -O0 -c -emit-llvm -o source.bc opt -O3 source.bc -o source.bc llc -O3 -filetype=obj source.bc -o source.o ... clang a.o b.o c.o ... -o executable I took a look at the source code of the clang tool and the opt tool, they both seem to use the PassManagerBuilder::populateModulePassManager() and PassManagerBuilder::populateFunctionPassManager() functions to add passes to their optimization pipeline; and for the backend, the clang and llc both use the addPassesToEmitFile() function to generate object code. So presumably the above two approaches to generatin...