llvm-6502/test/Transforms/GlobalOpt
Bill Wendling 2b7923665d Use a worklist to avoid a sneaky iterator invalidation.
The iterator could be invalidated when it's recursively deleting a whole bunch
of constant expressions in a constant initializer.

Note: This was only reproducible if `opt' was run on a `.bc' file. If `opt' was
run on a `.ll' file, it wouldn't crash. This is why the test first pushes the
`.ll' file through `llvm-as' before feeding it to `opt'.

PR15440


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178531 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-02 08:16:45 +00:00
..
2004-10-10-CastStoreOnce.ll
2005-06-15-LocalizeConstExprCrash.ll
2005-09-27-Crash.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2006-07-07-InlineAsmCrash.ll
2006-11-01-ShrinkGlobalPhiCrash.ll
2007-04-05-Crash.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
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 manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
2008-12-16-HeapSRACrash.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
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 Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +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 Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
2010-02-26-MallocSROA.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
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 Teach GlobalOpt to handle atomic accesses to globals. 2012-02-05 19:56:38 +00:00
basictest.ll
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-2.ll Use a worklist to avoid a sneaky iterator invalidation. 2013-04-02 08:16:45 +00:00
crash.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
ctor-list-opt-constexpr.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
ctor-list-opt-inbounds.ll
ctor-list-opt.ll
cxx-dtor.ll GlobalOpt: Be more aggressive about elminating side-effect free static dtors. 2012-02-09 14:26:06 +00:00
deadfunction.ll Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. 2011-10-20 05:23:42 +00:00
deadglobal-2.ll
deadglobal.ll Implement the isSafeToDiscardIfUnused predicate and use it in globalopt and 2012-06-14 22:48:13 +00:00
externally-initialized-global-ctr.ll Added missing newline to end of test case. 2013-02-05 19:39:44 +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 Fix test case. 2013-03-09 18:34:27 +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 Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
memset.ll rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
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 Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +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