[llvm-dev] RFC: Building GlobalISel by default

Mehdi Amini via llvm-dev
Sat, 14 Jan 2017 20:03:57 -0000

> On Jan 14, 2017, at 11:32 AM, Renato Golin <renato.golin at
linaro.org> wrote:
>
> On 14 January 2017 at 18:53, Mehdi Amini <mehdi.amini at apple.com>
wrote:
>> I don’t see why having global ISel is supposed to increase the rate.
`make check` will runs on the committer machine with GlobalISel enabled.
>
> You assume the environments are the same, so the same bugs will be
> caught on an x86 host or on an ARM host. If that was true, than most
> of the breakages we have would just not happen.
>
> To make matters worse, if a breakage is unknown to the committer (ie,
> due to some GISel idiosyncrasy), the committer will not worry about it
> and will leave the bot red, which increases the load on bot
> maintainers.
>
>
>> But that’s totally unrelated to the bots, since it’ll fails on the
committer machine as well.
>
> If that's unrelated, than why is it a plus that we have all other
> buildbots building it instead of just the one Apple has it already?

Because everyone on their local machine will get the failure before pushing
their patch.
And it’s not just the people working on GlobalISel that will have to cleanup
behind.



>
>
>> This is *not* about enabling GlobalISel  *by default* on any target
AFAIK.
>
> I got that. That is a second step, for later. My point is that, if a
> feature is not good enough to be used anywhere, then it can remain as
> experimental, since the cost is just adding a flag to enable the
> back-end.

This is a very similar situation to any experimental backend: we turn them on by
default when they are stable enough to not disturb the other features in LLVM.
There has never be a constraint about “being able to bootstrap” or “run the
test-suite”, I don’t see any reason to apply such criteria to GlobalISel, that
seems totally arbitrary to me.




>
> I can easily do that on one of my bots, just for that purpose, but I
> wouldn't feel comfortable doing that to all my bots at once (or having
> to use special flags to remove experimental features).

With this state of mind, Green dragon would build X86 and ARM and disable all
the other targets, because... why should we care about these? They only make our
build less “stable” and “take time”.


—
Mehdi