parent
61596ad266
commit
237e9c0710
|
@ -0,0 +1,22 @@
|
||||||
|
|
||||||
|
; very simple test
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
int *%foo(ulong %A, double %B, long %C) {
|
||||||
|
%X = malloc int*
|
||||||
|
%D = cast int** %X to ulong
|
||||||
|
%E = cast ulong %D to int*
|
||||||
|
store int* %E, int** %X
|
||||||
|
|
||||||
|
%F = malloc {int}
|
||||||
|
%G = getelementptr {int}* %F, long 0, ubyte 0
|
||||||
|
store int* %G, int** %X
|
||||||
|
|
||||||
|
%K = malloc int **
|
||||||
|
store int** %X, int***%K
|
||||||
|
|
||||||
|
%H = cast long %C to int*
|
||||||
|
ret int* null ; %H
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
%G = global int 2 ; <int*> [#uses=1]
|
||||||
|
%H = global int* null
|
||||||
|
|
||||||
|
%I = global int** null
|
||||||
|
%J = global int** null
|
||||||
|
|
||||||
|
implementation ; Functions:
|
||||||
|
|
||||||
|
void %foo1() {
|
||||||
|
store int* %G, int** %H
|
||||||
|
store int** %H, int ***%I
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
void %foo2() { ; No predecessors!
|
||||||
|
store int 7, int* %G
|
||||||
|
store int** %H, int ***%J
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
void %test(bool %cond) {
|
||||||
|
; <label>:0 ; No predecessors!
|
||||||
|
br bool %cond, label %call, label %F
|
||||||
|
|
||||||
|
F: ; preds = %0
|
||||||
|
br label %call
|
||||||
|
|
||||||
|
call: ; preds = %F, %0
|
||||||
|
%Fn = phi void ()* [ %foo2, %F ], [ %foo1, %0 ] ; <void ()*> [#uses=1]
|
||||||
|
call void %Fn()
|
||||||
|
ret void
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
int *%foo(int *%A, int **%B, int *%C, int **%D, int* %E) {
|
||||||
|
%a = load int* %A
|
||||||
|
%b = load int** %B
|
||||||
|
|
||||||
|
store int* %C, int** %D
|
||||||
|
|
||||||
|
ret int* %E
|
||||||
|
}
|
Loading…
Reference in New Issue