Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Requiring a ModulePass to be run from a FunctionPass"
2007 Apr 25
2
[LLVMdev] ModulePass that requires FunctionPass
Hi Devang,
You recently mentioned that the pass manager now allows a ModulePass
to require a FunctionPass. I just tried it but ran into errors. Could
you please take a look to see if I did anything wrong? Thanks!
Basically I changed the HelloWorld sample pass to be a ModulePass and
tried to use the LoopInfo pass inside the runOnModule routine.
See below for the source code and error messages.
2018 May 05
4
Slow IR compilation/JIT, profiling points to LLVM?
I'm having issues of my compiler, and JIT execution, of LLVM IR being
rather slow. It's accounting for the vast majority of my full
compilation time. I'm trying to figure out why this is happening, since
it's becoming an impediment. (Note: by slow I mean about 3s of time for
only about 2K of my front-end code, 65K lines of LLVM-IR)
Using valgrind I see some functions which seem
2018 May 05
0
Slow IR compilation/JIT, profiling points to LLVM?
Hi,
Could you share how you compile IR and which version of JIT you use (Orc, MCJIT)?
Could it be that you are using interpreter instead of actual JIT?
Cheers,
Alex.
> On 5. May 2018, at 08:04, edA-qa mort-ora-y via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> I'm having issues of my compiler, and JIT execution, of LLVM IR being
> rather slow. It's accounting for
2011 Dec 14
2
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
I'm attempting to add some support for hoisting/sinking of memory-using
intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
LICM, but when I modify getAnalysisUsge to include this :
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
2011 Dec 14
0
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
On Dec 14, 2011, at 7:09 AM, David Gardner wrote:
> I'm attempting to add some support for hoisting/sinking of memory-using
> intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
> LICM, but when I modify getAnalysisUsge to include this :
>
> virtual void getAnalysisUsage(AnalysisUsage &AU) const {
> AU.setPreservesCFG();
>
2009 Aug 10
2
[LLVMdev] How to use a FunctionPass in a ModulePass?
Hi, all:
I wanted to use a FunctionPass (e.g. *MemoryDependenceAnalysis*) in a
ModulePass, and then I used the method "getAnalysis<*
MemoryDependenceAnalysis*>(llvm::Function *)" described at
http://llvm.org/docs/WritingAnLLVMPass.html#ModulePass to get the
FunctionPass. But , it still crashed when I invoked this pass in tool 'opt'.
However, if I change my pass to
2006 Oct 08
1
[LLVMdev] modulepass requiring a functionpass
I have a ModulePass, which we'll call MP, that generates a dependency
graph for an entire program. I want MP to require the
UnifyFunctionExitNodes pass, which is a FunctionPass. Since its not
possible to make a ModulePass depend on a FunctionPass, is my only
choice to make MP a FunctionPass in which the runOnFunction() routine
does nothing, and the doFinalization routine does all the
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
---------- Forwarded message ----------
From: Qingan Li <ww345ww at gmail.com>
Date: 2011/5/30
Subject:
To: llvmdev at cs.uiuc.edu
Hi,
I wrote an analysis pass, myPass, inherited from both ModulePass and
ProfileInfo, and this pass requires the CallGraph, i.e.,
* class myPass : public ModulePass, public ProfileInfo { ...};*
* void myPass::getAnalysisUsage(AnalysisUsage &AU) const
2009 Oct 21
0
[LLVMdev] Target data question
If the TargetData pass isn't registered in the global registry,
getPassInfo() returns null.
Now when you add a TargetData pass, it winds up in ImmutablePasses.
Any search through ImmutablePasses assumes that getPassInfo() for
every member returns something other than null. So findAnalysisPass
for *any* analysis pass can crash the system if the TargetData pass is
lurking in the list without
2015 Feb 24
2
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
Hi,
We use LLVM libraries to compile C++ code and noticed slow downs when
multiple threads of a process were compiling at once. *perf *indicated that
most of the CPU time was spent in a spin lock, which was being
locked/unlocked from llvm::PassRegistry::getPassInfo().
We read the relevant LLVM code and found out that PassRegistry is a
ManagedStatic and is shared among all threads in case of a
2018 May 05
0
Slow IR compilation/JIT, profiling points to LLVM?
Hi,
On 2018-05-05 08:04:54 +0200, edA-qa mort-ora-y via llvm-dev wrote:
> I'm having issues of my compiler, and JIT execution, of LLVM IR being
> rather slow. It's accounting for the vast majority of my full
> compilation time. I'm trying to figure out why this is happening, since
> it's becoming an impediment. (Note: by slow I mean about 3s of time for
> only
2009 Oct 21
2
[LLVMdev] Target data question
On Wed, Oct 21, 2009 at 10:59 AM, Kenneth Uildriks <kennethuil at gmail.com> wrote:
> If the TargetData pass isn't registered in the global registry,
> getPassInfo() returns null.
>
> Now when you add a TargetData pass, it winds up in ImmutablePasses.
> Any search through ImmutablePasses assumes that getPassInfo() for
> every member returns something other than null.
2011 May 30
1
[LLVMdev] Segfault when trying to schedule custom ImmutablePass
I'm in a debug build with assertions turned on for llvm-2.9, and I get
a segfault whenever I try to schedule one of my own immutable passes
in a pass manager. It seems that one of the passes that I'm scheduling
(IndVarSimplify) attempts to ask for TargetData if it's available (I'm
not providing it), and that's when it segfaults. If I split that pass
into it's own pass
2009 Aug 10
0
[LLVMdev] How to use a FunctionPass in a ModulePass?
On Mon, Aug 10, 2009 at 3:35 AM, gauss<gausszhch at gmail.com> wrote:
> Hi, all:
>
> I wanted to use a FunctionPass (e.g. MemoryDependenceAnalysis) in a
> ModulePass, and then I used the method
> "getAnalysis<MemoryDependenceAnalysis>(llvm::Function *)" described at
> http://llvm.org/docs/WritingAnLLVMPass.html#ModulePass to get the
> FunctionPass. But ,
2009 Aug 11
1
[LLVMdev] How to use a FunctionPass in a ModulePass?
Hi, Devang. Thank you for your reply.
But in my case, my ModulePass requires another FunctionPass (e.g.
MemoryDependenceAnalysis) rather than the opposite direction. Is it also
limited?
-
gauss
Devang Patel-2 wrote:
>
> On Mon, Aug 10, 2009 at 3:35 AM, gauss<gausszhch at gmail.com> wrote:
>> Hi, all:
>>
>> I wanted to use a FunctionPass (e.g.
2011 Nov 10
3
[LLVMdev] Problem getting LoopInfo inside non-LoopPass
LLVMers,
I am doing a CallGraphPass but would like to get the LoopInfo of the
functions inside this pass, is this possible? Currently I have a function
inside the CallGraph struct:
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
AU.addPreserved<LoopInfo>();
}
And later inside the pass I am calling:
LoopInfo &LI =
2007 Apr 16
1
[LLVMdev] ModulePass that requires FunctionPass
Hi All,
I've installed pass manager changes that allow ModulePass to require
FunctionPass. Try it, and let me know if you run into errors/bugs.
Thanks,
-
Devang
2007 Apr 26
0
[LLVMdev] ModulePass that requires FunctionPass
On Apr 25, 2007, at 4:53 PM, Zhiru Zhang wrote:
> Hi Devang,
>
> You recently mentioned that the pass manager now allows a ModulePass
> to require a FunctionPass. I just tried it but ran into errors. Could
> you please take a look to see if I did anything wrong? Thanks!
I can reproduce this crash. Please file bugzilla PR and I'll fix this
soon.
-
Devang
2013 Oct 31
0
[LLVMdev] Get Different Result for ScalarEvolution through ModulePass and FunctionPass
Hi there,
I write two pass, a module pass, named "MP", and a FunctionPass, "FP".
Then I use this pass to print the scalar evolution information in two ways:
1.employ FP to process function directly
2.call MP, iterate on functions, then call FP on them
sample code is that:
*MP:*
*bool runOnModule(Module &M)*
*{*
*for(Module::iterator itr = M.begin(); itr != M.end();
2018 May 06
1
Slow IR compilation/JIT, profiling points to LLVM?
On 06/05/18 00:21, Andres Freund wrote:
> That's what I do (using Orc to JIT parts of SQL queries). By default I
> have the debug build of postgres linked against debug LLVM w/
> assertions, and the optimized build against an optimized LLVM wo/
> assertions (albeit with symbols).
I've tried a builld with assertions off and it has only a relatively
minor impact (a 10% drop in