HomePhabricator

[GlobalISel] Import patterns containing SUBREG_TO_REG

Description

[GlobalISel] Import patterns containing SUBREG_TO_REG

Reuse the logic for INSERT_SUBREG to also import SUBREG_TO_REG patterns.

  • Split inferSuperRegisterClass into two functions, one which tries to use an existing TreePatternNode (inferSuperRegisterClassForNode), and one that doesn't. SUBREG_TO_REG doesn't have a node to leverage, which is the cause for the split.
  • Rename GlobalISelEmitterInsertSubreg.td to GlobalISelEmitterSubreg.td and update it.
  • Update impacted tests in the AArch64 and X86 backends.

This is kind of a hit/miss for code size improvements/regressions. E.g. in
add-ext.ll, we now get some identity copies. This isn't really anything the
importer can handle, since it's caused by a later pass introducing the copy for
the sake of correctness.

Differential Revision: https://reviews.llvm.org/D66769

Details

Committed
paquetteAug 28 2019, 1:12 PM
Differential Revision
D66769: [GlobalISel] Import patterns containing SUBREG_TO_REG
Parents
rL370253: [sanitizer] Fix 'unbound variable'
Branches
Unknown
Tags
Unknown