llvm/test/Assembler
Florian Hahn 50963b3b75 Align definition of DW_OP_plus with DWARF spec [3/3]
Summary:
This patch is part of 3 patches that together form a single patch, but must be introduced in stages in order not to break things.
 
The way that LLVM interprets DW_OP_plus in DIExpression nodes is basically that of the DW_OP_plus_uconst operator since LLVM expects an unsigned constant operand. This unnecessarily restricts the DW_OP_plus operator, preventing it from being used to describe the evaluation of runtime values on the expression stack. These patches try to align the semantics of DW_OP_plus and DW_OP_minus with that of the DWARF definition, which pops two elements off the expression stack, performs the operation and pushes the result back on the stack.
 
This is done in three stages:
• The first patch (LLVM) adds support for DW_OP_plus_uconst.
• The second patch (Clang) contains changes all its uses from DW_OP_plus to DW_OP_plus_uconst.
• The third patch (LLVM) changes the semantics of DW_OP_plus and DW_OP_minus to be in line with its DWARF meaning. This patch includes the bitcode upgrade from legacy DIExpressions.

Patch by Sander de Smalen.

Reviewers: echristo, pcc, aprantl

Reviewed By: aprantl

Subscribers: fhahn, javed.absar, aprantl, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305386 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-14 13:14:38 +00:00
..
2002-03-08-NameCollision2.ll
2002-03-08-NameCollision.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
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
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
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-CrashOnBadCast2.ll
2007-01-16-CrashOnBadCast.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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2007-09-29-GC.ll
2007-11-26-AttributeOverload.ll
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll
2008-02-18-IntPointerCrash.ll
2008-07-10-APInt.ll
2008-09-02-FunctionNotes2.ll
2008-09-02-FunctionNotes.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 [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
addrspacecast-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll AsmParser: Make the code for parsing unnamed aliases more closely resemble that for unnamed globals. 2015-11-25 02:54:07 +00:00
alias-use-list-order.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
align-inst-alloca.ll
align-inst-load.ll
align-inst-store.ll
align-inst.ll
alignstack.ll
alloca-addrspace0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +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-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll
anon-functions.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
atomic.ll
attribute-builtin.ll
auto_upgrade_intrinsics.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +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-thread-pointer.ll [AArch64] [ARM] Make a target-independent llvm.thread.pointer intrinsic. 2016-04-19 20:51:05 +00:00
bcwrap.ll
call-invalid-1.ll
comment.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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
datalayout-alloca-addrspace-mismatch-0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
datalayout-alloca-addrspace-mismatch-1.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
datalayout-alloca-addrspace-mismatch-2.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
datalayout-alloca-addrspace.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
debug-info.ll [DebugInfo] Emit address space with DW_AT_address_class attribute for pointer and reference types 2017-03-08 23:55:44 +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 Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
difile-escaped-chars.ll
diglobalvariable.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
DIGlobalVariableExpression.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
diimportedentity.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilexicalblock.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilocalvariable-arg-large.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilocalvariable.ll DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
dilocation.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
DIMacroFile.ll [LLParser] Make the line field of DIMacro(File) optional. 2016-12-22 00:29:00 +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 support for DW_TAG_thrown_type. 2017-04-26 22:56:44 +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
drop-debug-info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll [IR] Add AllowContract to FastMathFlags 2017-03-28 20:11:52 +00:00
flags.ll
generic-debug-node.ll
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_ce2.ll [LLParser] Parse vector GEP constant expression correctly 2016-12-21 18:29:47 +00:00
getelementptr_vec_ce.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
getelementptr.ll IR: Introduce inrange attribute on getelementptr indices. 2016-11-10 22:34:55 +00:00
getInt.ll
global-addrspace-forwardref.ll Allow global address space forward decls using IDs in .ll files. 2015-09-03 18:06:44 +00:00
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] Fix ifunc-asm.ll test 2016-04-08 06:45:19 +00:00
ifunc-use-list-order.ll [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
inalloca.ll
incorrect-tdep-attrs-parsing.ll [IR] Have AttrBuilder::clear clear TargetDepAttrs. 2015-09-03 22:27:42 +00:00
inline-asm-clobber.ll
insertextractvalue.ll
insertvalue-invalid-idx.ll
insertvalue-invalid-type-1.ll
insertvalue-invalid-type.ll
internal-hidden-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
internal-hidden-function.ll
internal-hidden-variable.ll
internal-protected-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
internal-protected-function.ll
internal-protected-variable.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
invalid_cast.ll
invalid-alias-mismatched-explicit-type.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-attrgrp.ll
invalid-comdat2.ll
invalid-comdat.ll
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-datalayout-alloca-addrspace.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
invalid-debug-info-version.ll
invalid-dicompileunit-emissionkind-bad.ll Move the DebugEmissionKind enum from DIBuilder into DICompileUnit. 2016-03-31 23:56:58 +00:00
invalid-dicompileunit-language-bad.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-language-overflow.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-missing-language.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-null-file.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-uniqued.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
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
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 DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
invalid-disubrange-count-large.ll
invalid-disubrange-count-missing.ll
invalid-disubrange-count-negative.ll
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 Fix bug in method LLLexer::FP80HexToIntPair 2015-08-31 21:36:14 +00:00
invalid-fwdref1.ll
invalid-fwdref2.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
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-inline-constraint.ll Remove binary characters from test file. 2015-09-03 15:41:38 +00:00
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 AsmParser: Don't crash on unresolved !tbaa 2016-04-06 02:06:40 +00:00
invalid-mdnode-vector2.ll
invalid-mdnode-vector.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-name2.ll
invalid-name.ll
invalid-safestack-param.ll
invalid-safestack-return.ll
invalid-specialized-mdnode.ll
invalid-untyped-metadata.ll Fix assertion failure in LLParser::ConvertValIDToValue 2015-09-03 16:18:32 +00:00
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-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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-empty.ll
invalid-uselistorder-indexes-one.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-ordered.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-range.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-toofew.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-toomany.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-type.ll
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 AsmParser: Don't crash on unresolved !tbaa 2016-04-06 02:06:40 +00:00
MultipleReturnValueType.ll
musttail-invalid-1.ll
musttail-invalid-2.ll
musttail.ll
named-metadata.ll
no-mdstring-upgrades.ll IR: Stop upgrading !llvm.loop attachments via MDString 2016-03-25 00:56:13 +00:00
numbered-values.ll
private-hidden-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
private-hidden-function.ll
private-hidden-variable.ll
private-protected-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
private-protected-function.ll
private-protected-variable.ll
select.ll
short-hexpair.ll
source-filename-backslash.ll Use existing PrintEscapedString in AssemblyWriter 2016-03-30 22:17:28 +00:00
source-filename.ll Restore "[ThinLTO] Serialize the Module SourceFileName to/from LLVM assembly" 2016-03-30 18:15:08 +00:00
tls-models.ll
token.ll [IR] Add support for empty tokens 2015-11-11 21:57:16 +00:00
unnamed-addr.ll
unnamed-alias.ll AsmParser: Make the code for parsing unnamed aliases more closely resemble that for unnamed globals. 2015-11-25 02:54:07 +00:00
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
uselistorder_bb.ll
uselistorder.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
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