Well, the first email is here. http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20081013/068667.html -----Original Message----- From: Duncan Sands [mailto:baldrick at free.fr] Sent: Thu 1/8/2009 8:41 PM To: Sanjiv Kumar Gupta - I00171 Cc: llvmdev at cs.uiuc.edu Subject: Re: PIC16 backend for llvm 2.5 Hi Sanjiv,> We are targetting a reasonably functional PIC16 backend for llvm 2.5. > The only problem in our way is a local patch in ExpandIntegerOperand, which couldn't make its way to trunk so far. The discussion is contained in the following link: > > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20081103/069593.html > > I now have time to take it up again and do whatever rework is required. I saw that you have made some changes in the legalizer recently; let me know if the same discussion in the above thread still holds good and whether we can start working on it as described therein.I don't remember what the discussion was about any more. The link doesn't contain much. Anyway, as you may have noticed I changed the definition of the target hook "ReplaceNodeResults". Probably the same method, or one with a similar definition, should be used for custom lowering in the case of an illegal operand. Would this solve your problem? Ciao, Duncan. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090108/7d64a581/attachment.html>
Hi Sanjiv,> Well, the first email is here. > > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20081013/068667.htmlthanks, I remember now (more or less). So would something like ReplaceNodeResults solve the problem? Ciao, Duncan.
>> Well, the first email is here. >> >> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20081013/068667.html>thanks, I remember now (more or less). So would something like ReplaceNodeResults >solve the problem?I think it will. We will try that out and post changes. Thanks for all your help. Regards, Sanjiv -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090109/79ccfaac/attachment.html>
> -----Original Message----- > From: Duncan Sands [mailto:baldrick at free.fr] > Sent: Friday, January 09, 2009 5:23 PM > To: Sanjiv Kumar Gupta - I00171 > Cc: llvmdev at cs.uiuc.edu > Subject: Re: PIC16 backend for llvm 2.5 > > Hi Sanjiv, > > > Well, the first email is here. > > > > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon- > 20081013/068667.html > > thanks, I remember now (more or less). So would something like > ReplaceNodeResults > solve the problem? >Well the magnitude of the task is not small. ExpandIntegerOperand() calls LowerOperation() to allow targets to handle illegal operands. So we will need to change the interface of LowerOperation() to pass an extra argument called Results, which is an array of SDValue. Targets will push the result values in this array and then we can replace values in ExpandIntegerOperand(). Very much like what CustomLowerResults() and ReplaceNodeResults() are doing currently. The problem is that do we want to change calls to LowerOperation() in LegalizeDAG as well? I think probably that is the right approach to go in the longer term. But currently I suggest that "Results" be the last argument to LowerOperation() which is defaulted to NULL. That way LegalizeDAG and all targets will continue to work the current way, plus targets like ours that want to use the last argument (i.e. "Results") can use them in ExapndIntegerOperand(). Let me know if that sounds okay. Regards, Sanjiv> Ciao, > > Duncan.