search for: ifconvert

Displaying 20 results from an estimated 22 matches for "ifconvert".

Did you mean: iconvert
2013 Sep 30
0
[LLVMdev] Out of tree targets: Possibly additional API to implement for out of tree targets using the IfConverter
Hi all, If you have an out of tree target and use the IfConverter be aware of a new API call "getPredictationCost“ that you might want to implement: After commit r191671: IfConverter: Use TargetSchedule for instruction latencies For targets that have instruction itineraries this means no change. Targets that move over to the new schedule...
2011 Aug 23
1
[LLVMdev] git Status
...if llvm-upstream is the upstream for the current branch, and "git pull llvm-upstream" will ask for a branch name if it isn't. > git cherry-pick 44ef3 > git cherry-pick afe3d > > The dag looks like this: > > ...-A---E-F{master}[HEAD] > \ / / > B-C-D{ifconvert} Err, no. cherry-pick won't record B and C as parents. A common convention would be to call E and F as B' and C' to reflect the fact that they are different, but similar to B and C. Also, if you are to draw DAGs in your explanations (which is good), you should mention gitk and/or git...
2017 Jan 10
2
[PATCHish] IfConversion; lost edges for some diamonds
...isabled on the llvm bugzilla. > > We sometime lose edges during IfConversion of diamonds and it’s not > obvious how to reproduce on an upstream target. The documentation for > HasFallThrough says *may* fallthrough which I interpret as “this will be > true whenever we aren’t sure” but IfConverter::AnalyzeBranches() contains > the code: > > BBI.HasFallThrough = BBI.IsBrAnalyzable && BBI.FalseBB == nullptr; > BBI.HasFallThrough really means "Has Analyzable fallthrough." So this line is correct. > > So HasFallThrough is false whenever IsBrAnalyzable is...
2020 Mar 24
3
Questions on ifconversion and predication
Assume an architecture that has multiple condition code registers, e.g., powerpc. Now assume that there are predicate instructions like thumb2, but can specify which condition code register they refer to. Now also assume that these predicate instructions themselves are predicatible, if executed they change the current predication state. Can LLVM handle multiple levels of predication? When is
2012 Nov 27
2
[LLVMdev] strange dbgs() behavior: unable to print floats in machine backend
...vm/Support/raw_ostream.h" > > I'm working on release 3.1 though. > > hth, Daniel > > On 11/26/2012 03:00 PM, Bjorn De Sutter wrote: >> Hi, >> >> I am trying to debug my backend, and observe very strange behavior with dbgs(): >> >> In the IfConverter, I have added two debugging lines that print floating-point numbers for the sake of demonstration that such printing works fine. >> >> bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, >> unsigned Cycle, unsigned Extra, >>...
2011 Aug 22
0
[LLVMdev] git Status
FlyLanguage <flylanguage at gmail.com> writes: > 2) Nobody writing up how git should be used with the current llvm > workflow (which is not going to adapt to an SCM, but the other way > around, which is understandable.) Here is a first cut at that. Other git users, please chime in with suggestions, edits, etc. Non-git users, please ask for clarification where needed. This is
2012 Nov 27
0
[LLVMdev] strange dbgs() behavior: unable to print floats in machine backend
...9;m working on release 3.1 though. > > > > hth, Daniel > > > > On 11/26/2012 03:00 PM, Bjorn De Sutter wrote: > >> Hi, > >> > >> I am trying to debug my backend, and observe very strange behavior with > dbgs(): > >> > >> In the IfConverter, I have added two debugging lines that print > floating-point numbers for the sake of demonstration that such printing > works fine. > >> > >> bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, > >> unsigned Cycle, unsigned Extra, >...
2014 Mar 28
2
[LLVMdev] How to extract the starting address of each basic block with llvm?
...ual corresponding basic block starting addresses. Could I use llvm to do this? From what I understand this issued is unrelevant with IR. Maybe I could get something from the machine code (MC). Perhaps I have to write a pass for llvm backend. Maybe I could get this information from BranchFolder and IfConverter machine function passes: http://llvm.org/docs/WritingAnLLVMBackend.html#branch-folding-and-if-conversion but I am not sure. I am new to llvm so I need some help, Thank you, -- Thanasis Petsas Distributed Computing Systems (DCS) Institute of Computer Science (ICS/FORTH) Heraklion, Crete Greece...
2012 Nov 26
0
[LLVMdev] strange dbgs() behavior: unable to print floats in machine backend
Hi, I am trying to debug my backend, and observe very strange behavior with dbgs(): In the IfConverter, I have added two debugging lines that print floating-point numbers for the sake of demonstration that such printing works fine. bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, unsigned Cycle, unsigned Extra, const BranchProbability &am...
2013 Feb 06
0
[LLVMdev] Incorrect Simple pattern matching in lib/CodeGen/IfConversion.cpp
Hello! The if-converter tries to match 'Simple' patterns looking like this: // Simple (split, no rejoin): // EBB // | \_ // | | // | TBB---> exit // | // FBB The IfConverter::ValidSimple method (lib/CodeGen/IfConversion.cpp:461) checks if TBB matches this pattern. It basically does this by simply checking if AnalyseBranch fails on that block (IfConversion.cpp:640). This fails if TBB contains something that AnalyseBranch is not able to understand but is still a br...
2011 Aug 23
2
[LLVMdev] git Status
...s a lot. This already reads very nice. Two smaller comments: > Sending Patches for Review > -------------------------- > > git includes a whole set of tools for managing the patch review > process. We kick things off with git format-patch: > > git format-patch -o $HOME/patches/ifconvert --thread --src-prefix=old/ \ > --dst-prefix=new/ --cover-letter HEAD~1..HEAD I personally dislike typing all the time such a long command line. Maybe you can also point out, how to configure this in .git/config. > This places three text files in $HOME/patches/ifconvert, o...
2012 Nov 27
1
[LLVMdev] strange dbgs() behavior: unable to print floats in machine backend
...I'm working on release 3.1 though. > > > > hth, Daniel > > > > On 11/26/2012 03:00 PM, Bjorn De Sutter wrote: > >> Hi, > >> > >> I am trying to debug my backend, and observe very strange behavior with dbgs(): > >> > >> In the IfConverter, I have added two debugging lines that print floating-point numbers for the sake of demonstration that such printing works fine. > >> > >> bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, > >> unsigned Cycle, unsigned Extra, > >>...
2011 Aug 19
11
[LLVMdev] git Status
> On Aug 18, 2011, at 10:57 AM, David Greene wrote: >> >> Did the project ever come to a decision about making a transition to >> git? I'm trying to do some longer-term planning and it would be helpful >> to know what the roadmap is. It's stuck on: 1) A misunderstanding that global revision numbers are necessary and that 'git describe' along with
2013 Apr 10
3
[LLVMdev] If Conversion and predicated returns
...quite right, and this pessimizes later transformations. Specifically, the issue is that BB#1 still lists BB#3 as a successor, but this is not true. Looking at IfConversion.cpp, I see this function: /// RemoveExtraEdges - Remove true / false edges if either / both are no longer /// successors. void IfConverter::RemoveExtraEdges(BBInfo &BBI) { MachineBasicBlock *TBB = NULL, *FBB = NULL; SmallVector<MachineOperand, 4> Cond; if (!TII->AnalyzeBranch(*BBI.BB, TBB, FBB, Cond)) BBI.BB->CorrectExtraCFGEdges(TBB, FBB, !Cond.empty()); } and I think that this function is supposed to cle...
2017 Oct 09
4
{ARM} IfConversion does not detect BX instruction as a branch
...> tst r3, #255 > strbeq r6, [r7] > ldreq r6, [r4, r6, lsl #2] > strne r6, [r7, #4] > ldr r6, [r4, r6, lsl #2] > bx r6 For the code to execute correctly, either the _ldr_ should be a _ldrne_ instruction or the _ldreq_ instruction should be removed. The error seems to come from the IfConvertion MachinePass. Here's is what it looks like before and after. > #BEFORE IfConversion MachinePass > > BB#7: > Live Ins: %LR %R0 %R1 %R2 %R4 %R5 %R6 %R7 %R8 %R9 %R10 %R12 > Predecessors according to CFG: BB#5 BB#6 > STRBi12 %R5, %R6<kill>, 0, pred:14, pred:%noreg; mem:...
2011 May 12
0
[LLVMdev] Machine Function Pass
On 5/12/11 11:46 AM, Arushi Aggarwal wrote: > I tried > llc -load /localhome/aggarwa4/llvm27/llvm-obj/projects/poolalloc/Debug/lib/libCodegen.so > --help > > But this does not show my pass. It says it is an unknown command line argument. I'm assuming you've looked at other MachineFunctionPass'es and have registered yours in the same way that they do. I don't think
2014 Jun 16
2
[LLVMdev] Machine level IfConversion for ARM
Hi All, How can I run the IfConversion pass in JIT to optimize my code for ARM as a Target Architecture? -- View this message in context: http://llvm.1065342.n5.nabble.com/Machine-level-IfConversion-for-ARM-tp69513.html Sent from the LLVM - Dev mailing list archive at Nabble.com.
2011 Aug 23
0
[LLVMdev] git Status
...obias at grosser.es> writes: >> Sending Patches for Review >> -------------------------- >> >> git includes a whole set of tools for managing the patch review >> process. We kick things off with git format-patch: >> >> git format-patch -o $HOME/patches/ifconvert --thread --src-prefix=old/ \ >> --dst-prefix=new/ --cover-letter HEAD~1..HEAD > > I personally dislike typing all the time such a long command > line. Maybe you can also point out, how to configure this in > .git/config. Good idea. >> [format] >>...
2011 May 12
2
[LLVMdev] Machine Function Pass
I tried llc -load /localhome/aggarwa4/llvm27/llvm-obj/projects/poolalloc/Debug/lib/libCodegen.so --help But this does not show my pass. It says it is an unknown command line argument. Arushi On Thu, May 12, 2011 at 11:21 AM, John Criswell <criswell at illinois.edu> wrote: > On 5/12/11 11:17 AM, Arushi Aggarwal wrote: >> >> What is the correct way to register/run a machine
2017 Oct 11
2
{ARM} IfConversion does not detect BX instruction as a branch
...gt; strbeq r6, [r7] > ldreq r6, [r4, r6, lsl #2] > strne r6, [r7, #4] > ldr r6, [r4, r6, lsl #2] > bx r6 > > For the code to execute correctly, either the *ldr* should be a *ldrne* > instruction or the *ldreq* instruction should be removed. The error seems > to come from the IfConvertion MachinePass. Here's is what it looks like > before and after. > > #BEFORE IfConversion MachinePass > > BB#7: > Live Ins: %LR %R0 %R1 %R2 %R4 %R5 %R6 %R7 %R8 %R9 %R10 %R12 > Predecessors according to CFG: BB#5 BB#6 > STRBi12 %R5, %R6<kill>, 0, pred:14, p...