This is an archive of the discontinued LLVM Phabricator instance.

[globalisel][tablegen] Fix patterns involving multiple ComplexPatterns.
ClosedPublic

Authored by dsanders on Mar 16 2017, 1:47 PM.

Details

Summary

Temporaries are now allocated to operands instead of predicates and this
allocation is used to correctly pair up the rendered operands with the
matched operands.

Previously, ComplexPatterns were allocated temporaries independently in the
Src Pattern and Dst Pattern, leading to mismatches. Additionally, the Dst
Pattern failed to account for the allocated index and therefore always used
temporary 0, 1, ... when it should have used base+0, base+1, ...

Thanks to Aditya Nandakumar for noticing the bug.

Depends on D30539

Diff Detail

Repository
rL LLVM

Event Timeline

dsanders created this revision.Mar 16 2017, 1:47 PM
dsanders updated this revision to Diff 92924.Mar 24 2017, 4:56 AM

Refresh and ping

rovka accepted this revision.Apr 3 2017, 7:14 AM

LGTM.

This revision is now accepted and ready to land.Apr 3 2017, 7:14 AM
dsanders updated this revision to Diff 94068.Apr 4 2017, 6:42 AM

Refresh before commit

dsanders updated this revision to Diff 94071.Apr 4 2017, 6:52 AM

Rebase on to trunk

This revision was automatically updated to reflect the committed changes.
dsanders closed this revision.Apr 5 2017, 6:26 AM