llvm/test/Transforms/ScalarRepl
Duncan P. N. Exon Smith a5ae7c1c9f DI: Require subprogram definitions to be distinct
As a follow-up to r246098, require `DISubprogram` definitions
(`isDefinition: true`) to be 'distinct'.  Specifically, add an assembler
check, a verifier check, and bitcode upgrading logic to combat testcase
bitrot after the `DIBuilder` change.

While working on the testcases, I realized that
test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore.  Its
purpose was to check for a corner case in PR22792 where two subprogram
definitions match exactly and share the same metadata node.  The new
verifier check, requiring that subprogram definitions are 'distinct',
precludes that possibility.

I updated almost all the IR with the following script:

    git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' |
    grep -v test/Bitcode |
    xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/'

Likely some variant of would work for out-of-tree testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246327 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-28 20:26:49 +00:00
..
2003-05-29-ArrayFail.ll
2003-09-12-IncorrectPromote.ll
2003-10-29-ArrayProblem.ll
2006-11-07-InvalidArrayPromote.ll
2007-05-29-MemcpyPreserve.ll
2007-11-03-bigendian_apint.ll
2008-01-29-PromoteBug.ll
2008-02-28-SubElementExtractCrash.ll
2008-06-05-loadstore-agg.ll
2008-06-22-LargeArray.ll
2008-08-22-out-of-range-array-promote.ll
2008-09-22-vector-gep.ll
2009-02-02-ScalarPromoteOutOfRange.ll
2009-02-05-LoadFCA.ll
2009-03-04-MemCpyAlign.ll
2009-12-11-NeonTypes.ll
2010-01-18-SelfCopy.ll
2011-05-06-CapturedAlloca.ll
2011-06-08-VectorExtractValue.ll
2011-06-17-VectorPartialMemset.ll
2011-09-22-PHISpeculateInvoke.ll
2011-10-11-VectorMemset.ll
2011-10-22-VectorCrash.ll
2011-11-11-EmptyStruct.ll
address-space.ll
AggregatePromote.ll
arraytest.ll
badarray.ll
basictest.ll
bitfield-sroa.ll
copy-aggregate.ll
crash.ll
debuginfo-preserved.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
DifferingTypes.ll
inline-vector.ll
lifetime.ll
load-store-aggregate.ll
memcpy-align.ll
memset-aggregate-byte-leader.ll
memset-aggregate.ll
negative-memset.ll
nonzero-first-index.ll
not-a-vector.ll
only-memcpy-uses.ll
phi-cycle.ll
phi-select.ll
phinodepromote.ll
select_promote.ll
sroa_two.ll
sroa-fca.ll
union-fp-int.ll
union-packed.ll
union-pointer.ll
vector_memcpy.ll
vector_promote.ll
vectors-with-mismatched-elements.ll
volatile.ll