OSDN Git Service

[SVE][CodeGen] Fix bug when falling back to DAG ISel
authorDavid Sherwood <david.sherwood@arm.com>
Thu, 25 Jun 2020 07:19:49 +0000 (08:19 +0100)
committerDavid Sherwood <david.sherwood@arm.com>
Tue, 7 Jul 2020 08:23:04 +0000 (09:23 +0100)
commit79d34a5a1bce39d8153be3665456e9cb0cc8601b
treec17c42e19da43ebec076cc3bbfa933be72ee1a26
parentc061e56e880a20488e0f7e6cf9975aa24b83067c
[SVE][CodeGen] Fix bug when falling back to DAG ISel

In an earlier commit 584d0d5c1749c13625a5d322178ccb4121eea610 I
added functionality to allow AArch64 CodeGen support for falling
back to DAG ISel when Global ISel encounters scalable vector
types. However, it seems that we were not falling back early
enough as llvm::getLLTForType was still being invoked for scalable
vector types.

I've added a new fallback function to the call lowering class in
order to catch this problem early enough, rather than wait for
lowerFormalArguments to reject scalable vector types.

Differential Revision: https://reviews.llvm.org/D82524
llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
llvm/lib/Target/AArch64/GISel/AArch64CallLowering.h
llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll