make this harder: put some code into it
authorChris Lattner <sabre@nondot.org>
Mon, 26 Sep 2005 04:43:01 +0000 (04:43 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 26 Sep 2005 04:43:01 +0000 (04:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23436 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/GlobalOpt/ctor-list-opt.ll

index 388f53d4f6841b376ee812474de4d68733afdc51..d71f9760912f20619dbffb67918aff126481245f 100644 (file)
@@ -1,14 +1,31 @@
 ; RUN: llvm-as < %s | opt -globalopt -disable-output &&
 ; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep CTOR
 
-%llvm.global_ctors = appending global [2 x { int, void ()* }] [ 
+%llvm.global_ctors = appending global [4 x { int, void ()* }] [ 
   { int, void ()* } { int 65535, void ()* %CTOR1 },
-  { int, void ()* } { int 65535, void ()* %CTOR1 }
+  { int, void ()* } { int 65535, void ()* %CTOR1 },
+  { int, void ()* } { int 65535, void ()* %CTOR2 },
+  { int, void ()* } { int 2147483647, void ()* null }
 ]
 
+%G = global int 0
+
+%CTORGV = internal global bool false    ;; Should become constant after eval
+
 implementation
 
 internal void %CTOR1() {   ;; noop ctor, remove.
         ret void
 }
 
+internal void %CTOR2() {   ;; evaluate the store
+       %A = add int 1, 23
+       store int %A, int* %G
+       store bool true, bool* %CTORGV
+        ret void
+}
+
+bool %accessor() {
+       %V = load bool* %CTORGV   ;; constant true
+       ret bool %V
+}