[RFC][GlobalISel] Making GlobalISel non-optional in the build

Hi,

I would like to get rid of the logic around disabling GlobalISel from the build.

*** Context ***

So far, GlobalISel has been this framework built up on the side for about two years. Now, we are close to a point where having it being optional impedes our ability to implement the right things. For instance, checks that would fit naturally in the MachineVerifier are directly done during the execution of the related GISel generic passes to make sure we don’t end up with ifdefs all around of CodeGen.

*** What Changed? ***

  • GlobalISel is more mature

We now have a better idea of what the framework should look like and the scope of the changes what will happen on the CodeGen library.

  • GlobalISel is getting to be the default for AArch64 O0

We are now on the verge of having GlobalISel being the default for AArch64 at O0. I would like to make sure it is not possible to build a configuration that wouldn’t support that default.

  • GlobalISel is built by default since roughly 6 months

Unless people actively disabled GlobalISel while building LLVM, they already build it since end of January!
http://lists.llvm.org/pipermail/llvm-dev/2017-January/109029.html

*** What Do You Think? ***

As a remainder, the overhead of building GISel is about 1 min on a 8-core machine and the code size impact for llc is about 1 MB. Data form yesterday ToT attached r307176. (Format of the title of each section is .)

As far as I know people don’t actively disable the building of GISel, so removing that feature shouldn’t be a big deal but I can be wrong.

Cheers,
-Quentin

build_nums.txt (1.13 KB)

Gentle ping.

Hi,

I haven’t heard any push back on that.

Does this mean people agree or just missed this message because of July 4th? :wink:

Cheers,
-Quentin

Both. :slight_smile:

I'll give you a +1.

Hi,

I made the change in r309990.

Thanks,
-Quentin