similar to: [LLVMdev] Reading .ll file to get its CFG

Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Reading .ll file to get its CFG"

2013 Aug 14
2
[LLVMdev] BranchInst comparison
Hi All, How could I use BranchInst to implement for example br label %if.else7 br label %if.then5 br i1 %cmp4, label %if.then5, label %if.else7 I can use BranchInst for only one instruction but how could I compare between two branches Thanks -- * Rasha Salah Omar Msc Student at E-JUST Demonestrator at Faculty of Computers and Informatics Benha University* *
2013 Aug 14
0
[LLVMdev] BranchInst comparison
or like this %cmp4 = icmp eq i32 %rem, 0 br i1 %cmp4, label %if.then5, label %if.else7 On 14 August 2013 20:08, Rasha Omar <rasha.sala7 at gmail.com> wrote: > Hi All, > > How could I use BranchInst to implement for example > br label %if.else7 > br label %if.then5 > br i1 %cmp4, label %if.then5, label %if.else7 > > I can use BranchInst for only one
2013 Jun 06
3
[LLVMdev] CFG of a function
I think I understood that, but what I mean is what is the function responsible to do mapping is it MapValue() in ValueMapper.h? Thanks for your help On 6 June 2013 09:54, Alexandru Ionut Diaconescu < alexandruionutdiaconescu at gmail.com> wrote: > Map every basic block from the CFG to a set of integers. The successors > from the CFG can be used to make the edges in your simplified
2013 Jun 05
2
[LLVMdev] CFG of a function
What do you mean by mapping to integers? On 5 June 2013 22:32, Alexandru Ionut Diaconescu < alexandruionutdiaconescu at gmail.com> wrote: > Why you don't map the basic blocks to integers and apply algorithms on the > integer graph? And construct your new CFG. > > > On Wed, Jun 5, 2013 at 10:27 PM, Rasha Omar <rasha.sala7 at gmail.com> wrote: > >> How
2013 Jun 07
1
[LLVMdev] CFG of a function
But I don't want to map only basic blocks, I need too to map the edges "the whole CFG of the function" Save the CFG of the function in another memory address and call it for example orgCFG and change the CFG by referencing to the orgCFG Thank you for help and patience On 6 June 2013 10:59, Alexandru Ionut Diaconescu < alexandruionutdiaconescu at gmail.com> wrote: > I
2013 Jun 06
0
[LLVMdev] CFG of a function
I don't use a function for do the mapping, it may be MapValue(). If it does not work, alias an int identifier for each basic block. Be aware because basic block cannot have the same name (getName) in the same function, but they might have the same name being in different functions. Therefore, take into account the function name as well. Good luck On Thu, Jun 6, 2013 at 10:55 AM, Rasha Omar
2013 Aug 14
3
[LLVMdev] BranchInst comparison
Your question isn't clear; please restate what specifically isn't working. -Eli On Wed, Aug 14, 2013 at 11:57 AM, Rasha Omar <rasha.sala7 at gmail.com> wrote: > or like this > > %cmp4 = icmp eq i32 %rem, 0 > > br i1 %cmp4, label %if.then5, label %if.else7 > > > On 14 August 2013 20:08, Rasha Omar <rasha.sala7 at gmail.com> wrote: > >> Hi
2013 Jun 06
0
[LLVMdev] CFG of a function
Map every basic block from the CFG to a set of integers. The successors from the CFG can be used to make the edges in your simplified graph. The pair (Callee,Caller) can link the CFG-s between them in a larger CFG-like. On Wed, Jun 5, 2013 at 11:03 PM, Rasha Omar <rasha.sala7 at gmail.com> wrote: > What do you mean by mapping to integers? > > > On 5 June 2013 22:32, Alexandru
2013 Jun 05
2
[LLVMdev] CFG of a function
How could I keep the function CFG in another memory space. I want to be able to change one of the old CFG , but keeping the original one in another space. Thanks -- *Rasha Salah Omar Msc Student at E-JUST Demonestrator at Faculty of Computers and Informatics Benha University * -------------- next part -------------- An HTML attachment was scrubbed... URL:
2013 Jun 05
0
[LLVMdev] CFG of a function
Why you don't map the basic blocks to integers and apply algorithms on the integer graph? And construct your new CFG. On Wed, Jun 5, 2013 at 10:27 PM, Rasha Omar <rasha.sala7 at gmail.com> wrote: > How could I keep the function CFG in another memory space. > I want to be able to change one of the old CFG , but keeping the original > one in another space. > Thanks > >
2013 Aug 15
0
[LLVMdev] BranchInst comparison
How could BranchInst be used to insert new branch between two basic blocks to get result like this example: br label %if.else br label %if.then br i1 %cmp1, label %if.then, label %if.else Thanks for your help On 14 August 2013 21:36, Eli Friedman <eli.friedman at gmail.com> wrote: > Your question isn't clear; please restate what specifically isn't working. > > -Eli
2013 May 29
2
[LLVMdev] CloneFunctionInto() Error
Dear All, I need your help urgently I have to copy the CFG of each function using CloneFunction or CloneFunctionInto. After I made the copy function. Print the basic blocks then get this error : While deleting: i32 % Use still stuck around after Def is destroyed: %mul2_ = mul nsw i32 %6, 3 Use still stuck around after Def is destroyed: store i32 3, i32* %x_, align 4 opt: Value.cpp:75: virtual
2013 May 29
0
[LLVMdev] CloneFunctionInto() Error
Does cloning copies the function with its address or it constructs a new address to the new function? Is this real copying for the CFG or just opaque one to do some work? If it's not real copying, please I need a method that can help me in copying the function in another with new pointer to another address. Please I need answer urgent Thanks On 29 May 2013 10:14, Rasha Omar <rasha.sala7
2013 Jul 23
2
[LLVMdev] Steps to addDestination
1- I need the first example. 2- I set the Address uninitialized according to the documentation " Setting the name on the Value automatically updates the module's symbol table" from Value.h source code 3- I'm not sure about "select" instruction, you mean that the address is the new destination (basic block)that will be added Thanks On 23 July 2013 16:38, Tim Northover
2013 Jul 25
2
[LLVMdev] Error for AllocaInst and Instruction
Hi, For the following code const Type * Int32Type = IntegerType::getInt32Ty(getGlobalContext()); AllocaInst* newInst = new AllocaInst(Int32Type, 0, "flag", Bb); Bb->getInstList().push_back(newInst); It gives me the error " error: no matching constructor for initialization of 'llvm::AllocaInst' AllocaInst* newInst = new
2013 Jul 24
0
[LLVMdev] Steps to addDestination
Hi Rasha, On Wed, Jul 24, 2013 at 12:28 AM, Rasha Omar <rasha.sala7 at gmail.com> wrote: > 1- I need the first example. Oh good. > 2- I set the Address uninitialized according to the documentation > " Setting the name on the Value automatically updates the module's symbol > table" from Value.h source code That's referring to a string name, and is only really
2013 Jul 24
1
[LLVMdev] Insert new basic blocks
Using Module Pass How could I insert new basic blocks such as while(i==1) {} in the IR and also change the predecessors and successors according to inserting these basic blocks. -- *Rasha Salah Omar Msc Student at E-JUST Demonestrator at Faculty of Computers and Informatics Benha University * -------------- next part -------------- An HTML attachment was scrubbed... URL:
2013 May 26
1
[LLVMdev] get the edge source and destination
Hi, Is there a method to let me print or retrieve the source and destination in one call. As after I made some modifications in edges I need to print these changes. For example, source=getEdgeSource (newEdge); destination=getEdgeDestination(newEdge); Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL:
2013 Sep 01
1
[LLVMdev] LLVM ERROR: Program used external function 'foo' which could not be resolved!
Hi All, Hope this question finds you I typed this command lli Main.ll Mod.ll to execute program in Mod.ll that contains three functions and the main function is in Main.ll but I've got the following error LLVM ERROR: Program used external function 'foo' which could not be resolved! Thanks in advance -- * Rasha Salah Omar Msc Student at E-JUST Demonestrator at
2013 Jun 10
0
[LLVMdev] CFG of a function
Hi Rasha, First, you should not erase that cloned function XD the idea is that your pass should create that new function, add it to a module (that could be the same one where the original function is, or another one that you could be creating if that is the case), and then just let it be: the pass manager should identify this new function (after your pass returned) and all the other analysis and