Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] loop metdata instruction"
2013 Mar 03
0
[LLVMdev] loop metdata instruction
Hi
I'm working on a project which needs loop-attached metadata similar to
the parallel metadata discussed in here. Currently I'm trying to make
the metadata get through the optimisation passes unscathed. For loop
passes, I've solved that by modifying the LPPassManager to check for
metadata presence before and after runOnLoop, and restoring it if
necessary (assuming the loop didn't
2010 Nov 17
2
[LLVMdev] L->isLoopInvariant giving wrong results?
Hi,
I'm trying to write a simple pass to print out Loop invariant instructions,
using the
Loop::isLoopInvariant(Instruction *I)
function. it is giving me false value on instructions which should be loop
invariant.
the code i am using is:
bool MyLoopPass::runOnLoop(Loop * L, LPPassManager &lpm){
BasicBlock* lat=L->getLoopLatch();
for (BasicBlock::iterator i = lat->begin(), e =
2010 Nov 17
0
[LLVMdev] L->isLoopInvariant giving wrong results?
i am getting seg fault on functions like I->eraseFromParent also.
I'm assuming that the problem comes when i change the loop structure.
On Thu, Nov 18, 2010 at 4:05 AM, Sreeraj a <writetosrj at gmail.com> wrote:
> The funny thing is that i am manually able to hoist the Loop invariant
> instruction to the basicBlock terminator, by editing the human readable form
> and then
2010 Nov 17
2
[LLVMdev] L->isLoopInvariant giving wrong results?
The funny thing is that i am manually able to hoist the Loop invariant
instruction to the basicBlock terminator, by editing the human readable form
and then using llvm-as to convert it into bytecode.
On Thu, Nov 18, 2010 at 4:01 AM, Chris Lattner <clattner at apple.com> wrote:
>
> On Nov 17, 2010, at 1:38 PM, Sreeraj a wrote:
>
> > Thanks Chris,
> >
> > I was
2010 Nov 17
0
[LLVMdev] L->isLoopInvariant giving wrong results?
On Nov 17, 2010, at 2:20 AM, Sreeraj a wrote:
> Hi,
> I'm trying to write a simple pass to print out Loop invariant instructions, using the
> Loop::isLoopInvariant(Instruction *I)
> function. it is giving me false value on instructions which should be loop invariant.
>
> the code i am using is:
The isLoopInvariant method just works for scalar operations like
2011 Dec 12
4
[LLVMdev] problem with runOnLoop
hi all,
I want access to all basic blocks of function in a loop, so I used the
following code:
*bool parallel::runOnLoop(Loop *L, LPPassManager &LPM)
{
for (Function::iterator bi= func->begin(); bi != func->end(); bi++){
//
}
}*
First loop run without problem, but for second loop I get the following
error:
*0 libLLVM-2.9.so 0x0137d530
1 libLLVM-2.9.so 0x0137fa6c
2
2011 Dec 12
1
[LLVMdev] problem with runOnLoop
Thank you for your reply
Yes, I change them, so what should I do for another loops?
On Mon, Dec 12, 2011 at 7:54 PM, neda 8664 <neda8664 at gmail.com> wrote:
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
>
> On Mon, Dec 12, 2011 at 7:42 PM, John Criswell <criswell at illinois.edu>wrote:
>
>> On 12/12/11 9:59 AM,
2011 May 09
2
[LLVMdev] get LPPassManager to use it in llvm::CloneLoop
Hi,
I try to write a FunctionPass that, among other tasks, has to clone some loops
from the current function.
How can I obtain the LPPassManager in order to use the CloneLoop function.
In a LoopPass this is a parameter for the runOnLoop, but how can I obtain it in
a FunctionPass?
I tried simply by creating a new instance :
ValueMap<const Value *, Value* > VMap;
2012 Dec 13
2
[LLVMdev] LoopPass doFinalization() called multiple times per program?
I'm wondering if the documentation for LoopPass (
http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass) is misleading or
incorrect (or if I'm just missing something.) The documentation states:
"The doFinalization method ... is called when the pass framework has
finished calling
runOnLoop<http://llvm.org/docs/WritingAnLLVMPass.html#runOnLoop> for
every loop in the program being
2011 Dec 12
0
[LLVMdev] problem with runOnLoop
On 12/12/11 10:25 AM, neda 8664 wrote:
>
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
I don't really know what you should do since I don't know what your code
does. All I know is that it's changing the function's control-flow graph.
If you're not modifying the structure of the loops in the function, then
you can
2011 May 09
0
[LLVMdev] get LPPassManager to use it in llvm::CloneLoop
On Mon, May 9, 2011 at 1:06 AM, Jimborean Alexandra
<xinfinity_a at yahoo.com> wrote:
> Hi,
>
> I try to write a FunctionPass that, among other tasks, has to clone some
> loops from the current function.
> How can I obtain the LPPassManager in order to use the CloneLoop function.
> In a LoopPass this is a parameter for the runOnLoop, but how can I obtain it
> in a
2012 Dec 17
3
[LLVMdev] LoopPass doFinalization() called multiple times per program?
On Sun, Dec 16, 2012 at 7:23 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Stephen,
>
>
> On 13/12/12 18:58, Stephen McGruer wrote:
>
>> I'm wondering if the documentation for LoopPass
>> (http://llvm.org/docs/**WritingAnLLVMPass.html#**LoopPass<http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass>)
>> is misleading or
>> incorrect (or
2012 Jul 13
4
[LLVMdev] adding new data types to llvm
Hello .
I would like to add new custom data type to llvm C parser, I use LLVM/Clang version 3.1.
Adding new type instructions from llvm.org site are out of date (http://llvm.org/docs/ExtendingLLVM.html#type).
Could you please provide me with guidance?
Thanks in advance,
Edvard
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2011 Dec 12
0
[LLVMdev] problem with runOnLoop
On 12/12/11 9:59 AM, neda 8664 wrote:
> hi all,
>
> I want access to all basic blocks of function in a loop, so I used the
> following code:
>
> /bool parallel::runOnLoop(Loop *L, LPPassManager &LPM)
> {
> for (Function::iterator bi= func->begin(); bi != func->end(); bi++){
> //
> }
> }/
Are you modifying anything within this code
2012 Dec 16
0
[LLVMdev] LoopPass doFinalization() called multiple times per program?
Hi Stephen,
On 13/12/12 18:58, Stephen McGruer wrote:
> I'm wondering if the documentation for LoopPass
> (http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass) is misleading or
> incorrect (or if I'm just missing something.) The documentation states:
>
> "The doFinalization method ... is called when the pass framework has finished
> calling runOnLoop
2012 Jul 05
3
[LLVMdev] "symbol lookup error" while running a Simple Loop Pass
Hello;
I wrote this simple loop pass to collect the number of instructions in each
loop of the program. The code is as follows-
#define DEBUG_TYPE "loopinst"
#include "llvm/Pass.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Instructions.h"
#include
2012 Dec 18
1
[LLVMdev] problem with runOnLoop
John Criswell <criswell <at> illinois.edu> writes:
>
>
> On 12/12/11 9:59 AM, neda 8664 wrote:
>
>
> hi all,
> I want access to all basic blocks of function in a loop, so I used
> the following code:bool parallel::runOnLoop(Loop *L, LPPassManager
> &LPM)
> {
> for
2012 Jan 03
1
[LLVMdev] AliasAnalysis and memory dependency
i am sorry,
i get this error:
opt: /home/llvm/src/include/llvm/Support/CallSite.h:87: ValTy*
llvm::CallSiteBase<FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy,
IterTy>::getCalledValue() const [with FunTy = const llvm::Function, ValTy =
const llvm::Value, UserTy = const llvm::User, InstrTy = const
llvm::Instruction, CallTy = const llvm::CallInst, InvokeTy = const
llvm::InvokeInst, IterTy =
2012 Dec 17
0
[LLVMdev] LoopPass doFinalization() called multiple times per program?
Hi Chandler,
On 17/12/12 13:47, Chandler Carruth wrote:
> On Sun, Dec 16, 2012 at 7:23 AM, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at free.fr>> wrote:
>
> Hi Stephen,
>
>
> On 13/12/12 18:58, Stephen McGruer wrote:
>
> I'm wondering if the documentation for LoopPass
>
2012 Jan 03
0
[LLVMdev] AliasAnalysis and memory dependency
Hi neda 8664,
> I want to find memory dependency between CallInst instruction and other. So i
> used the following code:
>
>
>
> / AliasAnalysis &AA=getAnalysis<AliasAnalysis>();/
>
> /*if* (isa< StoreInst >(inst1)){ /
>
> // // /*if* (isa<CallInst>(inst2)) / /{/
>
> / CallInst *call_inst2= dyn_cast<CallInst>(inst2); /