Displaying 5 results from an estimated 5 matches for "getinstructionfromindex".
2017 Jun 27
4
Ok with mismatch between dead-markings in BUNDLE and bundled instructions?
...r the bundle,
but then the verifier pukes on it and says that there is a use of the
register after it's dead.
The dead-marking on the BUNDLE is introduced by
LiveIntervals::computeDeadValues which does
// This is a dead def. Make sure the instruction knows.
MachineInstr *MI = getInstructionFromIndex(Def);
assert(MI && "No instruction defining live value");
MI->addRegisterDead(LI.reg, TRI);
and the reload after the BUNDLE is introduced by
InlineSpiller::spillAroundUses which has determined that the register is
live:
// Rewrite instruction operands....
2016 Nov 27
5
Extending Register Rematerialization
...ntinue;
//If not constant then check its def
if(depth > 6)
return false;
LiveInterval &li = LIS.getInterval(MO.getReg());
SlotIndex UseIdx = LIS.getInstructionIndex(*DefMI);
VNInfo *UseVNInfo = li.getVNInfoAt(UseIdx);
MachineInstr *NewDefMI = LIS.getInstructionFromIndex(UseVNInfo->def);
if(!checkComplexRematerializable(UseVNInfo, NewDefMI, depth+1, aa))
return false;
}
}
Remattable.insert(VNI); //May have to add new data structure
return true;
}
In above function we are calling a new function
TII.isReMaterializablePossible(*DefMI, a...
2017 Jun 27
5
Ok with mismatch between dead-markings in BUNDLE and bundled instructions?
...pukes on it and says that there is a use of the register after it's dead.
>>
>> The dead-marking on the BUNDLE is introduced by LiveIntervals::computeDeadValues which does
>>
>> // This is a dead def. Make sure the instruction knows.
>> MachineInstr *MI = getInstructionFromIndex(Def);
>> assert(MI && "No instruction defining live value");
>> MI->addRegisterDead(LI.reg, TRI);
>
> I think the actual problem here is that MachineInstr::addRegisterDead only works on a single instruction and not on the whole bundle.
>
> - M...
2008 Jan 31
0
[LLVMdev] Some questions about live intervals
Hi Roman,
> I already started work on the implementation of this algorithm and have
> a few hopefully rather simple questions:
>
> 1) What is the easiest way to understand which MBB a given instruction
> index belongs to? All the required information is available in the
> MBB2IdxMap of the LiveIntervalAnalysis class. Would it be useful to add
> a small function
2008 Jan 31
7
[LLVMdev] Some questions about live intervals
Hi,
I'm trying to sketch an LLVM-based implementation of the Extended
Linear Scan algorithm, described in this Vivek Sarkar's paper:
http://www.cs.rice.edu/~vs3/PDF/cc2007.pdf
Sarkar reports that this version of Linear Scan produces better code
than graph-coloring regallocs and is also much faster (15x to 68x).
I already started work on the implementation of this algorithm and have
a few