similar to: [LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass

Displaying 20 results from an estimated 5000 matches similar to: "[LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass"

2015 May 06
5
[LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass
On 5/6/15 10:19 AM, Kuperstein, Michael M wrote: > > Hello Cristiano, > > I don’t think doFinalization() is really meant to be used this way. > My understanding is that doInitialization() and doFinalization() are designed specifically for modifying the LLVM IR (otherwise, why would a mutable reference to the Function be provided)? If that is not the case, then there is either a
2015 May 06
2
[LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass
On 5/6/15 11:15 AM, Kuperstein, Michael M wrote: > > I’ve always thought that the only guarantee is that > doFinalization(Module &M) runs after runOnFunction() was executed for > all functions in M, and there’s no guarantee it runs *immediately* after. > > That is, a PM may run a bunch of function passes over each function, > and only then call doFinazliation() for each
2015 May 06
3
[LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass
Hello again, First of all, thanks for all the answers =) they really helped a lot =D *Have you verified that some other pass is not adding the function declarations back in after your pass is executed (e.g., by using the -debug-pass=Executions argument to see what passes run after your pass)?* I considered that for a moment, but I realized that wouldn't be possible for two reasons: I
2012 Apr 08
2
[LLVMdev] Function and inheritance
Hello guys, So, I'm stucked in a problem involving a Function and a derived class. Well, I was refactoring part of my pass code, and created two classes in this process that are interesting here: class A and class B. Class B inherits from class A; on the other hand, class A has some pure virtual methods (already implemented in class B), and a Module, that holds only one auxiliary function (a
2013 Jun 25
4
[LLVMdev] get value
Hi Cristianno, Thank you, it works :) with an extra cast:                                     Value *v ......                                     ConstantInt* RR = (ConstantInt *)v;                                     uint64_t VV = (RR->getValue()).getLimitedValue();                                     errs()<<"\nRR  "<<VV<<"\n";
2012 Apr 09
0
[LLVMdev] Function and inheritance
Hello again, So, after some changes, I inserted intentionally values with use in other modules, and I get the following error: While deleting: i1 % Use still stuck around after Def is destroyed: %c = phi i1 [ false, <badref> ] [...] Assertion failed: (use_empty() && "Uses remain when a value is destroyed!"), function ~Value, file
2013 May 31
2
[LLVMdev] Dead Code Elimination and undef values
Hello there, I'm writing a transformation pass for LLVM, and I hoped to use dce to clean up the resulting code after my pass. I just have some questions about LLVM's dce implementation. Well, my transformation is a function pass, and, after the changes are made, some instructions are not needed anymore. In order to easily get rid of those instructions, I'm setting all their uses to
2013 Jul 10
2
[LLVMdev] Problem Adding New Pass to Alias Analysis Group
Dear All, I'm trying to add a new alias analysis to the alias analysis group in LLVM 3.2. This new pass is linked statically into a tool that lives outside the LLVM source tree, so I'm trying to avoid making patches to the LLVM sources. I've added the INITIALIZE_AG_PASS_BEGIN() and INITIALIZE_AG_PASS_END() code to the pass, manually scheduled it before the
2012 Apr 04
2
[LLVMdev] BasicBlock predecessors list
Hi there, I'm trying to get a list of predecessors of a BasicBlock. I'm using a code similar to that on here (http://llvm.org/docs/ProgrammersManual.html#iterate_preds), but it appears to be more nodes been iterating that it should. Now, when I print out the llvm IR, I get something like: […] while.body: ; preds = %7, %while.cond […] for a code that
2013 Jun 25
0
[LLVMdev] get value
Oops, that's true: I forgot about that XD sorry =) Glad I could help, -- Cristianno Martins PhD Student of Computer Science University of Campinas cmartins at ic.unicamp.br <cristiannomartins at hotmail.com> On Tue, Jun 25, 2013 at 4:38 AM, Alexandru Ionut Diaconescu < cyrusthevirus001x at yahoo.com> wrote: > Hi Cristianno, > > Thank you, it works :) > > with
2013 Jun 01
0
[LLVMdev] Dead Code Elimination and undef values
Hi Cristianno, On 01/06/13 01:49, Cristianno Martins wrote: > Hello there, > > I'm writing a transformation pass for LLVM, and I hoped to use dce to clean up > the resulting code after my pass. I just have some questions about LLVM's dce > implementation. > > Well, my transformation is a function pass, and, after the changes are made, > some instructions are not
2013 Jul 10
0
[LLVMdev] Problem Adding New Pass to Alias Analysis Group
Hello John, What opt command line arguments are you using? If you follow this link<http://llvm.org/docs/Passes.html#no-aa-no-alias-analysis-always-returns-may-alias>, you can see that -no-aa is the default alias analysis implementation if you do not manually specify which AA passes you want to use. Note that you can pass as many different implementations of AA as you want, and each of them
2012 Apr 04
0
[LLVMdev] BasicBlock predecessors list
Hi Cristianno, > I'm trying to get a list of predecessors of a BasicBlock. I'm using a code > similar to that on here > <http://llvm.org/docs/ProgrammersManual.html#iterate_preds>, but it appears to > be more nodes been iterating that it should. Now, when I print out the llvm IR, > I get something like: > […] > while.body: ; preds = %7, %while.cond > […] >
2013 Jul 10
1
[LLVMdev] Problem Adding New Pass to Alias Analysis Group
On 7/10/13 3:43 PM, Cristianno Martins wrote: > Hello John, > > What opt command line arguments are you using? I'm not using opt. I'm manually scheduling a pipline within a tool. The code looks like this: PassManager pm; MyAlias * aa = new MyAlias(); pm.add(aa); pm.add(new MyAliasUsingPass()); Both MyAlias and MyAliasUsingPass are now ModulePass'es. MyAlias is an alias
2012 Mar 05
3
[LLVMdev] Problem using march=c
Hello everyone, I've been trying to generate a C file using the llc tool, but I'm having a problem. I'm using a single Hello World program in C, and executing the following passes: clang -emit-llvm -c -o hello.bc hello.c  # getting the bit code of hello.c llc -march=c hello.bc                          # generating the hello.cbe.c file using the llvm C backend So far, nothing weird
2013 Jun 26
0
[LLVMdev] get value
Alexandru Ionut Diaconescu wrote: > Hi Cristianno, > > Thank you, it works :) > > with an extra cast: > Value *v ...... > ConstantInt* RR = (ConstantInt *)v; Please use "cast<ConstantInt>(v)" instead. See http://llvm.org/docs/ProgrammersManual.html#the-isa-cast-and-dyn-cast-templates . Nick > uint64_t VV = (RR->getValue()).getLimitedValue(); >
2012 Mar 05
1
[LLVMdev] Problem using march=c
Hello again, Thanks for the responses =) Dmitry, I have two points to comment: - First, I applied these two patches, and the .cbe.c file came out ok, except for one little thing -- the global variable was created with both modifiers: static and extern. Then, I just added a single guard to prevent this to happen (in a case of a variable having local linkage, the "extern" part was not
2013 Jun 25
2
[LLVMdev] get value
Hello ! This may be a trivial question, but I cannot get fields from a Value type. If my Value is i32 1, how can I store 1 in a different structure (an integer) ? For the type, I have getType(). For the value, I see no method in Value.h. I tried to cast to ConstantExpr and then to get operands, or cast to ConstantDataArray and then use getAsString(), but is not working. How should I get the
2012 Mar 05
0
[LLVMdev] Problem using march=c
Hi Cristianno, This problem has been around for a while, ourselves we solve it with the following patches: https://hpcforge.org/scm/viewvc.php/trunk/patches/llvm.gpu.patch?root=kernelgen&view=markup https://hpcforge.org/scm/viewvc.php/trunk/patches/llvm.patch?revision=591&root=kernelgen&view=markup Please feel free to apply them, they *should* work for you even with the latest llvm
2013 May 14
2
[LLVMdev] Queue implementation is being trapped
Hello there, I'm trying to use a simple implementation of a queue (my own implementation of it, actually), and I'm trying to use the functions defined on my queue class inside some llvm-ir code. Unfortunately, the names of the functions are being messed up, then I created some function wrappers just to avoid having to deal with the C++ weird function renaming. So, to easily wrapper the