[PATCH] D60762: [SelectionDAG] Legalize vaargs that require vector splitting

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 31 02:31:15 PDT 2019


luke added a comment.

In D60762#1518966 <https://reviews.llvm.org/D60762#1518966>, @RKSimon wrote:

> Building this locally with EXPENSIVE_CHECKS enabled causes a large number of warnings in the x86 test:
>
>   - Bad machine code: Missing mayStore flag ***
> - function:    test_large_vec_vaarg
> - basic block: %bb.0  (0x25e70f4da58)
> - instruction: %11:gr32 = MOV32rm %stack.0.args, 1, $noreg, 0, $noreg :: (load store 8 on %ir.args)


It looks like this happens with all vaarg expansions: The same assertions are thrown without vectors:

  define i32 @test_large_vec_vaarg(i32 %n, ...) {
    %args = alloca i8*, align 4
    %x = va_arg i8** %args, i32
    ret i32 %x
  }

As well as on the existing vaarg tests (2008-10-29-ExpandVAARG.ll).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60762/new/

https://reviews.llvm.org/D60762





More information about the llvm-commits mailing list