1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Verifier
Florian Hahn 041da6277f Add !annotation metadata and remarks pass.
This patch adds a new !annotation metadata kind which can be used to
attach annotation strings to instructions.

It also adds a new pass that emits summary remarks per function with the
counts for each annotation kind.

The intended uses cases for this new metadata is annotating
'interesting' instructions and the remarks should provide additional
insight into transformations applied to a program.

To motivate this, consider these specific questions we would like to get answered:

* How many stores added for automatic variable initialization remain after optimizations? Where are they?
* How many runtime checks inserted by a frontend could be eliminated? Where are the ones that did not get eliminated?

Discussed on llvm-dev as part of 'RFC: Combining Annotation Metadata and Remarks'
(http://lists.llvm.org/pipermail/llvm-dev/2020-November/146393.html)

Reviewed By: thegameg, jdoerfert

Differential Revision: https://reviews.llvm.org/D91188
2020-11-13 13:24:10 +00:00
..
AMDGPU
ARM
Mips
SystemZ
2002-04-13-RetTypes.ll
2002-11-05-GetelementptrPointers.ll
2004-05-21-SwitchConstantMismatch.ll
2006-07-11-StoreStruct.ll
2006-10-15-AddrLabel.ll
2006-12-12-IntrinsicDefine.ll
2007-12-21-InvokeParamAttrs.ll
2008-01-11-VarargAttrs.ll
2008-03-01-AllocaSized.ll
2008-11-15-RetVoid.ll
2009-05-29-InvokeResult1.ll
2009-05-29-InvokeResult2.ll
2009-05-29-InvokeResult3.ll
2010-08-07-PointerIntrinsic.ll
alias.ll
align-md.ll
align.ll Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
alloc-size-failedparse.ll
allocsize.ll
AmbiguousPhi.ll
amdgpu-cc.ll
annotation-metadata.ll Add !annotation metadata and remarks pass. 2020-11-13 13:24:10 +00:00
array_allocated.ll
array_associated.ll
array_dataLocation.ll
array_rank.ll [DebugInfo] Support for DWARF attribute DW_AT_rank 2020-10-10 17:51:12 +05:30
assume-bundles.ll
atomics.ll
bitcast-address-space-nested-global-cycle.ll
bitcast-address-space-nested-global.ll
bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll
bitcast-address-space-through-constant-inttoptr.ll
bitcast-address-space-through-gep-2.ll
bitcast-address-space-through-gep.ll
bitcast-address-space-through-inttoptr.ll
bitcast-address-spaces.ll
bitcast-alias-address-space.ll
bitcast-pointer-vector-neg.ll
bitcast-vector-pointer-as-neg.ll
bitcast-vector-pointer-as.ll
bitcast-vector-pointer-neg.ll
bitcast-vector-pointer-pos.ll
blockbyref.ll
bswap.ll
byref.ll Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
byval-1.ll
byval-4.ll
callbr.ll
callsite-dbgloc.ll
cc-flags.ll
comdat2.ll
comdat3.ll
comdat-decl1.ll
comdat-decl2.ll
comdat.ll
commandline-meta1.ll
commandline-meta2.ll
commandline-meta3.ll
commandline-meta4.ll
cttz-undef-arg.ll
dbg-difile-crash.ll
dbg-invalid-compileunit.ll
dbg-invalid-named-metadata.ll
dbg-invalid-retaintypes.ll
dbg-invalid-vector.ll
dbg-line-without-file.ll
dbg-null-retained-type.ll
dbg-orphaned-compileunit.ll
dbg-typerefs.ll
dbg.ll
deoptimize-intrinsic.ll
dereferenceable-md-inttoptr.ll
dereferenceable-md.ll
di-subroutine-localvar.ll
diderivedtype-address-space-atomic-type.ll
diderivedtype-address-space-const-type.ll
diderivedtype-address-space-friend.ll
diderivedtype-address-space-inheritance.ll
diderivedtype-address-space-member.ll
diderivedtype-address-space-ptr-to-member-type.ll
diderivedtype-address-space-restrict-type.ll
diderivedtype-address-space-rvalue-reference-type.ll
diderivedtype-address-space-typedef.ll
diderivedtype-address-space-volatile-type.ll
diexpression-dwarf-entry-value.ll
diexpression-entry-value-llvm-ir.ll
diexpression-entry-value.ll
diexpression-swap.ll
diexpression-valid-entry-value.ll
DIFile.ll
digenericsubrange-count-upperBound.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
digenericsubrange-missing-stride.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
digenericsubrange-missing-upperBound.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
diglobalvariable.ll
dilocation-in-wrong-place.ll
DILocation-parents.ll
DILocation-scope.ll
disubprogram-name-match-only.ll
DISubprogram.ll
disubrange-count-upperBound.ll
disubrange-missing-upperBound.ll
dominates.ll
element-wise-atomic-memory-intrinsics.ll
fnarg-debuginfo.ll
fnarg-nodebug.ll
fp-intrinsics.ll [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
fpmath.ll
fragment.ll
frameescape.ll
func-dbg.ll
function-attribute-nossp-ssp-sspreq-sspstrong.ll [IR] add fn attr for no_stack_protector; prevent inlining on mismatch 2020-10-23 11:55:39 -07:00
function-metadata-bad.ll
function-metadata-good.ll
gc_relocate_addrspace.ll
gc_relocate_operand.ll
gc_relocate_return.ll
gcread-ptrptr.ll
gcroot.ll
gcwrite-ptrptr.ll
get-active-lane-mask.ll
global-ctors-2.ll
global-ctors.ll
guard-intrinsic.ll
ident-meta1.ll
ident-meta2.ll
ident-meta3.ll
ident-meta4.ll
immarg-param-attribute-invalid.ll
inalloca1.ll
inalloca2.ll
inalloca3.ll
inalloca-vararg.ll
intrinsic-arg-overloading-struct-ret.ll
intrinsic-bad-arg-type.ll
intrinsic-immarg.ll
invalid-disubrange-count-node.ll
invalid-disubrange-lowerBound.ll
invalid-disubrange-stride.ll
invalid-disubrange-upperBound.ll
invalid-eh.ll
invalid-frame-pointer-attr-empty.ll
invalid-frame-pointer-attr-no-value.ll
invalid-frame-pointer-attr.ll
invalid-patchable-function-entry.ll
invalid-statepoint.ll
invoke.ll
jumptable.ll
llvm.compiler_used-invalid-type.ll
llvm.dbg.declare-address.ll
llvm.dbg.declare-expression.ll
llvm.dbg.declare-variable.ll
llvm.dbg.intrinsic-dbg-attachment.ll
llvm.dbg.value-expression.ll
llvm.dbg.value-value.ll
llvm.dbg.value-variable.ll
llvm.loop.cu.ll
llvm.loop.ll
llvm.used-invalid-init2.ll
llvm.used-invalid-init.ll
llvm.used-invalid-type2.ll
llvm.used-invalid-type.ll
llvm.used-ptr-type.ll
masked-load.ll
masked-store.ll
matrix-intrinsics.ll
mdcompositetype-templateparams-tuple.ll
mdcompositetype-templateparams.ll
memcpy-inline.ll
memcpy.ll
metadata-function-dbg.ll
metadata-function-prof.ll
module-flags-1.ll
module-flags-2.ll
module-flags-3.ll
module-flags-cgprofile.ll
module-flags-semantic-interposition.ll
musttail-invalid.ll
musttail-valid.ll
non-integer-gep-index.ll
non-integer-gep-index.ll.bc
non-integral-pointers.ll
noundef.ll Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
operand-bundles.ll
PhiGrouping.ll
pr34325.ll
preallocated-invalid.ll
preallocated-valid.ll
range-1.ll
range-2.ll
README.txt
recursive-struct-param.ll
recursive-type-1.ll
recursive-type-2.ll
recursive-type-3.ll
recursive-type-load.ll
recursive-type-store.ll
resume.ll
scalable-global-vars.ll
scatter_gather.ll
SelfReferential.ll
speculatable-callsite-invalid.ll
speculatable-callsite.ll
sret.ll
statepoint.ll
swifterror2.ll
swifterror3.ll
swifterror.ll
swiftself.ll
tbaa-allowed.ll
tbaa.ll
token1.ll
token2.ll
token3.ll
token4.ll
token5.ll
token6.ll
token7.ll
unique-disubprogram.ll Add a verifier check that rejects non-distinct DISubprogram function 2020-09-25 12:04:46 -07:00
unsized-types-alloca.ll
unsized-types-load.ll
unsized-types-store.ll
varargs-intrinsic.ll
variant-part.ll
vp-intrinsics.ll
weak-dllimport.ll
writeonly.ll

This directory contains testcases that the verifier is supposed to detect as
malformed LLVM code.  Testcases for situations that the verifier incorrectly
identifies as malformed should go in the test/Assembler directory.