<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi PW,<div class=""><br class=""></div><div class="">If you’re starting from scratch, GISel is probably the best forward looking solution.</div><div class="">Given you will be implemented everything in GISel if something doesn’t work you would just have to fix it within GISel.</div><div class=""><br class=""></div><div class="">What I am saying is the fallback path to SDISel is here for the exiting targets that have put a lot of effort in SDISel in the past. You shouldn’t need to use it when you start from scratch!</div><div class=""><br class=""></div><div class="">Hope this helps.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Quentin<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 20, 2020, at 4:57 PM, <a href="mailto:realprincewall@yahoo.com" class="">realprincewall@yahoo.com</a> via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div class="ydpa5fd74b2yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div id="ydpa5fd74b2yiv5958120621" class=""><div class=""><div class="ydpa5fd74b2yiv5958120621yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr" class="">Hi,</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">I am trying to add a new hardware target in LLVM backend. I am starting from scratch based on LLVM 10.0 and wondering what the best strategy would be for my own instruction selection, FastISel, SelectionDAG, or GlobalISel? What are the factors I should consider and which existing target is a good reference for each choice?</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">If I understand correctly, FastIsel and GlobalISel both may fail and fall back to SelectionDAGISel. Therefore, it sounds like I cannot avoid SelectionDAG. However, I read somewhere that GlobalISel will replace SelectionDAGISel eventually. This makes me confused. If time to product is important, would FastISel + some optimizaitons a reasonable choice?</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">Any suggestions would be highly appreciated.</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">Many thanks,</div><div dir="ltr" class="">PW</div></div></div></div></div></div>_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></div></body></html>