search for: modifiesregister

Displaying 6 results from an estimated 6 matches for "modifiesregister".

2009 Mar 12
4
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...MBB->end (); ++I) { + for (unsigned i = 0, e = CSI.size(); i != e; ++i) { + unsigned Reg = CSI[i].getReg(); + // If instruction I reads or modifies Reg, add it to UsedCSRegs, + // CSRUsed map for the current block. + if (I->readsRegister(Reg, TRI) || I->modifiesRegister(Reg, TRI)) { readsRegister and modifiesRegister both scan the operands. It's probably better to manually walk through the operands. 9. + // If all uses of CSRegs are in the entry block, there is nothing + // to shrink wrap: spills go in entry block, restores go in exiting + // blocks,...
2009 Mar 05
0
[LLVMdev] Shrink Wrapping - RFC and initial implementation
Here is an updated patch for shrink wrapping with: - spills/restores done with stack slot stores/loads - stack adjustment removed - refactoring (but still in need of more) - spill/restore insertion code unified with spill/restore placement code Documentation available here<http://wiki.github.com/jdmdj/llvm-work/shrink-wrapping-work> illustrates shrink wrapping with loops and discusses a
2009 Mar 03
2
[LLVMdev] Shrink Wrapping - RFC and initial implementation
On Mon, Mar 2, 2009 at 10:35 AM, Evan Cheng <echeng at apple.com> wrote: > > On Mar 1, 2009, at 2:57 PM, John Mosby wrote: > > Obviously, all of this applies only when spills are done with push/pop, > which is the case on x86. I used this issue to start looking at generalizing > how spills and restores are handled, before looking too closely at other > targets, and
2009 Mar 13
0
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...SI.size(); i != e; ++i) { > > > + unsigned Reg = CSI[i].getReg(); > > > + // If instruction I reads or modifies Reg, add it to UsedCSRegs, > > > + // CSRUsed map for the current block. > > > + if (I->readsRegister(Reg, TRI) || I->modifiesRegister(Reg, TRI)) { > > readsRegister and modifiesRegister both scan the operands. It's probably > better to manually walk through the operands. > Ok, that helps. I read the code but could not decide which way to do it at first. > 9. > + // If all uses of CSRegs are in the entry...
2009 Mar 18
1
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...> +        unsigned Reg = CSI[i].getReg(); >> >> >> +        // If instruction I reads or modifies Reg, add it to UsedCSRegs, >> >> >> +        // CSRUsed map for the current block. >> >> >> +        if (I->readsRegister(Reg, TRI) || I->modifiesRegister(Reg, TRI)) >> { >> readsRegister and modifiesRegister both scan the operands. It's probably >> better to manually walk through the operands. > > Ok, that helps. I read the code but could not decide which way to do it at > first. > >> >> 9. >> +  /...
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
...>> +static bool DoesModifyCalleeSavedReg(MachineInstr *MI, >> + const TargetRegisterInfo *TRI) { >> + for (const uint16_t *CSR = TRI->getCalleeSavedRegs(); *CSR; ++CSR) { >> + unsigned CalleeSavedReg = *CSR; >> + if (MI->modifiesRegister(CalleeSavedReg, TRI)) >> + return true; >> + } >> + return false; >> +} >> + >> +// Return the new value instruction for a given store. >> +static int GetDotNewOp(const int opc) { >> + switch (opc) { >> + default: llvm_unreachable(&quot...