Displaying 4 results from an estimated 4 matches for "virtfold".
Did you mean:
virtfolded
2006 Aug 14
2
[LLVMdev] Folding instructions
...ror does not happen. But
I realized something important: I am not mapping virtuals to physicals
strait on VirtRegMap during the scan. I use my own data structures to
record the register assignment, and write on VirtRegMap after I am done,
on a single step. When I remove the command this->vrm->virtFolded(v_reg,
mi, u, fmi) from my code, the error does not happen. So, I think I am not
using VirtRegMap properly. It seems to me that I don't have to call this
method during the scan, because instruction operands still contain
virtuals, not physical registers, as it would be expected. Is this right...
2006 Aug 14
0
[LLVMdev] Folding instructions
...hine =
> this->machine_function->getTarget();
> const MRegisterInfo *ri = target_machine.getRegisterInfo();
> MachineInstr * fmi = ri->foldMemoryOperand(mi, u, slot);
> if(fmi) {
> numFolded++;
> MachineBasicBlock * mbb = mi->getParent();
> this->vrm->virtFolded(v_reg, mi, u, fmi);
> //std::cerr << "Folding " << NeatPrint::mi2string(*mi,
> *this->machine_function) << "\n";
> // TODO: see if it is not necessary to iterate
> // again on the instruction.
> return mbb->insert(mbb->eras...
2006 Aug 14
0
[LLVMdev] Folding instructions
On Mon, 14 Aug 2006, Fernando Magno Quintao Pereira wrote:
> I reload spilled code. If I am doing something evidently wrong, I would
> appreciate if someone tells me. With the comment on vrm->virtFolded, I am
> passing all the tests that I have.
I haven't had a chance to look at the code you have below, but I would
guess that you are leaving a dangling pointer in some map somewhere.
"foldMemoryOperand", if successful, leaves the original instruction in the
program. When you...
2006 Aug 14
2
[LLVMdev] Folding instructions
...onst TargetMachine & target_machine =
this->machine_function->getTarget();
const MRegisterInfo *ri = target_machine.getRegisterInfo();
MachineInstr * fmi = ri->foldMemoryOperand(mi, u, slot);
if(fmi) {
numFolded++;
MachineBasicBlock * mbb = mi->getParent();
this->vrm->virtFolded(v_reg, mi, u, fmi);
//std::cerr << "Folding " << NeatPrint::mi2string(*mi,
*this->machine_function) << "\n";
// TODO: see if it is not necessary to iterate
// again on the instruction.
return mbb->insert(mbb->erase(mi), fmi);
}
With this...