diff options
-rw-r--r-- | test/Transforms/DSAnalysis/basictest.ll | 22 | ||||
-rw-r--r-- | test/Transforms/DSAnalysis/indcalltest.ll | 32 | ||||
-rw-r--r-- | test/Transforms/DSAnalysis/simpletest.ll | 11 |
3 files changed, 65 insertions, 0 deletions
diff --git a/test/Transforms/DSAnalysis/basictest.ll b/test/Transforms/DSAnalysis/basictest.ll new file mode 100644 index 0000000000..407d495375 --- /dev/null +++ b/test/Transforms/DSAnalysis/basictest.ll @@ -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 +} + diff --git a/test/Transforms/DSAnalysis/indcalltest.ll b/test/Transforms/DSAnalysis/indcalltest.ll new file mode 100644 index 0000000000..a45c3b9a12 --- /dev/null +++ b/test/Transforms/DSAnalysis/indcalltest.ll @@ -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 +} diff --git a/test/Transforms/DSAnalysis/simpletest.ll b/test/Transforms/DSAnalysis/simpletest.ll new file mode 100644 index 0000000000..f600136db8 --- /dev/null +++ b/test/Transforms/DSAnalysis/simpletest.ll @@ -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 +} |