llvm-6502/test/Transforms/GlobalOpt
Rafael Espindola f165cf7ce8 Prevent alias from pointing to weak aliases.
This adds back r204781.

Original message:

Aliases are just another name for a position in a file. As such, the
regular symbol resolutions are not applied. For example, given

define void @my_func() {
  ret void
}
@my_alias = alias weak void ()* @my_func
@my_alias2 = alias void ()* @my_alias

We produce without this patch:

        .weak   my_alias
my_alias = my_func
        .globl  my_alias2
my_alias2 = my_alias

That is, in the resulting ELF file my_alias, my_func and my_alias are
just 3 names pointing to offset 0 of .text. That is *not* the
semantics of IR linking. For example, linking in a

@my_alias = alias void ()* @other_func

would require the strong my_alias to override the weak one and
my_alias2 would end up pointing to other_func.

There is no way to represent that with aliases being just another
name, so the best solution seems to be to just disallow it, converting
a miscompile into an error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204934 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 15:26:56 +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
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 Prevent alias from pointing to weak aliases. 2014-03-27 15:26:56 +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 Revert r204076 for now - it caused significant regressions in a number of 2014-03-23 04:22:31 +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
phi-select.ll
storepointer-compare.ll
storepointer.ll
tls.ll
trivialstore.ll
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