search for: oldidx

Displaying 15 results from an estimated 15 matches for "oldidx".

2012 Aug 30
2
[LLVMdev] MC Register mapping question (MCRegUnitIterator )
...y that haven't been computed yet. if (TargetRegisterInfo::isPhysicalRegister(Reg)) { for (MCRegUnitIterator Units(Reg, &TRI); Units.isValid(); ++Units) if (LiveInterval *LI = LIS.getCachedRegUnit(*Units)) collectRanges(MO, LI, Entering, Internal, Exiting, OldIdx); } else { // Collect ranges for individual virtual registers. collectRanges(MO, &LIS.getInterval(Reg), Entering, Internal, Exiting, OldIdx); } As an experiment, you could replace getCachedRegUnit with getRegUnit (the uncached version) to make...
2012 Aug 31
0
[LLVMdev] Assert in LiveInterval update
Lang, I think I am getting closer to understanding this. The findLastUseBefore() should probably look something like this: // Return the last use of reg between NewIdx and OldIdx. SlotIndex findLastUseBefore(unsigned Reg, SlotIndex OldIdx) { SlotIndex LastUse = NewIdx; if (TargetRegisterInfo::isPhysicalRegister(Reg)) { for (MCRegUnitRootIterator Roots(Reg, &TRI); Roots.isValid(); ++Roots) { unsigned Root = *Roots; for (MachineReg...
2012 Aug 31
2
[LLVMdev] Assert in LiveInterval update
Hi Lang, Just one more quick question. in LiveIntervalAnalysis.cpp In SlotIndex findLastUseBefore(unsigned Reg, SlotIndex OldIdx) Did you really mean to use for (MachineRegisterInfo::use_nodbg_iterator UI = MRI.use_nodbg_begin(Reg), UE = MRI.use_nodbg_end(); UI != UE; UI.skipInstruction()) {} Aren't we currently dealing with units, not registers ? SlotIndex LastUse = f...
2012 Aug 17
0
[LLVMdev] Assert in LiveInterval update
...#3 in llvm::LiveInterval::addRangeFrom (this=0x46e99a0, LR=..., From=0x46ee4b0) at lib/CodeGen/LiveInterval.cpp:266 #4 in llvm::LiveInterval::addRange (this=0x46e99a0, LR=...) at include/llvm/CodeGen/LiveInterval.h:384 #5 in llvm::LiveIntervals::HMEditor::moveInternalFrom (this=0x7fffffff8010, OldIdx=..., P=...) at lib/CodeGen/LiveIntervalAnalysis.cpp:1220 #6 in llvm::LiveIntervals::HMEditor::moveAllInternalFrom (this=0x7fffffff8010, OldIdx=..., Internal=...) at lib/CodeGen/LiveIntervalAnalysis.cpp:1226 #7 in llvm::LiveIntervals::HMEditor::moveAllRangesFrom (this=0x7fffffff8010, MI=0x462ab...
2012 Aug 30
0
[LLVMdev] MC Register mapping question (MCRegUnitIterator )
...;t been computed yet. > if (TargetRegisterInfo::isPhysicalRegister(Reg)) { > for (MCRegUnitIterator Units(Reg, &TRI); Units.isValid(); ++Units) > if (LiveInterval *LI = LIS.getCachedRegUnit(*Units)) > collectRanges(MO, LI, Entering, Internal, Exiting, OldIdx); > } else { > // Collect ranges for individual virtual registers. > collectRanges(MO, &LIS.getInterval(Reg), > Entering, Internal, Exiting, OldIdx); > } > > As an experiment, you could replace getCachedRegUnit with getRegUnit &...
2012 Sep 03
2
[LLVMdev] Assert in LiveInterval update
...Sergei Larin <slarin at codeaurora.org> wrote: > Lang, **** > > ** ** > > I think I am getting closer to understanding this. The > findLastUseBefore() should probably look something like this:**** > > ** ** > > // Return the last use of reg between NewIdx and OldIdx.**** > > SlotIndex findLastUseBefore(unsigned Reg, SlotIndex OldIdx) {**** > > SlotIndex LastUse = NewIdx;**** > > ** ** > > if (TargetRegisterInfo::isPhysicalRegister(Reg)) {**** > > for (MCRegUnitRootIterator Roots(Reg, &TRI); Roots.isValid(); &gt...
2012 Aug 15
3
[LLVMdev] MI bundle liveness attributes
On Aug 13, 2012, at 8:34 AM, Sergei Larin <slarin at codeaurora.org> wrote: > Andy, > > Yes, this is what Arnold has suggested also, and from this point it looks > like it should work, but it will require parsing the bundle every time we > care to know whether this is a real use or a conditional def. This might > become awkward... but I guess I should provide a better
2012 Aug 28
2
[LLVMdev] Assert in LiveInterval update
...al::addRangeFrom (this=0x46e99a0, LR=..., > From=0x46ee4b0) at lib/CodeGen/LiveInterval.cpp:266 > #4 in llvm::LiveInterval::addRange (this=0x46e99a0, LR=...) at > include/llvm/CodeGen/LiveInterval.h:384 > #5 in llvm::LiveIntervals::HMEditor::moveInternalFrom > (this=0x7fffffff8010, OldIdx=..., P=...) at > lib/CodeGen/LiveIntervalAnalysis.cpp:1220 > #6 in llvm::LiveIntervals::HMEditor::moveAllInternalFrom > (this=0x7fffffff8010, OldIdx=..., Internal=...) at > lib/CodeGen/LiveIntervalAnalysis.cpp:1226 > #7 in llvm::LiveIntervals::HMEditor::moveAllRangesFrom > (th...
2012 Aug 30
0
[LLVMdev] MC Register mapping question (MCRegUnitIterator )
Arnold, It is not my code per say - this is what is done in LiveIntervalAnalysis.cpp collectRanges(), it wants to iterate over "units" of D1 (whatever they are assumed to be), but right there it associates them with actual physical register live ranges (see the tread below), and it does it wrongly. I was trying to pinpoint exactly to where the issue is, but there are too many
2012 Aug 30
2
[LLVMdev] MC Register mapping question (MCRegUnitIterator )
Hi Sergei, Register units != sub registers. Register units are an abstraction to describe overlapping of registers effectively. You probably wanted to use MCSubRegIterator. On Thu, Aug 30, 2012 at 2:30 PM, Sergei Larin <slarin at codeaurora.org> wrote: > Hello Jakob and everyone, > > I am observing an issue with MCRegUnitIterator in my back end, and trying > to reverse
2012 Aug 30
0
[LLVMdev] Assert in LiveInterval update
Hi Sergei, Andy, Sorry - I got distracted with some other work. I'm looking into this and PR13719 now. I'll let you know what I find out. Sergei - thanks very much for the investigation. That should help me pin this down. Cheers, Lang. On Tue, Aug 28, 2012 at 2:33 PM, Sergei Larin <slarin at codeaurora.org> wrote: > Andy, Lang, > > Thanks for the suggestion. >
2012 Aug 28
5
[LLVMdev] Assert in LiveInterval update
Andy, Lang, Thanks for the suggestion. I have spent more time with it today, and I do see some strange things in liveness update. I am not at the actual cause yet, but here is what I got so far: I have the following live ranges when I start scheduling a region: R2 = [0B,48r:0)[352r,416r:5)... R3 = [0B,48r:0)[368r,416r:5)... R4 = [0B,32r:0)[384r,416r:4)... R5 = [0B,32r:0)[400r,416r:4)...
2011 Jan 20
1
[PATCH] change acquire/release_console_sem() to console_lock/unlock()
...andler(unsigned long dev_addr) @@ -836,7 +836,7 @@ static int set_con2fb_map(int unit, int newidx, int user) found = search_fb_in_map(newidx); - acquire_console_sem(); + console_lock(); con2fb_map[unit] = newidx; if (!err && !found) err = con2fb_acquire_newinfo(vc, info, unit, oldidx); @@ -863,7 +863,7 @@ static int set_con2fb_map(int unit, int newidx, int user) if (!search_fb_in_map(info_idx)) info_idx = newidx; - release_console_sem(); + console_unlock(); return err; } @@ -3321,7 +3321,7 @@ static ssize_t store_rotate(struct device *device, if (fbcon_has_exited...
2011 Jan 20
1
[PATCH] change acquire/release_console_sem() to console_lock/unlock()
...andler(unsigned long dev_addr) @@ -836,7 +836,7 @@ static int set_con2fb_map(int unit, int newidx, int user) found = search_fb_in_map(newidx); - acquire_console_sem(); + console_lock(); con2fb_map[unit] = newidx; if (!err && !found) err = con2fb_acquire_newinfo(vc, info, unit, oldidx); @@ -863,7 +863,7 @@ static int set_con2fb_map(int unit, int newidx, int user) if (!search_fb_in_map(info_idx)) info_idx = newidx; - release_console_sem(); + console_unlock(); return err; } @@ -3321,7 +3321,7 @@ static ssize_t store_rotate(struct device *device, if (fbcon_has_exited...
2011 Jan 20
1
[PATCH] change acquire/release_console_sem() to console_lock/unlock()
...andler(unsigned long dev_addr) @@ -836,7 +836,7 @@ static int set_con2fb_map(int unit, int newidx, int user) found = search_fb_in_map(newidx); - acquire_console_sem(); + console_lock(); con2fb_map[unit] = newidx; if (!err && !found) err = con2fb_acquire_newinfo(vc, info, unit, oldidx); @@ -863,7 +863,7 @@ static int set_con2fb_map(int unit, int newidx, int user) if (!search_fb_in_map(info_idx)) info_idx = newidx; - release_console_sem(); + console_unlock(); return err; } @@ -3321,7 +3321,7 @@ static ssize_t store_rotate(struct device *device, if (fbcon_has_exited...