search for: hoistregion

Displaying 6 results from an estimated 6 matches for "hoistregion".

2014 Dec 22
2
[LLVMdev] Modularizing LICM
...pSimplify passes, both define functions used by other passes (e.g LoopUnroll and LICM). On Fri, Dec 19, 2014 at 10:58 PM, Philip Reames <listmail at philipreames.com> wrote: > I've come across similar use cases recently. In particular, there are some > cases where I'd like run HoistRegion on a particular basic block after loop > unswitching. > > I would be open to reviewing patches if you wanted to send them. I may get > around to doing so myself eventually, but it's fairly low on my priority > list. > > Philip > > > On 12/15/2014 04:16 AM, Nema, A...
2014 Dec 15
2
[LLVMdev] Modularizing LICM
...itly. The only way is to schedule LICM pass after my pass. For some reason my pass need more control and preferring to call LICM 'PromoteAliasSet' instead running full LICM as next pass. Can LICM be more modular by exposing wrapper functions for its core functionalities (i.e. SinkRegion, HoistRegion, PromoteAliasSet) ? These wrappers will check pre-requisite(i.e. AliasAnalysis, LoopInfo availability ) and call appropriate functions. Regards, Ashutosh -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/201412...
2017 Mar 31
4
Dereferenceable load semantics & LICM
...the future? The fix doesn't seem hard to Not to my knowledge. > write and I can do it, but I am not sure if it won't be too expensive. Maybe we can do it (relatively) cheaply:  - 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()...
2017 Apr 03
4
Dereferenceable load semantics & LICM
...>> > write and I can do it, but I am not sure if it won't be too expensive. >> >> Maybe we can do it (relatively) cheaply: >> >> - 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->HeaderMay...
2010 Jan 11
0
[LLVMdev] LICM ilist question.
...Block::iterator? /opt/llvms/src/llvm_26/ include/llvm/ADT/ilist.h:213: llvm::ilist_iterator<NodeTy>& llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy = llvm::Instruction]: Assertion `NodePtr && "--'d off the beginning of an ilist!"' failed. *LICM::HOistRegion(DomTreeNode *N)* { assert(N != 0 && "Null dominator tree node?"); BasicBlock *BB = N->getBlock(); ... * for (BasicBlock::iterator II = BB->end(); II != BB->begin(); ) *{ Instruction &I = *--II; if (isLoopInvariantInst(I...
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 >