search for: mcsuperregiterator

Displaying 8 results from an estimated 8 matches for "mcsuperregiterator".

2012 Sep 10
0
[LLVMdev] Assert in LiveInterval update
...ave a one-to-one mapping with machine operands, regunit intervals have a many-to-many mapping with the operands. A single physreg operand can affect multiple regunit intervals, and a regunit interval can be affected by different (overlapping) physregs. It is best to avoid the MCRegUnitRootIterator+MCSuperRegIterator combination because the set of super-registers can be quite large on ARM. /jakob
2012 Sep 12
1
[LLVMdev] Assert in LiveInterval update
...685. I'm still looking into a couple of errors, but I suspect that these are due to my build configuration, rather than the patch. Sergei - could you let me know if this fixes your issue? Thanks again for all of your work tracking this down. > It is best to avoid the MCRegUnitRootIterator+MCSuperRegIterator > combination because the set of super-registers can be quite large on ARM. > Done. I've used TRI.hasRegUnit as suggested. Thanks for the advice! Cheers, Lang. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/at...
2016 Jul 19
2
Check sub register relations in RA
Hi there, In my register allocator, I was trying to get the parent of a register in ARM. That is: D0 <-> S0, S1. Given S0, how am I able to get D0? Thanks, Xiaochu -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160719/3cc73e78/attachment.html>
2012 Sep 10
3
[LLVMdev] Assert in LiveInterval update
Hi Jakob, I've got a good test case that I'm working on at the moment. I noticed something odd though: Is '0' a valid register unit? I'm seeing a LiveInterval with li->reg == 0 show up, which previously wasn't valid. We have a few checks around the place to disregard the '0' physreg - could these trigger on interaction with a '0' interval? That could
2012 Jun 01
0
[LLVMdev] Heads up: MCRegisterInfo register list functions going away
I am going to remove these functions from MCRegisterInfo: getSubRegisters() getSuperRegisters() getOverlaps() getAliasSet() They have been replaced with iterator classes, also defined in MCRegisterInfo.h: MCSubRegIterator MCSuperRegIterator MCRegAliasIterator The tree has lots of examples of how to use all three. /jakob
2012 Aug 31
0
[LLVMdev] Assert in LiveInterval update
...UI != UE; UI.skipInstruction()) { const MachineInstr* MI = &*UI; SlotIndex InstSlot = LIS.getSlotIndexes()->getInstructionIndex(MI); if (InstSlot > LastUse && InstSlot < OldIdx) LastUse = InstSlot; } //for (MCSuperRegIterator Supers(Root, &TRI); Supers.isValid(); ++Supers) // I do not think we should be doing this here. } } else { for (MachineRegisterInfo::use_nodbg_iterator UI = MRI.use_nodbg_begin(Reg), UE = MRI.use_nodbg_end(); UI != UE; UI.ski...
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,
2012 Sep 03
2
[LLVMdev] Assert in LiveInterval update
...tr* MI = &*UI;**** > > SlotIndex InstSlot = > LIS.getSlotIndexes()->getInstructionIndex(MI);**** > > if (InstSlot > LastUse && InstSlot < OldIdx) **** > > LastUse = InstSlot;**** > > }**** > > //for (MCSuperRegIterator Supers(Root, &TRI); Supers.isValid(); > ++Supers) **** > > // I do not think we should be doing this hereā€¦**** > > }**** > > } else {**** > > for (MachineRegisterInfo::use_nodbg_iterator**** > > UI = MRI.use_nodbg_begin(Reg)...