[llvm-dev] RFC: Building GlobalISel by default

Quentin Colombet via llvm-dev
Tue, 17 Jan 2017 18:04:11 -0000

Hi Michael,

> On Jan 13, 2017, at 6:38 PM, Michael Kuperstein <mkuper at
google.com> wrote:
>
> As a person not developing on GlobalISel, I can already play with it by
setting the flag. ;-)
>
> The main (and huge) benefit I see is that it will get tested by default.

I agree.

> So, I think it's mainly a question of maturity - if my (non-GlobalISel)
change breaks GlobalISel, how likely is it to be a bug in my code vs. a bug in
GlobalISel?

That’s very likely this is a bug in your code. GlobalISel test cases usually
check the GlobalISel passes in isolation. Therefore, if they break without
GlobalISel related passes being changed, that means that some of the core MI
functionalities have been broken (e.g., some semantic with MachineRegisterInfo,
the parsing of .mir files, this kind of thing).
In other words, it is usually best for the author of the code to realize
directly that the code break.

Cheers,
-Quentin

>
> Michael
>
> On Fri, Jan 13, 2017 at 5:54 PM, Quentin Colombet via llvm-dev <llvm-dev
at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> Hi all,
>
> Now, four backends (if I am counting right: X86, ARM, AArch64, AMDGPU) are
working on bringing-up GlobalISel, I’d like to switch the default of the
LLVM_BUILD_GLOBAL_ISEL variable in CMake, such that the framework gets built by
default.
>
> ** Impact of Flipping the Switch **
>
> * Upsides *
>
> For people developing on GlobalISel, it will:
> - Simplify the CMake command to type :)
> - Build/Test GlobalISel on all the LLVM bots
>
> For people not developing on GlobalISel, it will:
> - Test that GlobalISel still works with your changes (make check will test
that for you)
> - Allow you to play with it!
>
> Basically flipping the default CMake setting will give access to all the
ISel schemes that we have in LLVM, instead of just SDISel and FastISel.
>
> * Downsides *
>
> For people developing on GlobalISel, it will:
> - Leave the status as it is now, meaning that mainly only people working on
GlobalISel look at the failures of GlobalISel specific bots
>
> For people not developing for GlobalISel, it will:
> - Increase the compile time since the GlobalISel framework and the related
target specific parts will have to be built
> - Increase the size of the binary (depending on what backend you pull)
> - Require the setting of an additional CMake variable to disable it
(-DLLVM_BUILD_GLOBAL_ISEL=OFF)
>
>
> What do people think?
>
> Thanks,
> -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/20170117/1448373b/attachment.html>