This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Combine unmerge of merge with intermediate cast
ClosedPublic

Authored by arsenm on Jul 9 2019, 11:53 AM.

Details

Summary

This eliminates some illegal intermediate vectors when operations are
scalarized.

Diff Detail

Event Timeline

arsenm created this revision.Jul 9 2019, 11:53 AM
arsenm updated this revision to Diff 208810.Jul 9 2019, 2:31 PM

Don't assert on todo cases

aemerson added inline comments.Jul 9 2019, 2:31 PM
include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
295

Do we need to restore the builder's insertpt?

include/llvm/CodeGen/GlobalISel/Utils.h
133

This comment now needs moving to getDefIgnoringCopies

arsenm updated this revision to Diff 208817.Jul 9 2019, 2:41 PM

Add comment

arsenm marked an inline comment as done.Jul 9 2019, 2:41 PM
arsenm added inline comments.
include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
295

The other places here do not. I would assume MI is invalid and the insert point isn't preserved if tryCombineMerges returns true

aemerson accepted this revision.Jul 9 2019, 2:54 PM
This revision is now accepted and ready to land.Jul 9 2019, 2:54 PM
arsenm closed this revision.Jul 9 2019, 3:19 PM

r365566