Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,7 @@
declare i32 @bar() local_unnamed_addr #1
define i32 @foo() local_unnamed_addr #0 {
entry:
%call = tail call i32 @bar() #2
ret i32 %call
}

View File

@@ -0,0 +1,7 @@
declare i32 @foo() local_unnamed_addr #1
define i32 @bar() local_unnamed_addr #0 {
entry:
%call = tail call i32 @foo() #2
ret i32 %call
}

View File

@@ -0,0 +1,17 @@
@indirect_bar = internal local_unnamed_addr global i32 ()* @bar, align 4
@indirect_foo = internal local_unnamed_addr global i32 ()* @foo, align 4
declare i32 @foo() local_unnamed_addr
define i32 @bar() {
entry:
ret i32 1
}
define void @call_bar_indirect() local_unnamed_addr #1 {
entry:
%0 = load i32 ()*, i32 ()** @indirect_bar, align 4
%1 = load i32 ()*, i32 ()** @indirect_foo, align 4
%call = tail call i32 %0() #2
ret void
}

View File

@@ -0,0 +1,14 @@
define hidden void @myctor() {
entry:
ret void
}
define hidden void @mydtor() {
entry:
%ptr = alloca i32
ret void
}
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @myctor, i8* null }]
@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @mydtor, i8* null }]

View File

@@ -0,0 +1,15 @@
; Wasm module generated from the following C code:
; void puts(const char*);
; void hello() { puts("hello\n"); }
@hello_str = unnamed_addr constant [7 x i8] c"hello\0A\00", align 1
; Function Attrs: nounwind
define hidden void @hello() local_unnamed_addr #0 {
entry:
tail call void @puts(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @hello_str, i32 0, i32 0))
ret void
}
; Function Attrs: nounwind
declare void @puts(i8* nocapture readonly) local_unnamed_addr #1

View File

@@ -0,0 +1,11 @@
; Function Attrs: norecurse nounwind readnone
define hidden i32 @archiveHidden() #0 {
entry:
ret i32 0
}
; Function Attrs: norecurse nounwind readnone
define i32 @archiveDefault() #1 {
entry:
ret i32 0
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
; Function Attrs: norecurse nounwind readnone
define i32 @ret32(float %arg) #0 {
entry:
ret i32 0
; ptrtoint (i32 (float)* @ret32 to i32)
}

View File

@@ -0,0 +1,4 @@
define i64 @ret64(double %arg) local_unnamed_addr #0 {
entry:
ret i64 1
}

View File

@@ -0,0 +1,37 @@
; Function Attrs: norecurse nounwind readnone
define i32 @direct_fn() #0 {
entry:
ret i32 0
}
@alias_fn = weak alias i32 (), i32 ()* @direct_fn
define i32 @call_direct() #0 {
entry:
%call = call i32 @direct_fn()
ret i32 %call
}
define i32 @call_alias() #0 {
entry:
%call = call i32 @alias_fn()
ret i32 %call
}
define i32 @call_alias_ptr() #0 {
entry:
%fnptr = alloca i32 ()*, align 8
store i32 ()* @alias_fn, i32 ()** %fnptr, align 8
%0 = load i32 ()*, i32 ()** %fnptr, align 8
%call = call i32 %0()
ret i32 %call
}
define i32 @call_direct_ptr() #0 {
entry:
%fnptr = alloca i32 ()*, align 8
store i32 ()* @direct_fn, i32 ()** %fnptr, align 8
%0 = load i32 ()*, i32 ()** %fnptr, align 8
%call = call i32 %0()
ret i32 %call
}

View File

@@ -0,0 +1,11 @@
define weak i32 @weakFn() #0 {
entry:
ret i32 1
}
define i32 @exportWeak1() {
entry:
ret i32 ptrtoint (i32 ()* @weakFn to i32)
}
@weakGlobal = weak global i32 1

View File

@@ -0,0 +1,11 @@
define weak i32 @weakFn() #0 {
entry:
ret i32 2
}
define i32 @exportWeak2() {
entry:
ret i32 ptrtoint (i32 ()* @weakFn to i32)
}
@weakGlobal = weak global i32 2