Displaying 5 results from an estimated 5 matches for "thisloop".
Did you mean:
theloop
2011 May 07
1
[LLVMdev] Loop transformations using LLVM
...ding IVs without iterating over instructions. But you may need to generalize it a bit for your purpose.
A completely general approach to IV analysis is ScalarEvolution. You can query the expression for a loop header phi using ScalarEvolution::getSCEV. If it returns SCEVAddRecExpr with getLoop() == ThisLoop, then you've found an IV. You can build a new IV by replacing the "step" with SCEVAddExpr(1 + OrigStep). To materialize it in IR, you need to use a SCEVExpander. ...probably more complicated than you need.
-Andy
>
>
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-...
2007 Dec 11
2
[LLVMdev] LoopInfo Question
Hi,
If I do a loop over the basic blocks in a LoopInfo object, is it going
to loop over the basic blocks of the loop AND the subloops of the loop
or just the BBs of the loop itself?
Thanks!
-bw
2011 May 05
0
[LLVMdev] Loop transformations using LLVM
Malveeka,
You can use the LoopInfo analysis to find the induction variable.
http://llvm.org/docs/doxygen/html/classllvm_1_1Loop.html#a72bbf45d2e00971f56bf8cfe4e1df01c
Cheers,
Nadav
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Malveeka Tewari
Sent: Thursday, May 05, 2011 14:51
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] Loop transformations
2011 May 05
2
[LLVMdev] Loop transformations using LLVM
Hi
I am trying to write up a transformation for the following code where
instead of incrementing the loop variable by 1, I increment it by 2 ie.
for (i=0; i < THRES; *i++*) {
//do something
}
gets transformed to
for (i=0; i < THRES; *i+=2*) {
//do something
}
I am thinking of transforming the llvm bit-code in the following way.
Iterate over the function for the original code till I
2012 Jul 16
3
[LLVMdev] RFC: LLVM incubation, or requirements for committing new backends
...> +};
> +
> +template <class BlockT, class InstrT, class RegiT>
> +class LandInformation {
> +public:
> + BlockT *landBlk;
> + std::set<RegiT> breakInitRegs; //Registers that need to "reg = 0", before
> + //WHILELOOP(thisloop) init before entering
> + //thisloop.
> + std::set<RegiT> contInitRegs; //Registers that need to "reg = 0", after
> + //WHILELOOP(thisloop) init after entering
> + //thi...