Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] LoopInfo pass"
2014 Jan 15
2
[LLVMdev] Loop unrolling a function
The loop rotation pass does modify the function, which I'm guessing means
that a FunctionPassManager can be used to run LoopPasses (this is not
obvious to me after looking through the FunctionPassManager code).
Unfortunately none of the other passes I'm using (ScalarEvolution, LCSSA,
IndVarSimplify, and LoopUnroll) appear to have an effect.
I verified that the function can be loop
2014 Jan 15
3
[LLVMdev] Loop unrolling a function
Hi all,
I'm attempting to perform loop unrolling on a single function using the C++
API. Maybe I missed something in the docs, but I cannot figure out a way to
do this. The function I'm working with is very simple, containing a single
for loop and not much else. I compiled the function to IR using clang with
no optimizations enabled.
My initial plan was to first run the IndVarSimplify
2010 Mar 11
2
[LLVMdev] how to access loopInfo
Hi!
I'd like to analyze a function with the llvm::LoopInfo pass and then
write some info to disk. I create a FunctionPassManager and insert it and
a DominatorTree which is required by LoopInfo.
As it turns out the analysis info is only available to other
passes and gets cleared when the run function of the pass manager returns.
I therefore guess that I need to create an own pass.
Is this
2010 Mar 11
0
[LLVMdev] how to access loopInfo
On Thursday 11 March 2010 12:36:55 Jochen Wilhelmy wrote:
> Hi!
>
> I'd like to analyze a function with the llvm::LoopInfo pass and then
> write some info to disk. I create a FunctionPassManager and insert it and
> a DominatorTree which is required by LoopInfo.
> As it turns out the analysis info is only available to other
> passes and gets cleared when the run function of
2008 Dec 19
1
[LLVMdev] strange behaviour after extracting optimization pass code
Hi,
I am expieriencing strange behaviour of llvm's optimization passes and I
don't understand what I am doing wrong.
Basically all I've done is extracting code for optimization of a
llvm-function in a llvm-module and put it into a separate function for
better readability. The original code looks like follows (and works as
expected):
-----------------------------
std::string
2008 Dec 19
2
[LLVMdev] strange behaviour after extracting optimization pass code
Hi,
I am expieriencing strange behaviour of llvm's optimization passes and I
don't understand what I am doing wrong.
Basically all I've done is extracting code for optimization of a
llvm-function in a llvm-module and put it into a separate function for
better readability. The original code looks like follows (and works as
expected):
-----------------------------
std::string
2009 Jul 27
2
[LLVMdev] Pass Scheduling Information without using opt
Daniel Dunbar wrote:
> Ah, in this case llvm_shutdown isn't what you are looking for. I've
> never looked at the Statistic implementation so I can't be any help
> here, but if you poke around starting with "llvm/ADT/Statistic.h" you
> may find a way to do what you want.
I looked into that already, but Statistic.h only gives me the
possibility to implement tracking
2020 Apr 04
2
Running opt O1 outside of llvm
Hi,
I would like to run the -O1 pass sequence followed by -reg2mem from an out
of tree project which uses llvm.
I am using the following code snippet to do so but in some cases, my method
is also vectorising the code, which doesn't happen when running the same
sequence(-S -O1 -reg2mem) through opt. Can someone please help me find what
I am missing?
Thanks,
Akash.
*
2008 Dec 19
0
[LLVMdev] strange behaviour after extracting optimization pass code
On 2008-12-19, at 06:59, Ralf Karrenberg wrote:
> I am expieriencing strange behaviour of llvm's optimization passes
> and I don't understand what I am doing wrong.
> Basically all I've done is extracting code for optimization of a
> llvm-function in a llvm-module and put it into a separate function
> for better readability. The original code looks like follows
2009 Jul 27
0
[LLVMdev] Pass Scheduling Information without using opt
On Mon, Jul 27, 2009 at 1:43 AM, Ralf Karrenberg<Chareos at gmx.de> wrote:
> Here is some example code that describes what I am doing:
>
> MyPass : ModulePass {
>
> bool runOnModule(mod) {
>
> for some Functions f in mod {
> (do some stuff)
>
> ExistingModuleProvider mp(mod);
> FunctionPassManager* fpm =
> new FunctionPassManager(&mp);
I think
2013 Jan 29
0
[LLVMdev] Running a Local Buildbot
Hello
We are migrating from 2.9 to 3.2
Here is some code that does not compile any more
llvm::PassManager *pm;
llvm::FunctionPassManager *fpm;
module = llvm::ParseBitcodeFile(mb,context,&err_str);
if (!module) {
error() <<"Failed to load module from bitcode file: " <<err_str
<<endl;
exit(1);
}
pm = new PassManager();
2007 Jun 21
2
[LLVMdev] PassManager vs FunctionPassManager
Right now, addPassesToEmitFile requires a FunctionPassManager. If I'm
working with code that uses a plain PassManager and want it to generate
code, are there any options better than doing this:
/**
* Wrapper class to run a FunctionPassManager as a ModulePass so that it
* can be added to a plain PassManager.
*/
class FunctionPassManagerModulePass : public ModulePass {
FunctionPassManager
2007 Jun 21
0
[LLVMdev] PassManager vs FunctionPassManager
On Jun 21, 2007, at 4:13 PM, Dan Gohman wrote:
> Right now, addPassesToEmitFile requires a FunctionPassManager. If I'm
> working with code that uses a plain PassManager and want it to
> generate
> code, are there any options better than doing this:
That's what FPPassManager does (include/llvm/PassManagers.h) .
Function pass manager itself is a module level pass.
2020 Nov 09
0
Adaptors in new pass manager
Hi,
I have 4 questions:
1. In legacy pass manager, we have following sequence of code in
PassManagerBuilder.cpp
PM.add( some_function_pass_1() )
PM.add( some_function_pass_2() )
why is it that we add function pass to a module pass manager? And does
these 2 statements create 2 function pass managers ?
2. In new pass manager, the above code would look something like this.
FunctionPassManager
2018 Sep 12
2
How to make LLVM go faster?
Here is some timing information from running the Zig standard library tests:
$ ./zig test ../std/index.zig --enable-timing-info
Name Start End Duration Percent
Initialize 0.0000 0.0010 0.0010 0.0001
Semantic Analysis 0.0010 0.9968 0.9958 0.1192
Code Generation 0.9968 1.4000 0.4032
2015 Dec 20
3
How to run InternalizePass
I'm working on a whole program optimizer that uses LLVM as a library, and
one of the things I want to do is eliminate dead global functions and
variables even when they are not local to a module. (This understandably
doesn't happen by default because the optimizer has to assume it could be
compiling a library rather than a program.)
I've actually written a function to do this, but
2011 Mar 03
0
[LLVMdev] how can I have LoopInfo in a module pass?
On 3/3/11 3:09 PM, Wenbin Zhang wrote:
> Hi all,
> I tried to have a LoopInfo object in a function pass, add
> addRequired<LoopInfo> in getAnalysisUsage, and then use
> getAnalysis<LoopInfo> in runOnFunction(). It worked OK.
> Now I want to have a module pass to traverse the functions, and
> similarly I want to have to loop information of the functions. When I
>
2020 Nov 10
1
Inliner in legacy pass manager
Hi,
So, does this mean that in legacy pass manager, when I run:
PM.add( someFunctionPass() ) // PM is modulePassManager
it creates FunctionPassManager, runs the function pass,destroys the
functionPassManager and returns control to modulePassManager?
Also, you have said that this wasn't the primary reason for the
introduction of the new pass manager. But then is this one of the reasons?
2011 Mar 03
0
[LLVMdev] how can I have LoopInfo in a module pass?
I think this assertion failure may be caused by the getAnalysisUsage(). Mine is like the following:
class myclass : public ModulePass{
...
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
}
...
}
Is it enough? Thanks!
Best,
--Wenbin
----- Original Message -----
From: Wenbin Zhang
To: John Criswell
Cc: llvmdev at
2010 Mar 18
1
[LLVMdev] Turning sub-target features on/off (e.g. Altivec on PowerPC)
Hello,
I'm using Mono with experimental LLVM backend support on PowerPC. I noticed
that although LLVM's IR contains SIMD instructions the assembly produced
doesn't contain any Altivec instructions and my PowerPC970 machine of course
has Altivec support. Isn't there some kind of autodetection? I searched in
Target sources but only found out that Altivec is disabled by default.
Can