llvm-project/llvm/test/Assembler
James Y Knight c0e6b8ac3a IR: Support parsing numeric block ids, and emit them in textual output.
Just as as llvm IR supports explicitly specifying numeric value ids
for instructions, and emits them by default in textual output, now do
the same for blocks.

This is a slightly incompatible change in the textual IR format.

Previously, llvm would parse numeric labels as string names. E.g.
  define void @f() {
    br label %"55"
  55:
    ret void
  }
defined a label *named* "55", even without needing to be quoted, while
the reference required quoting. Now, if you intend a block label which
looks like a value number to be a name, you must quote it in the
definition too (e.g. `"55":`).

Previously, llvm would print nameless blocks only as a comment, and
would omit it if there was no predecessor. This could cause confusion
for readers of the IR, just as unnamed instructions did prior to the
addition of "%5 = " syntax, back in 2008 (PR2480).

Now, it will always print a label for an unnamed block, with the
exception of the entry block. (IMO it may be better to print it for
the entry-block as well. However, that requires updating many more
tests.)

Thus, the following is supported, and is the canonical printing:
  define i32 @f(i32, i32) {
    %3 = add i32 %0, %1
    br label %4

  4:
    ret i32 %3
  }

New test cases covering this behavior are added, and other tests
updated as required.

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

