floris westermann via llvm-dev
2020-Feb-13 22:08 UTC
[llvm-dev] Use Global ISel or SelectionDAG
Hi llvm-dev, I am currently writing a backend for an architecture I am designing in my bachelor's thesis and recently came across the GlobalISel Selection Framework. Should already start using this over the more common Selection DAG? Being new llvm backend development, I am not sure if GlobalISel would be "easier" to implement than ISelDAG and if there is any decent documentation on how to do so. Cheers, Floris -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200213/3dbbfb84/attachment.html>
Luís Marques via llvm-dev
2020-Feb-13 22:51 UTC
[llvm-dev] Use Global ISel or SelectionDAG
Hi Floris, For a bachelor thesis I would probably recommend going with the safest choice of SelectionDAG. When I started doing LLVM development I was surprised by how common it is to have to solve LLVM issues that other architectures didn't happen to run into, despite me working on a very conventional target arch (RISC-V). You don't want to spend all your time budget on incidental problems that aren't core to your thesis. That said, GlobalISel is cool, so if you can make it work for you... ¯\_(ツ)_/¯ Alex Bradbury did some great work on creating a series of patches that show how to create the RISC-V target in a piecemeal and systematic way, so you might want to check that out: https://github.com/lowRISC/riscv-llvm https://github.com/lowRISC/riscv-llvm/tree/master/docs Cheers, Luis On Thu, Feb 13, 2020 at 10:08 PM floris westermann via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi llvm-dev, > > I am currently writing a backend for an architecture I am designing in my > bachelor's thesis and recently came across the GlobalISel Selection > Framework. > Should already start using this over the more common Selection DAG? > Being new llvm backend development, I am not sure if GlobalISel would be > "easier" to implement than ISelDAG and if there is any decent documentation > on how to do so. > > Cheers, > Floris > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200213/73d2842c/attachment.html>
Matt Arsenault via llvm-dev
2020-Feb-13 22:59 UTC
[llvm-dev] Use Global ISel or SelectionDAG
> On Feb 13, 2020, at 17:08, floris westermann via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi llvm-dev, > > I am currently writing a backend for an architecture I am designing in my bachelor's thesis and recently came across the GlobalISel Selection Framework. > Should already start using this over the more common Selection DAG? > Being new llvm backend development, I am not sure if GlobalISel would be "easier" to implement than ISelDAG and if there is any decent documentation on how to do so. > > Cheers, > FlorisI think it depends on how much you care about optimization, how weird your target is, and how long you plan to maintain it. If you don’t care about optimization, and have a very strange target, you would probably be better off with GlobalISel. There will be fewer examples to work with however. -Matt
floris westermann via llvm-dev
2020-Feb-13 23:06 UTC
[llvm-dev] Use Global ISel or SelectionDAG
Hi matt, Thanks for your advice, ill stick to SelectionDAG then, since my target isn't that strange and I'll have more examples to look at. Cheers, Floris On Thu, Feb 13, 2020, 11:59 PM Matt Arsenault <arsenm2 at gmail.com> wrote:> > > > On Feb 13, 2020, at 17:08, floris westermann via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Hi llvm-dev, > > > > I am currently writing a backend for an architecture I am designing in > my bachelor's thesis and recently came across the GlobalISel Selection > Framework. > > Should already start using this over the more common Selection DAG? > > Being new llvm backend development, I am not sure if GlobalISel would be > "easier" to implement than ISelDAG and if there is any decent documentation > on how to do so. > > > > Cheers, > > Floris > > I think it depends on how much you care about optimization, how weird your > target is, and how long you plan to maintain it. If you don’t care about > optimization, and have a very strange target, you would probably be better > off with GlobalISel. There will be fewer examples to work with however. > > -Matt > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200214/f10faa1b/attachment.html>
Francois Pichet via llvm-dev
2020-Feb-17 17:29 UTC
[llvm-dev] Use Global ISel or SelectionDAG
Another thing to consider is that GlobalISel will report an error if your target is big-endian. On Thu, Feb 13, 2020 at 5:59 PM Matt Arsenault via llvm-dev < llvm-dev at lists.llvm.org> wrote:> > > > On Feb 13, 2020, at 17:08, floris westermann via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Hi llvm-dev, > > > > I am currently writing a backend for an architecture I am designing in > my bachelor's thesis and recently came across the GlobalISel Selection > Framework. > > Should already start using this over the more common Selection DAG? > > Being new llvm backend development, I am not sure if GlobalISel would be > "easier" to implement than ISelDAG and if there is any decent documentation > on how to do so. > > > > Cheers, > > Floris > > I think it depends on how much you care about optimization, how weird your > target is, and how long you plan to maintain it. If you don’t care about > optimization, and have a very strange target, you would probably be better > off with GlobalISel. There will be fewer examples to work with however. > > -Matt > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200217/764de62c/attachment.html>
Apparently Analagous Threads
- Running GlobaISel passes after SelectionDAG instruction selection
- [GlobalISel][RFC] Contract between LLVM IR and the backends for ISel
- FreeBSD 6 - DirectAdmin - dovecot
- [GlobalISel][RFC] Contract between LLVM IR and the backends for ISel
- Work on DAG Isel for TableGen and compiler