mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
77b0b852fa
Originally this similar was initiated by Björn Steinbrink here: http://reviews.llvm.org/D3437 Bug itself has been fixed by principal changes in MergeFunctions. Though special checks for functions merging are still actual. And the test has been accepted with slight modifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210486 91177308-0d34-0410-b5e6-96231b3b80d8
28 lines
611 B
LLVM
28 lines
611 B
LLVM
; RUN: opt -S -mergefunc < %s | FileCheck %s
|
|
|
|
; Be sure we don't merge cross-referenced functions of same type.
|
|
|
|
; CHECK-LABEL: @left
|
|
; CHECK-LABEL: entry-block
|
|
; CHECK-LABEL: call void @right(i64 %p)
|
|
define void @left(i64 %p) {
|
|
entry-block:
|
|
call void @right(i64 %p)
|
|
call void @right(i64 %p)
|
|
call void @right(i64 %p)
|
|
call void @right(i64 %p)
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: @right
|
|
; CHECK-LABEL: entry-block
|
|
; CHECK-LABEL: call void @left(i64 %p)
|
|
define void @right(i64 %p) {
|
|
entry-block:
|
|
call void @left(i64 %p)
|
|
call void @left(i64 %p)
|
|
call void @left(i64 %p)
|
|
call void @left(i64 %p)
|
|
ret void
|
|
}
|