llvm-svn: 356789
2019-03-22 18:27:13 +00:00
..
2002-03-08-NameCollision.ll
2002-03-08-NameCollision2.ll
2002-04-07-HexFloatConstants.ll
2002-04-07-InfConstant.ll
2002-04-29-NameBinding.ll
2002-05-02-InvalidForwardRef.ll
2002-07-14-OpaqueType.ll
2002-07-25-QuoteInString.ll
2002-07-25-ReturnPtrFunction.ll
2002-07-31-SlashInString.ll Don't output bitcode to stdout in 2002-07-31-SlashInString.ll test 2018-02-27 11:15:05 +00:00
2002-08-15-CastAmbiguity.ll
2002-08-15-ConstantExprProblem.ll
2002-08-15-UnresolvedGlobalReference.ll
2002-08-16-ConstExprInlined.ll
2002-08-19-BytecodeReader.ll
2002-08-22-DominanceProblem.ll
2002-10-08-LargeArrayPerformance.ll
2002-10-13-ConstantEncodingProblem.ll
2002-12-15-GlobalResolve.ll
2003-01-30-UnsignedString.ll
2003-04-15-ConstantInitAssertion.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-04-25-UnresolvedGlobalReference.ll
2003-05-03-BytecodeReaderProblem.ll
2003-05-12-MinIntProblem.ll
2003-05-15-AssemblerProblem.ll
2003-05-15-SwitchBug.ll
2003-05-21-ConstantShiftExpr.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-05-21-EmptyStructTest.ll
2003-05-21-MalformedShiftCrash.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-05-21-MalformedStructCrash.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-08-20-ConstantExprGEP-Fold.ll
2003-08-21-ConstantExprCast-Fold.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-11-05-ConstantExprShift.ll
2003-11-11-ImplicitRename.ll Make shell redirection construct portable 2017-07-12 13:24:46 +00:00
2003-11-12-ConstantExprCast.ll
2003-11-24-SymbolTableCrash.ll
2004-01-11-getelementptrfolding.ll
2004-01-20-MaxLongLong.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2004-02-01-NegativeZero.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2004-02-27-SelfUseAssertError.ll
2004-03-07-FunctionAddressAlignment.ll Revert patches 348835 and 348571 because they're 2019-01-04 16:39:10 +00:00
2004-03-30-UnclosedFunctionCrash.ll
2004-04-04-GetElementPtrIndexTypes.ll
2004-06-07-VerifierBug.ll
2004-10-22-BCWriterUndefBug.ll
2004-11-28-InvalidTypeCrash.ll
2005-01-03-FPConstantDisassembly.ll
2005-01-31-CallingAggregateFunction.ll
2005-05-05-OpaqueUndefValues.ll
2005-12-21-ZeroInitVector.ll
2006-09-28-CrashOnInvalid.ll
2006-12-09-Cast-To-Bool.ll
2007-01-02-Undefined-Arg-Type.ll
2007-01-05-Cmp-ConstExpr.ll
2007-01-16-CrashOnBadCast.ll
2007-01-16-CrashOnBadCast2.ll
2007-03-18-InvalidNumberedVar.ll
2007-03-19-NegValue.ll
2007-04-20-AlignedLoad.ll
2007-04-20-AlignedStore.ll
2007-04-25-AssemblerFoldExternWeak.ll
2007-05-21-Escape.ll
2007-07-19-ParamAttrAmbiguity.ll
2007-08-06-AliasInvalid.ll
2007-09-10-AliasFwdRef.ll
2007-09-29-GC.ll
2007-11-26-AttributeOverload.ll Make shell redirection construct portable 2017-07-12 13:24:46 +00:00
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll
2008-02-18-IntPointerCrash.ll
2008-07-10-APInt.ll
2008-09-02-FunctionNotes.ll
2008-09-02-FunctionNotes2.ll
2008-09-29-RetAttr.ll
2008-10-14-QuoteInName.ll
2009-02-01-UnnamedForwardRef.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2009-02-28-CastOpc.ll
2009-02-28-StripOpaqueName.ll
2009-03-24-ZextConstantExpr.ll
2009-07-24-ZeroArgGEP.ll
2010-02-05-FunctionLocalMetadataBecomesNull.ll
ConstantExprFold.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
ConstantExprFoldCast.ll Fix constant folding of addrspacecast of null 2016-05-21 00:14:04 +00:00
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll ConstantFold: Don't fold global address vs. null for addrspace != 0 2018-06-26 18:55:43 +00:00
DIEnumerator.ll Rename DIFlagFixedEnum to DIFlagEnumClass. NFC 2019-01-08 17:52:29 +00:00
DIGlobalVariableExpression.ll Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
DIMacroFile.ll [LLParser] Make the line field of DIMacro(File) optional. 2016-12-22 00:29:00 +00:00
MultipleReturnValueType.ll
addrspacecast-alias.ll
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll
alias-use-list-order.ll
align-inst-alloca.ll
align-inst-load.ll
align-inst-store.ll
align-inst.ll
alignstack.ll
alloca-addrspace-elems.ll Fix assembler for alloca of multiple elements in non-zero addr space 2017-10-14 03:23:18 +00:00
alloca-addrspace-parse-error-0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-addrspace-parse-error-1.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-addrspace0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll
anon-functions.ll
asm-path-writer.ll [ThinLTO] Escape module paths when printing 2018-07-12 14:40:21 +00:00
atomic.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
attribute-builtin.ll
auto_upgrade_intrinsics.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
auto_upgrade_nvvm_intrinsics.ll [NVPTX] Auto-upgrade some NVPTX intrinsics to LLVM target-generic code. 2017-01-21 01:00:32 +00:00
autoupgrade-invalid-mem-intrinsics.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
autoupgrade-thread-pointer.ll [AArch64] [ARM] Make a target-independent llvm.thread.pointer intrinsic. 2016-04-19 20:51:05 +00:00
bcwrap.ll
block-labels.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
call-invalid-1.ll
call-nonzero-program-addrspace-2.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
call-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
comment.ll
datalayout-alloca-addrspace-mismatch-0.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-1.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-2.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
debug-info-source-invalid.ll [DWARFv5] Verify all-or-nothing constraint on DIFile source 2018-11-30 19:13:38 +00:00
debug-info-source.ll [DWARFv5] Verify all-or-nothing constraint on DIFile source 2018-11-30 19:13:38 +00:00
debug-info.ll [test] Fix Assembler/debug-info.ll 2018-09-21 12:28:44 +00:00
debug-label-bitcode.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debug-variant-discriminator.ll Ensure that variant part discriminator is read by MetadataLoader 2018-09-21 12:03:14 +00:00
dicompileunit.ll DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
dicompositetype-members.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
diexpression.ll [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
difile-escaped-chars.ll
diglobalvariable.ll Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
diimportedentity.ll Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
dilexicalblock.ll
dilocalvariable-arg-large.ll
dilocalvariable.ll DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
dilocation.ll [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
dimodule.ll
dinamespace.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
diobjcproperty.ll
distinct-mdnode.ll
disubprogram.ll Add IR debug info support for Elemental, Pure, and Recursive Procedures. 2019-03-14 16:29:54 +00:00
disubrange-empty-array.ll
disubroutinetype.ll [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
ditemplateparameter.ll
ditype-large-values.ll DebugInfo: change alignment type from uint64_t to uint32_t to save space. 2016-10-18 14:31:22 +00:00
dllimport-dsolocal-diag.ll Represent runtime preemption in the IR. 2017-10-26 15:00:26 +00:00
drop-debug-info-nonzero-alloca.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
drop-debug-info.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
flags.ll
generic-debug-node.ll
getInt.ll
getelementptr.ll IR: Introduce inrange attribute on getelementptr indices. 2016-11-10 22:34:55 +00:00
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_ce.ll [ConstantFold] Support vector index when factoring out GEP index into preceding dimensions 2017-12-04 19:56:33 +00:00
getelementptr_vec_ce2.ll [LLParser] Parse vector GEP constant expression correctly 2016-12-21 18:29:47 +00:00
getelementptr_vec_idx1.ll
getelementptr_vec_idx2.ll
getelementptr_vec_idx3.ll
getelementptr_vec_idx4.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
getelementptr_vec_struct.ll
global-addrspace-forwardref.ll
globalvariable-attributes.ll [IR] Allow attributes with global variables 2017-05-11 12:28:08 +00:00
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
ifunc-asm.ll
ifunc-dsolocal.ll Allow dso_local on ifunc. 2018-01-12 17:03:43 +00:00
ifunc-use-list-order.ll
immarg-param-attribute.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
inalloca.ll
incorrect-tdep-attrs-parsing.ll
inline-asm-clobber.ll
insertextractvalue.ll
insertvalue-invalid-idx.ll
insertvalue-invalid-type-1.ll
insertvalue-invalid-type.ll
internal-hidden-alias.ll
internal-hidden-function.ll
internal-hidden-variable.ll
internal-protected-alias.ll
internal-protected-function.ll
internal-protected-variable.ll
invalid-alias-mismatched-explicit-type.ll
invalid-atomicrmw-add-must-be-integer-type.ll Add atomicrmw operation to error messages 2018-10-03 02:37:15 +00:00
invalid-atomicrmw-fadd-must-be-fp-type.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
invalid-atomicrmw-fsub-must-be-fp-type.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
invalid-atomicrmw-xchg-must-be-integer-or-fp-type.ll Allow FP types for atomicrmw xchg 2019-01-17 10:49:01 +00:00
invalid-attrgrp.ll
invalid-block-label-num.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
invalid-comdat.ll
invalid-comdat2.ll
invalid-datalayout-alloca-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
invalid-datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
invalid-datalayout1.ll
invalid-datalayout2.ll
invalid-datalayout3.ll
invalid-datalayout4.ll
invalid-datalayout5.ll
invalid-datalayout6.ll
invalid-datalayout7.ll
invalid-datalayout8.ll
invalid-datalayout9.ll
invalid-datalayout10.ll
invalid-datalayout11.ll
invalid-datalayout12.ll
invalid-datalayout13.ll
invalid-datalayout14.ll
invalid-datalayout15.ll
invalid-datalayout16.ll
invalid-datalayout17.ll
invalid-datalayout18.ll
invalid-datalayout19.ll
invalid-datalayout20.ll
invalid-datalayout21.ll
invalid-datalayout22.ll
invalid-datalayout23.ll
invalid-datalayout24.ll
invalid-debug-info-version.ll
invalid-dicompileunit-emissionkind-bad.ll
invalid-dicompileunit-language-bad.ll
invalid-dicompileunit-language-overflow.ll
invalid-dicompileunit-missing-language.ll
invalid-dicompileunit-null-file.ll
invalid-dicompileunit-uniqued.ll
invalid-dicompositetype-missing-tag.ll
invalid-diderivedtype-missing-basetype.ll
invalid-diderivedtype-missing-tag.ll
invalid-dienumerator-missing-name.ll
invalid-dienumerator-missing-value.ll
invalid-diexpression-large.ll
invalid-diexpression-verify.ll Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
invalid-difile-missing-directory.ll
invalid-difile-missing-filename.ll
invalid-diglobalvariable-empty-name.ll
invalid-diglobalvariable-missing-name.ll
invalid-diimportedentity-missing-scope.ll
invalid-diimportedentity-missing-tag.ll
invalid-dilexicalblock-missing-scope.ll
invalid-dilexicalblock-null-scope.ll
invalid-dilexicalblockfile-missing-discriminator.ll
invalid-dilexicalblockfile-missing-scope.ll
invalid-dilexicalblockfile-null-scope.ll
invalid-dilocalvariable-arg-large.ll
invalid-dilocalvariable-arg-negative.ll
invalid-dilocalvariable-missing-scope.ll
invalid-dilocalvariable-null-scope.ll
invalid-dilocation-field-bad.ll
invalid-dilocation-field-twice.ll
invalid-dilocation-missing-scope-2.ll
invalid-dilocation-missing-scope.ll
invalid-dilocation-null-scope.ll
invalid-dilocation-overflow-column.ll
invalid-dilocation-overflow-line.ll
invalid-dinamespace-missing-namespace.ll
invalid-disubprogram-uniqued-definition.ll [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
invalid-disubrange-count-large.ll
invalid-disubrange-count-missing.ll
invalid-disubrange-count-negative.ll
invalid-disubrange-count-node.ll [Metadata] Extend 'count' field of DISubrange to take a metadata node 2018-01-24 09:56:07 +00:00
invalid-disubrange-lowerBound-max.ll
invalid-disubrange-lowerBound-min.ll
invalid-disubroutinetype-missing-types.ll
invalid-ditemplatetypeparameter-missing-type.ll
invalid-ditemplatevalueparameter-missing-value.ll
invalid-fp80hex.ll
invalid-fwdref1.ll
invalid-fwdref2.ll
invalid-generic-debug-node-tag-bad.ll
invalid-generic-debug-node-tag-missing.ll
invalid-generic-debug-node-tag-overflow.ll
invalid-generic-debug-node-tag-wrong-type.ll
invalid-gep-mismatched-explicit-type.ll
invalid-gep-missing-explicit-type.ll
invalid-hexint.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
invalid-immarg.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-immarg2.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-immarg3.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-inline-constraint.ll
invalid-inttype.ll Fix IntegerType::MAX_INT_BITS value 2016-10-04 12:43:46 +00:00
invalid-label.ll
invalid-landingpad.ll
invalid-load-mismatched-explicit-type.ll
invalid-load-missing-explicit-type.ll
invalid-mdnode-badref.ll
invalid-mdnode-vector.ll
invalid-mdnode-vector2.ll
invalid-metadata-attachment-has-type.ll
invalid-metadata-function-local-attachments.ll
invalid-metadata-function-local-complex-1.ll
invalid-metadata-function-local-complex-2.ll
invalid-metadata-function-local-complex-3.ll
invalid-metadata-has-type.ll
invalid-name.ll
invalid-name2.ll
invalid-safestack-param.ll
invalid-safestack-return.ll
invalid-specialized-mdnode.ll
invalid-untyped-metadata.ll
invalid-uselistorder-function-between-blocks.ll
invalid-uselistorder-function-missing-named.ll
invalid-uselistorder-function-missing-numbered.ll
invalid-uselistorder-global-missing.ll
invalid-uselistorder-indexes-duplicated.ll
invalid-uselistorder-indexes-empty.ll
invalid-uselistorder-indexes-one.ll
invalid-uselistorder-indexes-ordered.ll
invalid-uselistorder-indexes-range.ll
invalid-uselistorder-indexes-toofew.ll
invalid-uselistorder-indexes-toomany.ll
invalid-uselistorder-type.ll
invalid-uselistorder_bb-missing-bb.ll
invalid-uselistorder_bb-missing-body.ll
invalid-uselistorder_bb-missing-func.ll
invalid-uselistorder_bb-not-bb.ll
invalid-uselistorder_bb-not-func.ll
invalid-uselistorder_bb-numbered.ll
invalid_cast.ll
invalid_cast2.ll
invalid_cast3.ll
invalid_cast4.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
invoke-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
large-comdat.ll
local-unnamed-addr.ll IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
max-inttype.ll Fix IntegerType::MAX_INT_BITS value 2016-10-04 12:43:46 +00:00
metadata-decl.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-local.ll
metadata-null-operands.ll
metadata.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
missing-tbaa.ll
musttail-invalid-1.ll
musttail-invalid-2.ll
musttail.ll
named-metadata.ll
no-mdstring-upgrades.ll
numbered-values.ll
private-hidden-alias.ll
private-hidden-function.ll
private-hidden-variable.ll
private-protected-alias.ll
private-protected-function.ll
private-protected-variable.ll
select.ll
short-hexpair.ll
source-filename-backslash.ll
source-filename.ll
thinlto-bad-summary1.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary2.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary3.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-summary.ll [ThinLTO] Assembly representation of ReadOnly attribute 2018-11-23 10:54:51 +00:00
tls-models.ll
token.ll
unnamed-addr.ll
unnamed-alias.ll
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
uselistorder.ll
uselistorder_bb.ll
vbool-cmp.ll
vector-cmp.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
vector-select.ll
vector-shift.ll
x86mmx.ll