search for: splitedg

Displaying 19 results from an estimated 19 matches for "splitedg".

Did you mean: splited
2009 Dec 03
0
[LLVMdev] Preserving ProfileInfo in several Passes
...d it make sense to mark the ProfileInfo passes as "CFGOnly?" If so, that would let them be automatically preserved by passes which don't modify the CFG (and that call AU.setPreservesCFG()). > + if (ProfileInfo* PI = getAnalysisIfAvailable<ProfileInfo>()) { > + PI->splitEdge(OrigPreHeader, NewHeader, NewPreHeader); > + } > + > // Preserve canonical loop form, which means Exit block should > // have only one predecessor. > SplitEdge(L->getLoopLatch(), Exit, this); Would it make sense to move the ProfileInfo updating code into SplitEdge? Tha...
2009 Dec 03
2
[LLVMdev] Preserving ProfileInfo in several Passes
Hi all, this (altough a big patch) is actually pretty straight forward: It (tries) to preserve ProfileInfo in all -std-compile-opts passes and all X86-Backend passes. There is still some passes that have corner cases where the ProfileInfo is not correct after the pass. Some passes are still missing... How shall I proceed with this? Andi -------------- next part -------------- A non-text
2010 Jul 20
2
[LLVMdev] How to insert a basic block in an edge
Hi All, Still I could not figure out how to use Pass* while calling SplitEdge() function. Can anyone provide me some example? Regards, Chayan On Sun, Jul 18, 2010 at 11:49 PM, Nick Lewycky <nicholas at mxc.ca> wrote: > Chayan Sarkar wrote: >> >> Hi, >> >> I have tried to use SplitEdge function, but failed. Actually the third >> param...
2010 Jul 21
0
[LLVMdev] How to insert a basic block in an edge
Hi, I could not figure out, how to declare a Pass*. Can anyone give me an example, how to use SplitEdge() function ? Please help me out. Regards, Chayan On Tue, Jul 20, 2010 at 10:12 AM, Chayan Sarkar <chayan.ju at gmail.com> wrote: > Hi All, > > Still I could not figure out how to use Pass* while calling > SplitEdge() function. Can anyone provide me some example? > > Rega...
2010 Jul 18
2
[LLVMdev] How to insert a basic block in an edge
Hi, I have tried to use SplitEdge function, but failed. Actually the third parameter is a variable of type Pass and it need to be non-null. But I could not figure out how to use it. Please help me out. Regards, Chayan On Sat, Jul 17, 2010 at 10:16 PM, Nick Lewycky <nicholas at mxc.ca> wrote: > Chayan Sarkar wrote: >&...
2009 Dec 07
1
[LLVMdev] Preserving ProfileInfo in several Passes
...Only?" > If so, that would let them be automatically preserved by passes > which don't modify the CFG (and that call AU.setPreservesCFG()). Yes, it would, how do I do this? :-) >> + if (ProfileInfo* PI = getAnalysisIfAvailable<ProfileInfo>()) { >> + PI->splitEdge(OrigPreHeader, NewHeader, NewPreHeader); >> + } >> + >> // Preserve canonical loop form, which means Exit block should >> // have only one predecessor. >> SplitEdge(L->getLoopLatch(), Exit, this); > > Would it make sense to move the Profil...
2010 Jul 18
0
[LLVMdev] How to insert a basic block in an edge
Chayan Sarkar wrote: > Hi, > > I have tried to use SplitEdge function, but failed. Actually the third > parameter is a variable of type Pass and it need to be non-null. But I > could not figure out how to use it. Please help me out. The only reason it needs a non-NULL Pass* is to call llvm::SplitBlock which uses P->getAnalysisIfAvailable uncondit...
2010 Jul 17
2
[LLVMdev] How to insert a basic block in an edge
Hi all, Suppose in a CFG bb1 has two succesor bb3 and bb4, and bb3 has two predecessor bb1 and bb2. Now how can I insert a basic block between bb1 and bb3 that at the edge bb1-->bb3 . In general how can I insert a basic block on an edge? Regards, Chayan
2010 Jul 17
0
[LLVMdev] How to insert a basic block in an edge
...arkar wrote: > Hi all, > > Suppose in a CFG bb1 has two succesor bb3 and bb4, and bb3 has two > predecessor bb1 and bb2. Now how can I insert a basic block between > bb1 and bb3 that at the edge bb1-->bb3 . > > In general how can I insert a basic block on an edge? Use llvm::SplitEdge in Transforms/Utils/BasicBlockUtils.h. The technique is to create a new bb with a single branch to bb3, then modify bb1's use of bb3 to point to 'new bb' instead, then fix up any phi nodes in bb3 by replacing uses of bb1 with 'new bb'. Nick
2013 Feb 10
0
[LLVMdev] Deleting LiveVariables
...irtual registers when splitting a critical edge. (That's how LiveVariables is updated now, and it's slow). I checked in LiveIntervals support to PHIElimination in r174831. I encountered all of the usual edge cases in 'make check', so hopefully it has no latent bugs. I'll add a splitEdge() method to LiveIntervalAnalysis (got a better name?) that does things the slow way first, and then we can speed it up. Cameron
2018 Feb 24
0
CallSiteSplitting and musttail calls
...* Iterating through the instruction/block list after erasing block/instruction * Trying to split block after removing one predecessor Regarding the latter, it appears that semantics of `DuplicateInstructionsInSplitBetween` change significantly in such case, and it starts to loop indefinitely. The `SplitEdge` function that it calls places all of the instructions into the split block, so that the original block becomes empty. Is it expected behavior, or am I doing something wrong? Thanks, Fedor. On Sat, Feb 24, 2018 at 2:16 AM, Fedor Indutny <fedor at indutny.com> wrote: > Hello! > >...
2018 Feb 24
2
CallSiteSplitting and musttail calls
Hello! I've discovered that `CallSiteSplitting` optimization doesn't support musttail calls. The easiest fix as it stands is disabling it for such call sites: https://reviews.llvm.org/D43729 . However, I'm not happy with such contribution. My more sophisticated attempt has failed due to my poor understanding of llvm internals. Here is the attempted patch:
2013 Feb 09
2
[LLVMdev] Deleting LiveVariables
On Feb 8, 2013, at 4:37 PM, Cameron Zwarich <zwarich at apple.com> wrote: > On Feb 8, 2013, at 4:20 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > >> On Feb 8, 2013, at 4:03 PM, Cameron Zwarich <zwarich at apple.com> wrote: >> >>> How much of the work is done here? I'd be happy to do the phi elimination part, since I basically did that
2010 Nov 14
0
[LLVMdev] How to create a new Basic block
I am using this function : SplitEdge(FromBlock, ToBlock, pass); But .ll file is not getting updated. Please help. -- regards, soumya prasad ukil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101115/ee2aeae1/attachment.html>
2010 Nov 14
0
[LLVMdev] How to create a new Basic block
Please help me out. I am trying to create an empty basic block between two basic blocks. I am using splitedge function. But I am getting the o/p. The .ll file is not showing any output. -- regards, soumya prasad ukil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101115/f548612d/attachment.html>
2010 Nov 15
0
[LLVMdev] How to create a new Basic block
> Please help me out. I am trying to create an empty basic block between two > basic blocks. I am using splitedge function. But I am getting the o/p. The > .ll file is not showing any output. > > -- > regards, > soumya prasad ukil Hi, AFAIK you'd use the createBasicBlock method of the llvm::BasicBlock class. If you want to emit it during the code gen phase the EmitBlock method of the Code...
2018 Feb 27
2
CallSiteSplitting and musttail calls
...ction/block list after erasing > block/instruction > * Trying to split block after removing one predecessor > > Regarding the latter, it appears that semantics of ` > DuplicateInstructionsInSplitBetween` change significantly in such case, > and it starts to loop indefinitely. The `SplitEdge` function that it calls > places all of the instructions into the split block, so that the original > block becomes empty. > > Is it expected behavior, or am I doing something wrong? > > Thanks, > Fedor. > > On Sat, Feb 24, 2018 at 2:16 AM, Fedor Indutny <fedor at ind...
2015 Jun 07
43
[Bug 90887] New: PhiMovesPass in register allocator broken
https://bugs.freedesktop.org/show_bug.cgi?id=90887 Bug ID: 90887 Summary: PhiMovesPass in register allocator broken Product: Mesa Version: git Hardware: All OS: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/nouveau Assignee: nouveau at
2017 Jun 21
6
RFC: Cleaning up the Itanium demangler
...quot;}, {"_ZL20EnableFastISelOption", "EnableFastISelOption"}, {"_ZL17EnableSplitGEPGVN", "EnableSplitGEPGVN"}, {"_ZL9EnableLDV", "EnableLDV"}, {"_ZL12DisableReMat", "DisableReMat"}, {"_ZL10SplitEdges", "SplitEdges"}, {"_ZL15defaultRegAlloc", "defaultRegAlloc"}, {"_ZL8RegAlloc", "RegAlloc"}, {"_ZL10Aggressive", "Aggressive"}, {"_ZL15DisablePeephole", "DisablePeephole"}, {&quo...