1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/test/Transforms
Duncan P. N. Exon Smith 0c1aee0b16 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.

llvm-svn: 246327
2015-08-28 20:26:49 +00:00
..
ADCE
AddDiscriminators DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
AlignmentFromAssumptions
ArgumentPromotion DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
AtomicExpand Fix an alignment error in llvm::expandAtomicRMWToCmpXchg without breaking the build where X86 isn't enabled. 2015-08-06 16:55:03 +00:00
BBVectorize
BDCE
BranchFolding Address post-commit review from r243378. 2015-08-11 00:20:24 +00:00
CodeExtractor
CodeGenPrepare
ConstantHoisting
ConstantMerge
ConstProp [test] (NFC) Simplify Transforms/ConstProp/calls.ll 2015-08-28 18:04:20 +00:00
CorrelatedValuePropagation
DeadArgElim DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
DeadStoreElimination DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
EarlyCSE Allow value forwarding past release fences in EarlyCSE 2015-08-27 01:32:33 +00:00
EliminateAvailableExternally Don't change the visibility when converting a definition to a declaration. 2015-07-13 14:18:22 +00:00
Float2Int
FunctionAttrs
GCOVProfiling DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
GlobalDCE
GlobalOpt DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
GVN DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
IndVarSimplify Make ScalarEvolution::isKnownPredicate a little smarter 2015-08-19 01:51:51 +00:00
Inline DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
InstCombine DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
InstMerge
InstSimplify [InstSimplify] add nuw %x, C2 must be at least C2 2015-08-20 23:01:41 +00:00
Internalize Internalize: internalize comdat members as a group, and drop comdat on such members. 2015-07-16 17:42:21 +00:00
IPConstantProp
IRCE
JumpThreading
LCSSA
LICM DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoadCombine
LoopDeletion
LoopDistribute [LAA] Hold bounds via ValueHandles during SCEV expansion 2015-08-21 23:19:57 +00:00
LoopIdiom DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopInterchange
LoopReroll Handle loop with negtive induction variable increment 2015-07-24 22:01:49 +00:00
LoopRotate DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopSimplify DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopStrengthReduce DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopUnroll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LoopUnswitch [LoopUnswitch] Preserve make.implicit metadata for unswitched conditions 2015-08-05 21:13:26 +00:00
LoopVectorize DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LowerAtomic
LowerBitSets LowerBitSets: Ignore bitset entries that do not directly refer to a global. 2015-06-27 00:17:51 +00:00
LowerExpectIntrinsic
LowerInvoke
LowerSwitch [LowerSwitch] Fix a bug when LowerSwitch deletes the default block 2015-08-11 18:12:26 +00:00
Mem2Reg DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
MemCpyOpt Emit argmemonly attribute for intrinsics. 2015-08-13 17:40:04 +00:00
MergeFunc Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
MetaRenamer
NaryReassociate [NaryReassociate] enhances nsw by leveraging @llvm.assume 2015-07-01 03:38:49 +00:00
ObjCARC DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints [Statepoints] Let patchable statepoints have a symbolic call target. 2015-07-28 23:50:30 +00:00
PruneEH [PruneEH] A naked, noinline function can return via InlineAsm 2015-06-27 07:52:53 +00:00
Reassociate Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
Reg2Mem
RewriteStatepointsForGC [RewriteStatepointsForGC] Reduce the number of new instructions for base pointers 2015-08-27 01:02:28 +00:00
SafeStack
SampleProfile DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
Scalarizer DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
ScalarRepl DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
SCCP [ConstantFolding] Support folding loads from a GlobalAlias 2015-07-22 22:29:30 +00:00
SeparateConstOffsetFromGEP [SeparateConstOffsetFromGEP] sext(a)+sext(b) => sext(a+b) when a+b can't sign-overflow. 2015-08-14 02:02:05 +00:00
SimplifyCFG DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
Sink
SLPVectorizer DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
SpeculativeExecution
SROA [SROA] Fix PR24463, a crash I introduced in SROA by allowing it to 2015-08-28 09:03:52 +00:00
StraightLineStrengthReduce [SeparateConstOffsetFromGEP] strengthen the inbounds attribute 2015-08-13 18:48:49 +00:00
StripSymbols DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
StructurizeCFG
TailCallElim Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
TailDup
Util