[llvm-dev] RFC: Building GlobalISel by default

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Sat Jan 14 12:03:57 PST 2017

> 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”.


More information about the llvm-dev mailing list