1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/test/Verifier
Sanjoy Das a0e8011216 [Verifier] Add verification for TBAA metadata
Summary:
This change adds some verification in the IR verifier around struct path
TBAA metadata.

Other than some basic sanity checks (e.g. we get constant integers where
we expect constant integers), this checks:

 - That by the time an struct access tuple `(base-type, offset)` is
   "reduced" to a scalar base type, the offset is `0`.  For instance, in
   C++ you can't start from, say `("struct-a", 16)`, and end up with
   `("int", 4)` -- by the time the base type is `"int"`, the offset
   better be zero.  In particular, a variant of this invariant is needed
   for `llvm::getMostGenericTBAA` to be correct.

 - That there are no cycles in a struct path.

 - That struct type nodes have their offsets listed in an ascending
   order.

 - That when generating the struct access path, you eventually reach the
   access type listed in the tbaa tag node.

Reviewers: dexonsmith, chandlerc, reames, mehdi_amini, manmanren

Subscribers: mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D26438

llvm-svn: 289402
2016-12-11 20:07:15 +00:00
..
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 Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2007-12-21-InvokeParamAttrs.ll
2008-01-11-VarargAttrs.ll
2008-03-01-AllocaSized.ll
2008-08-22-MemCpyAlignment.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
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 Upgrade old memset/memcpy signatures (without isVolatile argument) in tests 2016-06-22 15:16:06 +00:00
alias.ll Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
align-md.ll
alloc-size-failedparse.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
allocsize.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
AmbiguousPhi.ll
atomics.ll Polish atomic pointers 2015-12-17 22:09:19 +00:00
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-vector-pointer-as.ll
byval-1.ll
byval-4.ll
callsite-dbgloc.ll Verifier: Verify that each inlinable callsite of a debug-info-bearing function 2016-04-24 22:23:13 +00:00
comdat2.ll
comdat3.ll
comdat-decl1.ll
comdat-decl2.ll
comdat.ll
cttz-undef-arg.ll
dbg-difile-crash.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dbg-invalid-compileunit.ll [IRVerifier] Avoid crashing on an invalid compile unit. 2016-04-06 03:07:58 +00:00
dbg-invalid-named-metadata.ll Verifier: Reject any unknown named MD nodes in the llvm.dbg namespace. 2016-10-05 22:15:37 +00:00
dbg-invalid-retaintypes.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dbg-null-retained-type.ll
dbg-orphaned-compileunit.ll Add an IR Verifier check for orphaned DICompileUnits. 2016-03-28 21:06:26 +00:00
dbg-typerefs.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
dbg.ll
deoptimize-intrinsic.ll All llvm.deoptimize declarations must use the same calling convention 2016-05-12 01:17:38 +00:00
dereferenceable-md.ll
dominates.ll [Verifier] Reject PHIs using defs from own block. 2016-03-26 23:32:57 +00:00
fpmath.ll Verifier: Reject non-float !fpmath 2016-06-27 19:43:15 +00:00
frameescape.ll
func-dbg.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
function-metadata-bad.ll
function-metadata-good.ll
gc_relocate_addrspace.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
gc_relocate_operand.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
gc_relocate_return.ll [Statepoints] Initial support for relocating vectors of pointers 2016-01-07 03:32:11 +00:00
gcread-ptrptr.ll
gcroot-alloca.ll
gcroot-meta.ll
gcroot-ptrptr.ll
gcwrite-ptrptr.ll
global-ctors.ll
guard-intrinsic.ll Introduce a @llvm.experimental.guard intrinsic 2016-03-31 00:18:46 +00:00
ident-meta1.ll
ident-meta2.ll
ident-meta3.ll
ident-meta4.ll
inalloca1.ll
inalloca2.ll
inalloca3.ll
inalloca-vararg.ll
invalid-eh.ll [Verifier] Don't abort on invalid cleanuprets 2016-03-01 18:59:50 +00:00
invalid-statepoint2.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
invalid-statepoint.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
invoke.ll [coroutines] Part 4[ab]: Coroutine Devirtualization: Lower coro.resume and coro.destroy. 2016-08-04 20:30:07 +00:00
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.used-invalid-init2.ll
llvm.used-invalid-init.ll
llvm.used-invalid-type2.ll
llvm.used-invalid-type.ll
llvm.used-ptr-type.ll
mdcompositetype-templateparams-tuple.ll
mdcompositetype-templateparams.ll
memcpy.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
metadata-function-dbg.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
metadata-function-prof.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
module-flags-1.ll
module-flags-2.ll
module-flags-3.ll
musttail-invalid.ll
musttail-valid.ll
non-integral-pointers.ll [Verifier] Add more tests related to non-integral pointers 2016-08-02 23:32:53 +00:00
operand-bundles.ll Add a "gc-transition" operand bundle 2016-01-20 19:50:25 +00:00
PhiGrouping.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
resume.ll Included test for r277360. 2016-08-01 18:07:19 +00:00
SelfReferential.ll
sret.ll
statepoint.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
swifterror2.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swifterror3.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swifterror.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swiftself.ll Swift Calling Convention: add swiftself attribute. 2016-03-29 17:37:21 +00:00
tbaa.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
token1.ll
token2.ll
token3.ll
token4.ll
token5.ll
token6.ll
token7.ll
unsized-types.ll [IR] Disallow loading and storing unsized types 2016-06-01 16:13:10 +00:00
varargs-intrinsic.ll
writeonly.ll Add writeonly IR attribute 2016-07-04 08:01:29 +00:00

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.