diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-06 00:05:58 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-06 00:05:58 +0000 |
commit | 9ceb6edf1145fca5dc43dc486f9129d9b8e01b8e (patch) | |
tree | 7fe0bfee248028a941abb8db4ae3891e68969006 /llvm/lib/Object/WindowsMachineFlag.cpp | |
parent | 60c8b8bcf232cfb0537f3d6638d8f36c29ef7095 (diff) | |
download | bcm5719-llvm-9ceb6edf1145fca5dc43dc486f9129d9b8e01b8e.tar.gz bcm5719-llvm-9ceb6edf1145fca5dc43dc486f9129d9b8e01b8e.zip |
GlobalISel/TableGen: Fix handling of EXTRACT_SUBREG constraints
This was only using the correct register constraints if this was the
final result instruction. If the extract was a sub instruction of the
result, it would attempt to use GIR_ConstrainSelectedInstOperands on a
COPY, which won't work. Move the handling to
createAndImportSubInstructionRenderer so it works correctly.
I don't fully understand why runOnPattern and
createAndImportSubInstructionRenderer both need to handle these
special cases, and constrain them with slightly different methods. If
I remove the runOnPattern handling, it does break the constraint when
the final result instruction is EXTRACT_SUBREG.
llvm-svn: 371150
Diffstat (limited to 'llvm/lib/Object/WindowsMachineFlag.cpp')
0 files changed, 0 insertions, 0 deletions