<html><head></head><body><div class="ydpa5fd74b2yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div id="ydpa5fd74b2yiv5958120621"><div><div class="ydpa5fd74b2yiv5958120621yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr">Hi,</div><div dir="ltr"><br></div><div dir="ltr" data-setdir="false">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"><br></div><div dir="ltr" data-setdir="false">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"><br></div><div dir="ltr">Any suggestions would be highly appreciated.</div><div dir="ltr"><br></div><div dir="ltr">Many thanks,</div><div dir="ltr">PW</div></div></div></div></div></body></html>