[PATCH] D51147: [GISel]: Remove an incorrect assert in CallLowering

Aditya Nandakumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 22 19:02:31 PDT 2018


aditya_nandakumar created this revision.
aditya_nandakumar added reviewers: ab, dsanders, aemerson, volkan, arsenm, bogner, rtereshin, qcolombet.
Herald added subscribers: kristof.beyls, wdng.
Herald added a reviewer: javed.absar.

Asserting if any extend of vectors should be up to the target's legalizer/target specific code.

I suspect this was moved around from AArch64 during refactoring and stayed as is in generic code.

This assert fires if we compile the following llvm ir
define <4 x i1> @foo() {
entry:

  ret <4 x i1> zeroinitializer

}
llc -mtriple=x86_64-linux-gnu -o - -global-isel

If required I can add a test that IRTranslation for above doesn't crash and produces ANYEXT. I haven't added as this seemed overkill for removing an assert.


Repository:
  rL LLVM

https://reviews.llvm.org/D51147

Files:
  lib/CodeGen/GlobalISel/CallLowering.cpp


Index: lib/CodeGen/GlobalISel/CallLowering.cpp
===================================================================
--- lib/CodeGen/GlobalISel/CallLowering.cpp
+++ lib/CodeGen/GlobalISel/CallLowering.cpp
@@ -164,7 +164,6 @@
     // nop in big-endian situations.
     return ValReg;
   case CCValAssign::AExt: {
-    assert(!VA.getLocVT().isVector() && "unexpected vector extend");
     auto MIB = MIRBuilder.buildAnyExt(LocTy, ValReg);
     return MIB->getOperand(0).getReg();
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51147.162124.patch
Type: text/x-patch
Size: 481 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180823/9c2e84a7/attachment.bin>


More information about the llvm-commits mailing list