In X86InstrInfo.td for Call Instructions, it mentions that Uses for argument registers are added manually. Can someone point me to the location where they are added as the comment doesn't reference a where or how? Thanks, Micah -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100610/0694a351/attachment.html>
Ping. Anyone that works on the x86 backend have an answer for this one? Thanks, Micah From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Villmow, Micah Sent: Thursday, June 10, 2010 1:40 PM To: LLVM Developers Mailing List Subject: [LLVMdev] Question on X86 backend In X86InstrInfo.td for Call Instructions, it mentions that Uses for argument registers are added manually. Can someone point me to the location where they are added as the comment doesn't reference a where or how? Thanks, Micah -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100614/c23ff766/attachment.html>
Hi Micah,> In X86InstrInfo.td for Call Instructions, it mentions that Uses for > argument registers are added manually. Can someone point me to the > location where they are added as the comment doesn't reference a > where or how?the register uses are added by the function X86TargetLowering::LowerCall() during the DAG Lowering phase. This is the relevant code segment: // Add argument registers to the end of the list so that they are known live // into the call. for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) Ops.push_back(DAG.getRegister(RegsToPass[i].first, RegsToPass[i].second.getValueType())); Regards, Christoph