This is an archive of the discontinued LLVM Phabricator instance.

[globalisel][tablegen] Finish fixing compile-time regressions by merging the matcher and emitter state machines.
ClosedPublic

Authored by dsanders on Jun 1 2017, 3:20 AM.

Details

Summary

Also, made a few minor tweaks to shave off a little more cumulative memory consumption:

  • All rules share a single NewMIs instead of constructing their own. Only one will end up using it.
  • Use MIs.resize(1) instead of MIs.clear();MIs.push_back(I) and prevent GIM_RecordInsn from changing MIs[0].

Depends on D33764

Event Timeline

dsanders created this revision.Jun 1 2017, 3:20 AM
ab accepted this revision.Jun 27 2017, 12:02 PM

Can you emit a single table for all patterns? I'm fine with doing that separately; looks OK otherwise.

This revision is now accepted and ready to land.Jun 27 2017, 12:02 PM
dsanders updated this revision to Diff 105166.Jul 4 2017, 6:33 AM

Rebase before commit

In D33766#792569, @ab wrote:

Can you emit a single table for all patterns? I'm fine with doing that separately; looks OK otherwise.

Sure

dsanders closed this revision.Jul 5 2017, 7:50 AM