diff --git a/test/Analysis/DSGraph/buglobals.ll b/test/Analysis/DSGraph/buglobals.ll new file mode 100644 index 00000000000..11fc72c429e --- /dev/null +++ b/test/Analysis/DSGraph/buglobals.ll @@ -0,0 +1,21 @@ +; This tests to make sure that G ends up in the globals graph of the BU pass. +; If it is not, then %G will get converted to a 'constant' from a 'global' +; +; RUN: as < %s | opt -ds-opt -globaldce | dis | grep %G + + +%G = internal global int 0 ; [#uses=2] + +implementation ; Functions: + +internal void %foo() { + %tmp.0 = load int* %G ; [#uses=1] + %tmp.1 = add int %tmp.0, 1 ; [#uses=1] + store int %tmp.1, int* %G + ret void +} + +int %main() { + call void %foo( ) + ret int 0 +} diff --git a/test/Analysis/DSGraph/constantize.ll b/test/Analysis/DSGraph/constantize.ll new file mode 100644 index 00000000000..08f03383723 --- /dev/null +++ b/test/Analysis/DSGraph/constantize.ll @@ -0,0 +1,13 @@ +; Make sure that the ds-opt pass is constantizing globals +; +; RUN: as < %s | opt -ds-opt | dis | grep %G | grep constant + + +%G = internal global int 0 ; [#uses=2] + +implementation ; Functions: + +int %main() { + %A = load int* %G + ret int %A +}