[llvm-dev] [GlobalISel] Quick Status
Quentin Colombet via llvm-dev
llvm-dev at lists.llvm.org
Mon Jan 23 12:02:57 PST 2017
Hi,
They made a documentation in that direction, this is still on going progress and we try to keep it current:
http://llvm.org/docs/GlobalISel.html <http://llvm.org/docs/GlobalISel.html>
We plan to do a guide for targeting GISel, but we want the framework to settle a bit before starting to write that down.
Don’t hesitate to ask question around.
Cheers,
-Quentin
> On Jan 21, 2017, at 2:37 AM, Nemanja Ivanovic <nemanja.i.ibm at gmail.com> wrote:
>
> Quentin, do you have some links you can share for guidance for those that might want to jump in to start preparing other targets for Global ISEL?
>
> On Sat, Jan 21, 2017 at 2:19 AM, Quentin Colombet via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> Hi all,
>
> Following the thread from http://lists.llvm.org/pipermail/llvm-dev/2017-January/109029.html <http://lists.llvm.org/pipermail/llvm-dev/2017-January/109029.html>, I am sending this email to give a status on GlobalISel progress and situation.
>
> We are pushing GlobalISel from the state of prototype to a production quality framework. We welcome help with patches, reviews, feedbacks and so on.
>
> As explained during the last developer meeting, we are aiming at enabling GISel by default for AArch64 at -O0 for this year (See http://llvm.org/devmtg/2016-11/#talk16 <http://llvm.org/devmtg/2016-11/#talk16>).
>
> Note: That does not mean the design is settle nor that we won’t change the APIs.
> Note: A lot of the things listed in this email is a reminder of what we said during the dev meeting talk.
>
> *** High Level View ***
>
> As of r292481, we compile and run correctly with GISel (without fall back to SDISel) 63% of the LLVM test suite. If you are interested in detailed numbers, please see the attachments (courtesy of Kristof Beyls).
>
> Note: The compile time numbers are probably noisy (compiled in parallel on the same machine), and not relevant at this point of the project anyway.
>
>
> *** Per Pass Status ***
>
> ** IRTranslator **
>
> Mostly done.
>
> * What’s Left? *
>
> Some instructions are not yet supported.
>
>
> ** Legalizer **
>
> Core logic is present.
>
> * What’s Left? *
>
> - A lot of instructions are missing, in particular the vector ones.
> - Legalization of G_SEQUENCE/G_EXTRACT still up in the air for complex cases.
>
> Note: The lack of broad vector support is one on the reason we target O0, i.e., the vectorizer doesn’t run and we are less likely to hit the missing implementation.
>
>
> ** RegBankSelect **
>
> - Core logic is present, no optimizations yet, or more accurately, the greedy mode is still pretty silly.
> - TableGen support for RegisterBanks description.
>
> * What’s Left *
>
> - TableGen the instruction mapping from the existing SDISel patterns.
> - Improve the optimization heuristic.
>
>
> ** InstructionSelect **
>
> - Core logic present.
> - TableGen support for simple SDISel patterns (i.e., GISel reuses SDISel patterns)
>
> * What’s Left *
>
> - Teach TableGen how to reuse more complex patterns:
> — Patterns with combines in them (e.g., (mull (add)) => madd)
> — Patterns with complex patterns (e.g., SelectAddressModXR0)
>
>
> *** On Going Work ***
>
> - General approach: use AArch64 O0 on the LLVM test suite as a driving vehicle to guide what to support next in the various passes.
> - Extend TableGen support to reuse more and more SDISel patterns.
> - ARM port.
> - AMDGPU port.
> - X86 port.
>
> If you have questions, don’t hesitate!
>
> Cheers,
> -Quentin
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://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/20170123/18c16c4b/attachment.html>
More information about the llvm-dev
mailing list