OSDN Git Service

GlobalISel: Fix some artifact combiner worklist inconsistencies
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Tue, 16 Jun 2020 18:20:34 +0000 (14:20 -0400)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Thu, 18 Jun 2020 21:17:39 +0000 (17:17 -0400)
commit2ec1267ecec372e55aed0995917b601f7cf61c5e
treed9d4511d3f6b3e95fc49c21f40b169cb5f146749
parent7f8b2e1b919dd75e5420222e6a81bb05144f67bc
GlobalISel: Fix some artifact combiner worklist inconsistencies

In one case, UpdateDefs was not getting set and a dead SmallVector
constructed. In another, it was adding new vreg defs to the updated
set which should be unnecessary. This also wasn't considering the
multiple defs of G_UNMERGE_VALUES.

Also increase the small vector sizes for merge/unmerge operands to the
usual semi-arbitrary 8. While debugging these, I'm usually seeing
merges and unmerges with at least 4 uses/defs.

I haven't run into an actual problem from any of these though.
llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h