search for: curloop

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