Displaying 11 results from an estimated 11 matches for "curloop".
2017 Mar 31
4
Dereferenceable load semantics & LICM
...Remember the first throwing instruction in the header, instead of a
boolean, in LoopSafetyInfo
- In hoistRegion, remember if you've seen the first throwing
instruction yet
- Pass the above as a boolean parameter to isGuaranteedToExecute, and
instead of
if (Inst.getParent() == CurLoop->getHeader())
return !SafetyInfo->HeaderMayThrow;
do something like
if (Inst.getParent() == CurLoop->getHeader())
return IsBeforeThrowingInst;
-- Sanjoy
2014 Apr 22
2
[LLVMdev] SCEV and induction variable identification
...blem is
for each basic-block in a loop
for each instruction J in a basic block
if ( J is a PHINode) {
const SCEV *S = SE->getSCEV(J);
const SCEVAddRecExpr *SARE = dyn_cast<SCEVAddRecExpr>(S);
if (SARE) {
const Loop *CurLoop = SARE->getLoop();
if (CurLoop == L) {
/* => J is the induction variable*/
}
}
}
SCEVAddRecExpr is said to be able to handle any polynomial recurrence
on the trip count of the loop. However, for my sample p...
2010 Nov 17
1
[LLVMdev] L->isLoopInvariant giving wrong results?
my changed code.
namespace {
class MyLoopPass:public LoopPass {
bool changed;
public:
static char ID;
Loop* curLoop;
// AnalysisType* AA;
DominatorTree* DT;
LoopInfo* LI;
MyLoopPass() : LoopPass(ID){}
bool isLoopInvariantInst(Instruction &I) ;
bool runOnLoop(Loop * L, LPPassManager &lpm);
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequ...
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
2017 Apr 03
4
Dereferenceable load semantics & LICM
...gt;> boolean, in LoopSafetyInfo
>>
>> - In hoistRegion, remember if you've seen the first throwing
>> instruction yet
>>
>> - Pass the above as a boolean parameter to isGuaranteedToExecute, and
>> instead of
>> if (Inst.getParent() == CurLoop->getHeader())
>> return !SafetyInfo->HeaderMayThrow;
>> do something like
>> if (Inst.getParent() == CurLoop->getHeader())
>> return IsBeforeThrowingInst;
>>
>> -- Sanjoy
>>
> I was thinking about something very similar and...
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 Mar 09
1
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
...#39; failed.
****************************
runOnMachineFunction(MachineFunction &MF) {
LI = &getAnalysis<MachineLoopInfo>();
DT = &getAnalysis<MachineDominatorTree>();
for (MachineLoopInfo::iterator
I = LI->begin(), E = LI->end(); I != E; ++I) {
CurLoop = *I;
}
}
******************************
I copy find from MachineLICM.cpp, and change class name.
What is different ??
Thanks.
Ren Kun
--- 10年1月26日,周二, Benoit Boissinot <bboissin+llvm at gmail.com> 写道:
> 发件人: Benoit Boissinot <bboissin+llvm at gmail.com>
> 主题: Re: [LLVMde...
2017 Mar 31
2
Dereferenceable load semantics & LICM
On Fri, Mar 31, 2017 at 10:23 AM, Sanjoy Das <sanjoy at playingwithpointers.com
> wrote:
> Hi Piotr,
>
> On March 31, 2017 at 9:07:42 AM, Piotr Padlewski
> (piotr.padlewski at gmail.com) wrote:
> > Hi all,
> > I have a question about dereferenceable metadata on load instruction. I
> > have a patch (https://reviews.llvm.org/D31539) for LICM that hoists
>
2013 May 21
1
[LLVMdev] How to find the first block of each loop
Hello,
I want to insert a control-block before every outermost loop. My current
solution is: 1) find each outermost loop in some function; 2) find the loop
header with Loop->getHeader() APIs, and then insert the controller block
before the header block of current loop.
But I encounters problems when there multi subsequent loops in the
following example, where there is no code between loops:
2010 Mar 09
1
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
...mp;MF) {
> > LI
> =&getAnalysis<MachineLoopInfo>();
> > DT
> =&getAnalysis<MachineDominatorTree>();
> >
> > for
> (MachineLoopInfo::iterator
> > I =
> LI->begin(), E = LI->end(); I != E; ++I) {
> > CurLoop = *I;
> > }
> > }
> > ******************************
> > I copy find from MachineLICM.cpp, and change class
> name.
> > What is different ??
> >
> > Thanks.
> >
> > Ren Kun
> >
> >
> >
> >
> > --- 10年1月26日,周二,...
2015 May 14
4
[LLVMdev] getnode(BB) = 0; block already in dominator tree
Hi
I run into an issue as part of splitting a critical edge during LICM.
When a new basic block is created and needs to be added into the dominator
tree, the block is already in the dominator tree. I print the dominator
tree and I see it is added into the tree as child of node it is supposed to
dominate.
How do I debug to find out why/when its getting added into the tree. ?
Tips/suggestions on