From 1fcfe32e515faab3ba9d4c65889aa2f9b867a302 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 26 Sep 2005 04:43:01 +0000 Subject: [PATCH] make this harder: put some code into it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23436 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/GlobalOpt/ctor-list-opt.ll | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/test/Transforms/GlobalOpt/ctor-list-opt.ll b/test/Transforms/GlobalOpt/ctor-list-opt.ll index 388f53d4f68..d71f9760912 100644 --- a/test/Transforms/GlobalOpt/ctor-list-opt.ll +++ b/test/Transforms/GlobalOpt/ctor-list-opt.ll @@ -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 +}