llvm-6502/test/Transforms/GlobalOpt
Zhou Sheng 702aa2ee19 The patch is to improve the memory footprint of pass GlobalOpt.
Also check in a case to repeat the issue, on which 'opt -globalopt' consumes 1.6GB memory.
The big memory footprint cause is that current GlobalOpt one by one hoists and stores the leaf element constant into the global array, in each iteration, it recreates the global array initializer constant and leave the old initializer alone. This may result in many obsolete constants left.
For example:  we have global array @rom = global [16 x i32] zeroinitializer
After the first element value is hoisted and installed:   @rom = global [16 x i32] [ 1, 0, 0, ... ]
After the second element value is installed:  @rom = global [16 x 32] [ 1, 2, 0, 0, ... ]        // here the previous initializer is obsolete
...
When the transform is done, we have 15 obsolete initializers left useless.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169079 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-01 04:38:53 +00:00
..
2004-10-10-CastStoreOnce.ll
2005-06-15-LocalizeConstExprCrash.ll
2005-09-27-Crash.ll
2006-07-07-InlineAsmCrash.ll
2006-11-01-ShrinkGlobalPhiCrash.ll
2007-04-05-Crash.ll
2007-05-13-Crash.ll
2007-06-04-PackedStruct.ll
2007-11-09-GEP-GEP-Crash.ll
2008-01-03-Crash.ll
2008-01-13-OutOfRangeSROA.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-01-29-VolatileGlobal.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-04-26-SROA-Global-Align.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-07-17-addrspace.ll
2008-12-16-HeapSRACrash-2.ll
2008-12-16-HeapSRACrash.ll
2009-01-13-phi-user.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2009-02-15-BitcastAlias.ll
2009-02-15-ResolveAlias.ll
2009-03-05-dbg.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2009-03-06-Anonymous.ll
2009-03-07-PromotePtrToBool.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2009-06-01-RecursivePHI.ll
2009-11-16-BrokenPerformHeapAllocSRoA.ll Teach globalopt to not nuke all stores to globals. Keep them around of they 2012-07-24 07:21:08 +00:00
2009-11-16-MallocSingleStoreToGlobalVar.ll
2010-02-25-MallocPromote.ll
2010-02-26-MallocSROA.ll
2010-10-19-WeakOdr.ll
2011-04-09-EmptyGlobalCtors.ll
2012-05-11-blockaddress.ll Teach Function::hasAddressTaken that BlockAddress doesn't really take 2012-05-12 08:30:16 +00:00
alias-resolve.ll
atomic.ll
basictest.ll
big-memory-footprint.ll The patch is to improve the memory footprint of pass GlobalOpt. 2012-12-01 04:38:53 +00:00
blockaddress.ll Constant::IsThreadDependent(): Use dyn_cast<Constant> instead of cast 2012-11-16 10:33:25 +00:00
cleanup-pointer-root-users.ll Add testcases for GlobalOpt changes in r160693 and r160757. 2012-07-29 01:15:37 +00:00
constantexpr-dangle.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
constantfold-initializers.ll Fix a crash on valid (if UB) bitcode that is produced for some global 2012-04-24 18:42:47 +00:00
crash.ll
ctor-list-opt-constexpr.ll
ctor-list-opt-inbounds.ll
ctor-list-opt.ll
cxx-dtor.ll
deadfunction.ll
deadglobal-2.ll
deadglobal.ll Implement the isSafeToDiscardIfUnused predicate and use it in globalopt and 2012-06-14 22:48:13 +00:00
globalsra-partial.ll
globalsra-unknown-index.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
globalsra.ll
heap-sra-1.ll
heap-sra-2.ll
heap-sra-3.ll
heap-sra-4.ll
heap-sra-phi.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
integer-bool.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
invariant.ll Check for the correct size in the invariant marker. 2012-02-20 23:32:26 +00:00
invoke.ll Teach globalopt how to evaluate an invoke with a non-void return type. 2012-03-13 18:01:37 +00:00
iterate.ll
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
load-store-global.ll GlobalOpt: non-constexpr bitcasts or GEPs can occur even if the global value is only stored once. 2012-09-28 10:01:27 +00:00
malloc-promote-1.ll
malloc-promote-2.ll
memcpy.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
memset-null.ll
memset.ll
metadata.ll
phi-select.ll
storepointer-compare.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
storepointer.ll
tls.ll Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
trivialstore.ll
undef-init.ll
unnamed-addr.ll GlobalOpt forgot to handle bitcast when analyzing globals. Found by inspection. 2012-07-02 18:55:39 +00:00
zeroinitializer-gep-load.ll GlobalOpt: If we have an inbounds GEP from a ConstantAggregateZero global that we just determined to be constant, replace all loads from it with a zero value. 2012-03-28 14:50:09 +00:00