llvm-project/llvm/test/Verifier
Eli Friedman 4532a50899 Infer alignment of unmarked loads in IR/bitcode parsing.
For IR generated by a compiler, this is really simple: you just take the
datalayout from the beginning of the file, and apply it to all the IR
later in the file. For optimization testcases that don't care about the
datalayout, this is also really simple: we just use the default
datalayout.

The complexity here comes from the fact that some LLVM tools allow
overriding the datalayout: some tools have an explicit flag for this,
some tools will infer a datalayout based on the code generation target.
Supporting this properly required plumbing through a bunch of new
machinery: we want to allow overriding the datalayout after the
datalayout is parsed from the file, but before we use any information
from it. Therefore, IR/bitcode parsing now has a callback to allow tools
to compute the datalayout at the appropriate time.

Not sure if I covered all the LLVM tools that want to use the callback.
(clang? lli? Misc IR manipulation tools like llvm-link?). But this is at
least enough for all the LLVM regression tests, and IR without a
datalayout is not something frontends should generate.

This change had some sort of weird effects for certain CodeGen
regression tests: if the datalayout is overridden with a datalayout with
a different program or stack address space, we now parse IR based on the
overridden datalayout, instead of the one written in the file (or the
default one, if none is specified). This broke a few AVR tests, and one
AMDGPU test.

Outside the CodeGen tests I mentioned, the test changes are all just
fixing CHECK lines and moving around datalayout lines in weird places.

