jcai19 marked an inline comment as done.
jcai19 added a comment.

In D65019#1619511 <https://reviews.llvm.org/D65019#1619511>, @efriedma wrote:

> This seems better.
>
> I'm not sure I follow why this needs special handling in 
> SelectionDAGBuilder::visitIntrinsicCall, as opposed to just using 
> ISD::INTRINSIC_VOID like other similar target-specific intrinsics.  (You can 
> custom-lower INTRINSIC_VOID in ARMTargetLowering::LowerOperation, if that 
> makes it easier.)


Thanks for the suggestion, and I agree the code would look cleaner this way.  
But I have some questions on implementation details, and please bear with me if 
they seem naive since I am new to backend. So I have been trying to reuse the 
code of  ARMTargetLowering::LowerCall to build a SelectionDAG call node for the 
new intrinsic, which essentially is a function call with a push instruction 
before. If we handle the intrinsic at ARMTargetLowering::LowerOperation until 
legalize DAG stage, then I am not sure if we can still do that, as some of the 
information needed is gone by this stage. I did see code handling ARM intrinsic 
on ARMTargetLowering::LowerOperation, but they didn't seem to need to generate 
function calls later.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65019/new/

https://reviews.llvm.org/D65019



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to