Displaying 12 results from an estimated 12 matches for "instrslots".
2007 Jun 22
4
[LLVMdev] df_ext_iterator in LiveIntervalAnalysis
...mi != miEnd;
++mi) {
bool inserted = mi2iMap_.insert(std::make_pair(mi,
miIndex)).second;
assert(inserted && "multiple MachineInstr -> index mappings");
i2miMap_.push_back(mi);
miIndex += InstrSlots::NUM;
}
}
this->maxInstrIndex_ = miIndex;
//===---------------------------------------
// --> old code
//===---------------------------------------
unsigned miIndex = 0;
for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = mf_->end();
mbb != mbbEnd; ++m...
2007 Jun 22
0
[LLVMdev] df_ext_iterator in LiveIntervalAnalysis
...mi != miEnd;
> ++mi) {
> bool inserted = mi2iMap_.insert(std::make_pair(mi,
> miIndex)).second;
> assert(inserted && "multiple MachineInstr -> index mappings");
> i2miMap_.push_back(mi);
> miIndex += InstrSlots::NUM;
> }
> }
> this->maxInstrIndex_ = miIndex;
> //===---------------------------------------
> // --> old code
> //===---------------------------------------
> unsigned miIndex = 0;
> for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = mf_-&g...
2007 Jun 22
0
[LLVMdev] df_ext_iterator in LiveIntervalAnalysis
...mi !=
> miEnd;
> ++mi) {
> bool inserted = mi2iMap_.insert(std::make_pair(mi,
> miIndex)).second;
> assert(inserted && "multiple MachineInstr -> index
> mappings");
> i2miMap_.push_back(mi);
> miIndex += InstrSlots::NUM;
> }
> }
> this->maxInstrIndex_ = miIndex;
> //===---------------------------------------
> // --> old code
> //===---------------------------------------
> unsigned miIndex = 0;
> for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = m...
2008 Apr 16
3
[LLVMdev] Possible bug in LiveIntervalAnalysis?
...chineBasicBlock::iterator I = MBB->begin(), E = MBB->end();
I != E; ++I) {
bool inserted = mi2iMap_.insert(std::make_pair(I,
MIIndex)).second;
assert(inserted && "multiple MachineInstr -> index mappings");
i2miMap_.push_back(I);
MIIndex += InstrSlots::NUM;
}
// Set the MBB2IdxMap entry for this MBB.
MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex -
1);
For empty MBBs, the last line would create a pair, where the end
element is smaller than the start element, which is a bit
counter-intuitive. This may lead to so...
2009 Jan 27
1
[LLVMdev] Get Maximum Instruction Index
...ometimes it would be good if I could get the maximum instruction
index from the set of live intervals. In my local version I have added
this method to LiveIntervals:
/// Return the maximum index among the instruction indices.
inline unsigned getMaxInstrIndex() const {
return i2miMap_.size() * InstrSlots::NUM;
}
Is there something like this already in LiveIntervals? Do you guys think
it could be added as a patch?
All the best,
Fernando
2007 Sep 25
2
[LLVMdev] Coalescing and VNInfo
LLVM is assuming this:
struct InstrSlots {
enum {
LOAD = 0,
USE = 1,
DEF = 2,
STORE = 3,
NUM = 4
};
So VNI->def is always modulo 2. For coalescing, it's checking if the
RHS is live at the "use" cycle. So it's checking VNI->def-1.
Evan
On Sep 25,...
2008 Apr 16
0
[LLVMdev] Possible bug in LiveIntervalAnalysis?
...BB->begin(), E = MBB->end();
> I != E; ++I) {
> bool inserted = mi2iMap_.insert(std::make_pair(I,
> MIIndex)).second;
> assert(inserted && "multiple MachineInstr -> index mappings");
> i2miMap_.push_back(I);
> MIIndex += InstrSlots::NUM;
> }
>
> // Set the MBB2IdxMap entry for this MBB.
> MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex -
> 1);
>
> For empty MBBs, the last line would create a pair, where the end
> element is smaller than the start element, which is a b...
2008 Apr 18
1
[LLVMdev] Possible bug in LiveIntervalAnalysis?
...= MBB->end();
>> I != E; ++I) {
>> bool inserted = mi2iMap_.insert(std::make_pair(I,
>> MIIndex)).second;
>> assert(inserted && "multiple MachineInstr -> index mappings");
>> i2miMap_.push_back(I);
>> MIIndex += InstrSlots::NUM;
>> }
>>
>> // Set the MBB2IdxMap entry for this MBB.
>> MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex -
>> 1);
>>
>> For empty MBBs, the last line would create a pair, where the end
>> element is smaller than the s...
2007 Jun 22
2
[LLVMdev] df_ext_iterator in LiveIntervalAnalysis
...mi != miEnd;
>> ++mi) {
>> bool inserted = mi2iMap_.insert(std::make_pair(mi,
>> miIndex)).second;
>> assert(inserted && "multiple MachineInstr -> index mappings");
>> i2miMap_.push_back(mi);
>> miIndex += InstrSlots::NUM;
>> }
>> }
>> this->maxInstrIndex_ = miIndex;
>> //===---------------------------------------
>> // --> old code
>> //===---------------------------------------
>> unsigned miIndex = 0;
>> for (MachineFunction::iterator mbb =...
2007 Sep 25
2
[LLVMdev] Coalescing and VNInfo
I've hit a bug in a refactored version of coalescing and I'm trying to
understand what is going on. In particular, I'm curious about this
line in SimpleRegisterCoalescing.cpp:
00710 LHSValsDefinedFromRHS[VNI] =
RHS.getLiveRangeContaining(VNI->def-1)->valno;
Why VNI->def-1? The bug I'm seeing is that RHS returns a NULL
LiveRange because it doesn't contain
2007 Sep 25
0
[LLVMdev] Coalescing and VNInfo
On Tuesday 25 September 2007 10:49, David Greene wrote:
> I've hit a bug in a refactored version of coalescing and I'm trying to
> understand what is going on. In particular, I'm curious about this
> line in SimpleRegisterCoalescing.cpp:
>
> 00710 LHSValsDefinedFromRHS[VNI] =
> RHS.getLiveRangeContaining(VNI->def-1)->valno;
>
> Why VNI->def-1?
2007 Sep 25
0
[LLVMdev] Coalescing and VNInfo
On Tuesday 25 September 2007 12:25, Evan Cheng wrote:
> LLVM is assuming this:
> struct InstrSlots {
> enum {
> LOAD = 0,
> USE = 1,
> DEF = 2,
> STORE = 3,
> NUM = 4
> };
>
> So VNI->def is always modulo 2. For coalescing, it's checking if the
> RHS is live at the "use" cycle. So it&...