Imported Upstream version 5.18.0.234

Former-commit-id: 8071ec1a8c5eaa9be24b41745add19297608001f
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-01-08 08:22:36 +00:00
parent f32dbaf0b2
commit 212f6bafcb
28494 changed files with 359 additions and 3867025 deletions

View File

@@ -1,16 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
; Method arguments were being checked for collisions at the global scope before
; the method object was created by the parser. Because of this, false
; collisions could occur that would cause the following error message to be
; produced:
;
; Redefinition of value named 'X' in the 'int *' type plane!
;
; Fixed by delaying binding of variable names until _after_ the method symtab is
; created.
;
@X = global i32 4 ; <i32*> [#uses=0]
declare i32 @xxx(i32*)

View File

@@ -1,13 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
; Another name collision problem. Here the problem was that if a forward
; declaration for a method was found, that this would cause spurious conflicts
; to be detected between locals and globals.
;
@Var = external global i32 ; <i32*> [#uses=0]
define void @foo() {
%Var = alloca i32 ; <i32*> [#uses=0]
ret void
}

View File

@@ -1,17 +0,0 @@
; This testcase checks to make sure that the assembler can handle floating
; point constants in IEEE hex format. This also checks that the disassembler,
; when presented with a FP constant that cannot be represented exactly in
; exponential form, outputs it correctly in hex format. This is a distillation
; of the bug that was causing the Olden Health benchmark to output incorrect
; results!
;
; RUN: opt -constprop -S > %t.1 < %s
; RUN: llvm-as < %s | llvm-dis | llvm-as | opt -constprop | \
; RUN: llvm-dis > %t.2
; RUN: diff %t.1 %t.2
; RUN: verify-uselistorder %s
define double @test() {
%tmp = fmul double 7.200000e+101, 0x427F4000 ; <double> [#uses=1]
ret double %tmp
}

View File

@@ -1,10 +0,0 @@
; The output formater prints out 1.0e100 as Inf!
;
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep 0x7FF0000000000000
; RUN: verify-uselistorder %s
define float @test() {
%tmp = fmul float 0x7FF0000000000000, 1.000000e+01 ; <float> [#uses=1]
ret float %tmp
}

View File

@@ -1,19 +0,0 @@
; There should be NO references to the global v1. The local v1 should
; have all of the references!
;
; Check by running globaldce, which will remove the constant if there are
; no references to it!
;
; RUN: opt < %s -globaldce -S | \
; RUN: not grep constant
;
; RUN: verify-uselistorder %s
@v1 = internal constant i32 5
define i32 @createtask() {
%v1 = alloca i32 ;; Alloca should have one use!
%reg112 = load i32, i32* %v1 ;; This load should not use the global!
ret i32 %reg112
}

View File

@@ -1,11 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
; It looks like the assembler is not forward resolving the function declaraion
; correctly.
define void @test() {
call void @foo( )
ret void
}
declare void @foo()

View File

@@ -1,11 +0,0 @@
; Test that opaque types are preserved correctly
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
;
; RUN: verify-uselistorder %s
%Ty = type opaque
define %Ty* @func() {
ret %Ty* null
}

View File

@@ -1,6 +0,0 @@
; Test double quotes in strings work correctly!
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
;
; RUN: verify-uselistorder %s
@str = internal global [6 x i8] c"\22foo\22\00" ; <[6 x i8]*> [#uses=0]

View File

@@ -1,14 +0,0 @@
; Test that returning a pointer to a function causes the disassembler to print
; the right thing.
;
; RUN: llvm-as < %s | llvm-dis | llvm-as
; RUN: verify-uselistorder %s
declare void (i32)* @foo()
define void @test() {
call void (i32)* () @foo( ) ; <%ty*>:1 [#uses=0]
ret void
}

View File

@@ -1,6 +0,0 @@
; RUN: llvm-as < %s | llvm-dis | llvm-as
; RUN: verify-uselistorder %s
; Make sure that \\ works in a string initializer
@Slashtest = internal global [8 x i8] c"\5Cbegin{\00"

View File

@@ -1,7 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
define void @test(i32 %X) {
call void @test( i32 6 )
ret void
}

View File

@@ -1,17 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
define i8* @test() {
; <label>:0
br label %BB1
BB1: ; preds = %BB2, %0
%ret = phi i8* [ getelementptr ([12 x i8], [12 x i8]* @.LC0, i64 0, i64 0), %0 ], [ null, %BB2 ] ; <i8*> [#uses=1]
ret i8* %ret
BB2: ; No predecessors!
br label %BB1
}

View File

@@ -1,9 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
define i8* @test() {
ret i8* getelementptr ([12 x i8], [12 x i8]* @.LC0, i64 0, i64 0)
}

View File

@@ -1,23 +0,0 @@
; In this testcase, the bytecode reader or writer is not correctly handling the
; ConstExpr reference. Disassembling this program assembled yields invalid
; assembly (because there are placeholders still around), which the assembler
; dies on.
; There are two things that need to be fixed here. Obviously assembling and
; disassembling this would be good, but in addition to that, the bytecode
; reader should NEVER produce a program "successfully" with placeholders still
; around!
;
; RUN: llvm-as < %s | llvm-dis | llvm-as
; RUN: verify-uselistorder %s
@.LC0 = internal global [4 x i8] c"foo\00" ; <[4 x i8]*> [#uses=1]
@X = global i8* null ; <i8**> [#uses=0]
declare i32 @puts(i8*)
define void @main() {
bb1:
%reg211 = call i32 @puts( i8* getelementptr ([4 x i8], [4 x i8]* @.LC0, i64 0, i64 0) ) ; <i32> [#uses=0]
ret void
}

View File

@@ -1,18 +0,0 @@
; Testcase that seems to break the bytecode reader. This comes from the
; "crafty" spec benchmark.
;
; RUN: opt < %s -instcombine | llvm-dis
; RUN: verify-uselistorder %s
%CHESS_POSITION = type { i32, i32 }
@pawn_probes = external global i32 ; <i32*> [#uses=0]
@pawn_hash_mask = external global i32 ; <i32*> [#uses=0]
@search = external global %CHESS_POSITION ; <%CHESS_POSITION*> [#uses=2]
define void @Evaluate() {
%reg1321 = getelementptr %CHESS_POSITION, %CHESS_POSITION* @search, i64 0, i32 1 ; <i32*> [#uses=1]
%reg114 = load i32, i32* %reg1321 ; <i32> [#uses=0]
%reg1801 = getelementptr %CHESS_POSITION, %CHESS_POSITION* @search, i64 0, i32 0 ; <i32*> [#uses=1]
%reg182 = load i32, i32* %reg1801 ; <i32> [#uses=0]
ret void
}

View File

@@ -1,18 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
; Dominance relationships is not calculated correctly for unreachable blocks,
; which causes the verifier to barf on this input.
define i32 @test(i1 %b) {
BB0:
ret i32 7 ; Loop is unreachable
Loop: ; preds = %L2, %Loop
%B = phi i32 [ %B, %L2 ], [ %B, %Loop ] ;PHI has same value always.
br i1 %b, label %L2, label %Loop
L2: ; preds = %Loop
br label %Loop
}

View File

@@ -1,9 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
; This testcase comes from the following really simple c file:
;; int foo[30000]
;;; We should not be soo slow for such a simple case!
@foo = global [30000 x i32] zeroinitializer ; <[30000 x i32]*> [#uses=0]
declare void @__main()

View File

@@ -1,6 +0,0 @@
; RUN: llvm-as < %s | llvm-dis
; RUN: verify-uselistorder %s
%Domain = type { %Domain**, %Domain* }
@D = global %Domain zeroinitializer ; <%Domain*> [#uses=0]

View File

@@ -1,8 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
@X = external global i32*
@X1 = external global %T*
@X2 = external global i32*
%T = type {i32}

View File

@@ -1,5 +0,0 @@
; RUN: llvm-as %s -o /dev/null
; RUN: verify-uselistorder %s
@spell_order = global [4 x i8] c"\FF\00\F7\00"

Some files were not shown because too many files have changed in this diff Show More