search for: virtfold

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...