llvm-6502/test/Transforms/GlobalOpt
Dan Gohman 43873d4f73 Use range metadata instead of introducing selects.
When GlobalOpt has determined that a GlobalVariable only ever has two values,
it would convert the GlobalVariable to a boolean, and introduce SelectInsts
at every load, to choose between the two possible values. These SelectInsts
introduce overhead and other unpleasantness.

This patch makes GlobalOpt just add range metadata to loads from such
GlobalVariables instead. This enables the same main optimization (as seen in
test/Transforms/GlobalOpt/integer-bool.ll), without introducing selects.

The main downside is that it doesn't get the memory savings of shrinking such
GlobalVariables, but this is expected to be negligible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204076 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-17 19:57:04 +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
2008-01-29-VolatileGlobal.ll
2008-04-26-SROA-Global-Align.ll
2008-07-17-addrspace.ll Quote potential shell expansions found in tests 2013-10-28 23:37:45 +00:00
2008-12-16-HeapSRACrash-2.ll
2008-12-16-HeapSRACrash.ll
2009-01-13-phi-user.ll
2009-02-15-BitcastAlias.ll Reject alias to undefined symbols in the verifier. 2014-03-12 20:15:49 +00:00
2009-02-15-ResolveAlias.ll
2009-03-05-dbg.ll Debug Info Testing: update context from empty string to null. 2013-09-08 03:11:54 +00:00
2009-03-06-Anonymous.ll
2009-03-07-PromotePtrToBool.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
2009-06-01-RecursivePHI.ll
2009-11-16-BrokenPerformHeapAllocSRoA.ll
2009-11-16-MallocSingleStoreToGlobalVar.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
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
alias-resolve.ll Reject alias to undefined symbols in the verifier. 2014-03-12 20:15:49 +00:00
alias-used-address-space.ll Fix addrspacecast with metadata globals 2014-01-02 19:53:49 +00:00
alias-used-section.ll GlobalOpt: Aliases don't have sections, don't copy them when replacing 2014-02-13 02:18:36 +00:00
alias-used.ll
array-elem-refs.ll Fix a use-after-free error in GlobalOpt CleanupConstantGlobalUsers 2013-12-12 20:45:24 +00:00
atexit.ll
atomic.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
basictest.ll
blockaddress.ll
cleanup-pointer-root-users.ll
compiler-used.ll
constantexpr-dangle.ll
constantfold-initializers.ll
crash-2.ll
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
externally-initialized-global-ctr.ll
fastcc.ll GlobalOpt: Apply fastcc to internal x86_thiscallcc functions 2014-02-26 19:57:30 +00:00
globalsra-partial.ll
globalsra-unknown-index.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
globalsra.ll
heap-sra-1.ll
heap-sra-2.ll
heap-sra-3.ll
heap-sra-4.ll
heap-sra-phi.ll
integer-bool.ll Use range metadata instead of introducing selects. 2014-03-17 19:57:04 +00:00
invariant-nodatalayout.ll
invariant.ll
invoke.ll
iterate.ll
load-store-global.ll
malloc-promote-1.ll
malloc-promote-2.ll
malloc-promote-3.ll
memcpy.ll
memset-null.ll
memset.ll Delete unread globals through addrspacecast 2014-01-02 20:01:43 +00:00
metadata.ll Revert r191834 until we measure the effect of this benchmarks and maybe find a better way to fix it 2013-10-07 19:03:24 +00:00
phi-select.ll
storepointer-compare.ll
storepointer.ll
tls.ll
trivialstore.ll
twostore-gv-range.ll Use range metadata instead of introducing selects. 2014-03-17 19:57:04 +00:00
undef-init.ll
unnamed-addr.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
zeroinitializer-gep-load.ll