aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorDominik Montada <dominik.montada@hightec-rt.com>2020-03-23 12:30:55 +0100
committerDominik Montada <dominik.montada@hightec-rt.com>2020-04-08 11:00:07 +0200
commit35950fea8d4f175d04aa27e5e0350e28bef36429 (patch)
treebcf93058a77ef282fc1ef6ab149f10532ac48288 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent2a6eedbb51fd612d3386b0379938036b17511ae0 (diff)
downloadllvm-35950fea8d4f175d04aa27e5e0350e28bef36429.zip
llvm-35950fea8d4f175d04aa27e5e0350e28bef36429.tar.gz
llvm-35950fea8d4f175d04aa27e5e0350e28bef36429.tar.bz2
[GlobalISel] support narrow G_IMPLICIT_DEF for DstSize % NarrowSize != 0
Summary: When narrowing G_IMPLICIT_DEF where the original size is not a multiple of the narrow size, emit a smaller G_IMPLICIT_DEF and use G_ANYEXT. To prevent a potential endless loop in the legalizer, the condition to combine G_ANYEXT(G_IMPLICIT_DEF) is changed from isInstUnsupported to !isInstLegal, since in this case the combine is only valid if consequent legalization of the newly combined G_IMPLICIT_DEF does not introduce G_ANYEXT due to narrowing. Although this legalization for G_IMPLICIT_DEF would also be valid for the general case, it actually caused a lot of code regressions when tried due to superfluous COPYs and combines not getting hit anymore. Reviewers: dsanders, aemerson, volkan, arsenm, aditya_nandakumar Reviewed By: arsenm Subscribers: jvesely, nhaehnle, kerbowa, wdng, rovka, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76598
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions