1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Reduce/remove-function-arguments-of-funcs-used-in-blockaddress.ll
Roman Lebedev aa265a31e9 [Reduce] Argument reduction: shoe-horn new function into remaining uses of old function
Much like with function reduction, there may be remaining unhandled uses
of function, in particular in blockaddress. And in constants we can't
RAUW it with undef, because undef is not a function.
Instead, let's try to pretent that in the remaining cases, the new
signature didn't change, by bitcasting it.

A new (previously crashing) test case added.
2020-07-27 15:39:03 +03:00

31 lines
851 B
LLVM

; RUN: llvm-reduce --test FileCheck --test-arg --check-prefixes=CHECK-ALL,CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
; RUN: cat %t | FileCheck --check-prefixes=CHECK-ALL,CHECK-FINAL %s
; CHECK-INTERESTINGNESS: define void @func(
; CHECK-FINAL: define void @func()
define void @func(i1 %arg) {
; CHECK-ALL: bb:
; CHECK-ALL: br label %bb4
bb:
br label %bb4
; CHECK-ALL: bb4
bb4:
; CHECK-INTERESTINGNESS; callbr void asm
; CHECK-INTERESTINGNESS-SAME; blockaddress
; CHECK-FINAL: callbr void asm sideeffect "", "X"(i8* blockaddress(@func, %bb11))
; CHECK-ALL: to label %bb5 [label %bb11]
callbr void asm sideeffect "", "X"(i8* blockaddress(@func, %bb11))
to label %bb5 [label %bb11]
; CHECK-ALL: bb5:
; CHECK-ALL: br label %bb11
bb5:
br label %bb11
; CHECK-ALL: bb11:
; CHECK-ALL: ret void
bb11:
ret void
}