Differential Revision: https://reviews.llvm.org/D78403
2020-05-14 13:03:50 -07:00
..
AMDGPU AMDGPU: Fix missing immarg on llvm.amdgcn.interp.mov 2020-01-22 09:01:34 -05:00
ARM ARM: Fix missing immarg for space intrinsic 2019-07-16 22:41:38 +00:00
Mips [Mips] Remove immarg test for intrinsics that no longer have an immarg after r372409. 2019-09-20 18:52:49 +00:00
SystemZ [SystemZ] Add support for new cpu architecture - arch13 2019-07-12 18:13:16 +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 Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
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 Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
AmbiguousPhi.ll
DIFile.ll [DebugInfo] Unify ChecksumKind and Checksum value in DIFile 2018-02-12 19:45:54 +00:00
DILocation-parents.ll
DILocation-scope.ll Verifier: verify that a DILocation's scope is a DILocalScope. 2018-08-24 21:01:58 +00:00
DISubprogram.ll
PhiGrouping.ll
README.txt
SelfReferential.ll
alias.ll
align-md.ll
alloc-size-failedparse.ll
allocsize.ll
amdgpu-cc.ll
assume-bundles.ll [AssumeBundles] Enforce constraints on the operand bundle of llvm.assume 2020-03-11 23:53:48 +01:00
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 [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-as-neg.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-as.ll
bitcast-vector-pointer-neg.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
bitcast-vector-pointer-pos.ll [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
blockbyref.ll Remove the obsolete BlockByRefStruct flag from LLVM IR 2019-09-18 22:38:56 +00:00
bswap.ll Verifier: Check bswap is supported size 2020-03-22 12:15:25 -04:00
byval-1.ll
byval-4.ll
callbr.ll [Verifier] add invariant check for callbr 2019-09-25 22:28:27 +00:00
callsite-dbgloc.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
cc-flags.ll
comdat-decl1.ll
comdat-decl2.ll
comdat.ll
comdat2.ll IR: Disable verifier check for GlobalValues with private linkage named after a comdat for non-COFF. 2019-08-06 21:47:18 +00:00
comdat3.ll
commandline-meta1.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta2.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta3.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
commandline-meta4.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
cttz-undef-arg.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
dbg-difile-crash.ll
dbg-invalid-compileunit.ll
dbg-invalid-named-metadata.ll
dbg-invalid-retaintypes.ll
dbg-invalid-vector.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
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 [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
dereferenceable-md.ll [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
di-subroutine-localvar.ll [Verifier] Reject invalid type for DILocalVariable. 2019-01-07 23:09:09 +00:00
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 Debug Info: Support address space attributes on rvalue references. 2019-05-07 17:42:38 +00:00
diderivedtype-address-space-typedef.ll
diderivedtype-address-space-volatile-type.ll
diexpression-dwarf-entry-value.ll [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
diexpression-entry-value-llvm-ir.ll [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
diexpression-entry-value.ll [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
diexpression-swap.ll
diexpression-valid-entry-value.ll [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
diglobalvariable.ll
dilocation-in-wrong-place.ll [Verifier] Constrain where DILocations may be nested 2020-05-04 14:02:43 -07:00
disubprogram-name-match-only.ll More principled implementation of DISubprogram::describes() 2020-03-02 10:03:14 -08:00
dominates.ll Change callbr to only define its output SSA variable on the normal 2020-04-23 19:36:44 -04:00
element-wise-atomic-memory-intrinsics.ll [Verifier] Remove invalid verifier check 2020-03-16 12:00:08 +07:00
fnarg-debuginfo.ll
fnarg-nodebug.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
fp-intrinsics.ll [FPEnv] Strict FP tests should use the requisite function attributes. 2019-10-04 17:03:46 +00:00
fpmath.ll
fragment.ll
frameescape.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
func-dbg.ll
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 Replace gcroot verifier tests 2019-02-14 22:41:01 +00:00
gcwrite-ptrptr.ll
global-ctors-2.ll [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
global-ctors.ll
guard-intrinsic.ll
ident-meta1.ll
ident-meta2.ll
ident-meta3.ll
ident-meta4.ll
immarg-param-attribute-invalid.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
inalloca-vararg.ll
inalloca1.ll
inalloca2.ll
inalloca3.ll
intrinsic-arg-overloading-struct-ret.ll Test forward references in IntrinsicEmitter on Neon LD(2|3|4) 2019-06-17 12:01:53 +00:00
intrinsic-bad-arg-type.ll [IntrinsicEmitter] Support scalable vectors in intrinsics 2019-08-27 12:57:09 +00:00
intrinsic-immarg.ll [instrinsics] Add @llvm.memcpy.inline instrinsics 2020-01-28 09:42:01 +01:00
invalid-disubrange-count-node.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
invalid-eh.ll Change "UNSUPPORTED: windows" to be "UNSUPPORTED: system-windows" so that test is actually skipped on Windows. 2018-02-08 18:45:16 +00:00
invalid-frame-pointer-attr-empty.ll Verifier: Check frame-pointer attribute values 2019-12-11 19:53:49 +05:30
invalid-frame-pointer-attr-no-value.ll Verifier: Check frame-pointer attribute values 2019-12-11 19:53:49 +05:30
invalid-frame-pointer-attr.ll Verifier: Check frame-pointer attribute values 2019-12-11 19:53:49 +05:30
invalid-patchable-function-entry.ll Add function attribute "patchable-function-prefix" to support -fpatchable-function-entry=N,M where M>0 2020-01-23 17:02:27 -08:00
invalid-statepoint.ll
invalid-statepoint2.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 Verifier: fix bug treating debug info issue as non-debug info issue 2018-01-23 16:11:15 +00:00
llvm.dbg.value-expression.ll
llvm.dbg.value-value.ll
llvm.dbg.value-variable.ll
llvm.loop.cu.ll Visit previously unreachable nodes in the debug info metadata verifier. 2020-02-26 14:48:08 -08:00
llvm.loop.ll Add debug location verification for !llvm.loop attachments. 2019-06-18 20:09:09 +00:00
llvm.used-invalid-init.ll
llvm.used-invalid-init2.ll
llvm.used-invalid-type.ll
llvm.used-invalid-type2.ll
llvm.used-ptr-type.ll
masked-load.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
masked-store.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
matrix-intrinsics.ll [Verifier] Verify matrix dimensions operands match vector size. 2020-04-01 09:21:39 +01:00
mdcompositetype-templateparams-tuple.ll
mdcompositetype-templateparams.ll
memcpy-inline.ll [instrinsics] Add @llvm.memcpy.inline instrinsics 2020-01-28 09:42:01 +01:00
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
metadata-function-dbg.ll [IR] Add DISuprogram and DIE for a func decl 2019-06-27 06:07:41 +00:00
metadata-function-prof.ll
module-flags-1.ll
module-flags-2.ll
module-flags-3.ll
module-flags-cgprofile.ll Recommit r335794 "Add support for generating a call graph profile from Branch Frequency Info." with fix for removed functions. 2018-07-16 00:28:24 +00:00
module-flags-semantic-interposition.ll Implement -fsemantic-interposition 2020-01-31 14:02:33 +01:00
musttail-invalid.ll Tweak an assert message in the verifier 2018-04-06 10:20:19 +00:00
musttail-valid.ll
non-integer-gep-index.ll
non-integer-gep-index.ll.bc
non-integral-pointers.ll
operand-bundles.ll
pr34325.ll
preallocated-invalid.ll Make wrong preallocated arg count verifier error clearer 2020-04-29 18:31:30 -07:00
preallocated-valid.ll Handle indirect calls in preallocated verification 2020-04-30 14:39:03 -07:00
range-1.ll
range-2.ll
recursive-struct-param.ll
recursive-type-1.ll
recursive-type-2.ll
recursive-type-3.ll
resume.ll
scalable-global-vars.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scatter_gather.ll
speculatable-callsite-invalid.ll
speculatable-callsite.ll
sret.ll
statepoint.ll [IRVerifier] Allow StructRet in statepoint 2018-11-16 14:28:05 +00:00
swifterror.ll
swifterror2.ll
swifterror3.ll
swiftself.ll
tbaa-allowed.ll
tbaa.ll
token1.ll
token2.ll
token3.ll
token4.ll
token5.ll
token6.ll
token7.ll
unsized-types-alloca.ll Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
unsized-types-load.ll Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
unsized-types-store.ll Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
varargs-intrinsic.ll
variant-part.ll Add DWARF for discriminated unions 2018-02-06 23:45:59 +00:00
vp-intrinsics.ll [VP,Integer,#1] Vector-predicated integer intrinsics 2020-03-19 10:51:47 +01:00
writeonly.ll

README.txt

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.