[llvm-dev] Question about changes to 'SelectionDAGISel.h'

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 28 09:03:54 PDT 2016


On 28 June 2016 at 17:01, Ahmed Bougacha via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> On Tue, Jun 28, 2016 at 8:53 AM, Martin J. O'Riordan via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> It occurred to me that instead of the various breakout ‘Select*’ functions
>> returning the ‘SDNode*’ result, maybe I should be calling:
>>
>>
>>
>>   ReplaceNode(N, newValue);
>>
>>   return;
>>
>> or:
>>
>>   SelectCode(N);
>>
>>   return;
>>
>>
>>
>> Perhaps?
>
> Yes, I think the core difference is that Select() - not its caller -
> now does the replacement, so there's nothing to return.
>
> This is actually mentioned in the release notes (kudos to Justin!):
>
>     SelectionDAGISel::Select now returns void. Out of tree targets
> will need to be updated to replace the argument node and remove any
> dead nodes in cases where they currently return an SDNode * from this
> interface.
>
> http://llvm.org/docs/ReleaseNotes.html
>
> You can look at the changes to the various in-tree targets between
> r268693 and r270454 (e.g., r269144 for x86).

Also see http://lists.llvm.org/pipermail/llvm-dev/2016-May/099216.html
for the motivation for the change.

Best,

Alex


More information about the llvm-dev mailing list