llvm-project/llvm/lib/IR
Adrian Prantl 032d2381bf Remove PrologEpilogInserter's usage of DBG_VALUE's offset field
In the last half-dozen commits to LLVM I removed code that became dead
after removing the offset parameter from llvm.dbg.value gradually
proceeding from IR towards the backend. Before I can move on to
DwarfDebug and friends there is one last side-called offset I need to
remove:  This patch modifies PrologEpilogInserter's use of the
DBG_VALUE's offset argument to use a DIExpression instead. Because the
PrologEpilogInserter runs at the Machine level I had to play a little
trick with a named llvm.dbg.mir node to get the DIExpressions to print
in MIR dumps (which print the llvm::Module followed by the
MachineFunction dump).

I also had to add rudimentary DwarfExpression support to CodeView and
as a side-effect also fixed a bug (CodeViewDebug::collectVariableInfo
was supposed to give up on variables with complex DIExpressions, but
would fail to do so for fragments, which are also modeled as
DIExpressions).

With this last holdover removed we will have only one canonical way of
representing offsets to debug locations which will simplify the code
in DwarfDebug (and future versions of CodeViewDebug once it starts
handling more complex expressions) and make it easier to reason about.

This patch is NFC-ish: All test case changes are for assembler
comments and the binary output does not change.

rdar://problem/33580047
Differential Revision: https://reviews.llvm.org/D36125

llvm-svn: 309751
2017-08-01 21:45:24 +00:00
..
AsmWriter.cpp Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
AttributeImpl.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
Attributes.cpp Define behavior of "stack-probe-size" attribute when inlining. 2017-06-22 23:22:36 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
BasicBlock.cpp Restrict the definition of loop preheader to avoid EH blocks 2017-06-22 23:27:16 +00:00
CMakeLists.txt [SafepointIRVerifier] Add verifier pass for finding GC relocation bugs 2017-07-05 01:16:29 +00:00
Comdat.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ConstantFold.cpp [ConstantFolder] Don't try to fold gep when the idx is a vector. 2017-07-27 22:20:44 +00:00
ConstantFold.h IR: Introduce inrange attribute on getelementptr indices. 2016-11-10 22:34:55 +00:00
ConstantRange.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
Constants.cpp [IR] Implement Constant::isNegativeZeroValue/isZeroValue/isAllOnesValue/isOneValue/isMinSignedValue for ConstantDataVector without going through getElementAsConstant 2017-07-15 22:06:19 +00:00
ConstantsContext.h [IR] Stop deleting other signatures of User::operator new when we override one signature in a class derived from User 2017-06-12 23:25:15 +00:00
Core.cpp IR/Core.cpp: Prune unused "llvm/Bitcode/BitcodeReader.h". 2017-07-17 04:31:23 +00:00
DIBuilder.cpp Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
DataLayout.cpp Support, IR, ADT: Check nullptr after allocation with malloc/realloc or calloc 2017-07-20 01:30:39 +00:00
DebugInfo.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DebugInfoMetadata.cpp Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
DebugLoc.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DiagnosticInfo.cpp Migrate PGOMemOptSizeOpt to use new OptimizationRemarkEmitter Pass 2017-07-30 00:35:33 +00:00
DiagnosticPrinter.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Dominators.cpp [Dominators] Move root-finding out of DomTreeBase and simplify it 2017-07-26 18:07:40 +00:00
Function.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
GCOV.cpp [gcov] Sort file info before printing it 2017-04-26 00:16:10 +00:00
GVMaterializer.cpp
Globals.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IRBuilder.cpp [LV] Avoid redundant operations manipulating masks 2017-07-31 13:21:42 +00:00
IRPrintingPasses.cpp Implement getPassName() for IR printing passes. 2017-03-10 07:09:20 +00:00
InlineAsm.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Instruction.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
Instructions.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
IntrinsicInst.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
LLVMBuild.txt Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
LLVMContext.cpp Fix unused variable warnings 2017-07-12 00:15:53 +00:00
LLVMContextImpl.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
LLVMContextImpl.h Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
LegacyPassManager.cpp [PM] Use range-based for loops in LegacyPassManager.cpp (NFC). 2017-07-13 10:52:00 +00:00
MDBuilder.cpp Add function importing info from samplepgo profile to the module summary. 2017-02-28 18:09:44 +00:00
Mangler.cpp Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
Metadata.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
MetadataImpl.h
Module.cpp Normalize constructor call syntax, NFCI. 2017-07-18 08:36:22 +00:00
ModuleSummaryIndex.cpp [cfi] CFI-ICall for ThinLTO. 2017-06-16 00:18:29 +00:00
Operator.cpp [IR] Remove some unneeded includes from Operator.h and fix cpp files that were transitively depending on it. NFC 2017-03-20 05:08:41 +00:00
OptBisect.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Pass.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
PassManager.cpp [PM] Introduce an analysis set used to preserve all analyses over 2017-01-15 06:32:49 +00:00
PassRegistry.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
ProfileSummary.cpp Reapply r271728 after adding move cobstructor for ProfileSummaryInfo 2016-06-03 22:54:26 +00:00
SafepointIRVerifier.cpp [SafepointIRVerifier] Avoid false positives in GC verifier for compare between pointers 2017-07-07 13:02:29 +00:00
Statepoint.cpp [Statepoint] Add helper functions for GCRelocate and GCResult 2017-06-20 20:54:57 +00:00
SymbolTableListTraitsImpl.h ADT: Remove external uses of ilist_iterator, NFC 2016-09-03 01:22:56 +00:00
Type.cpp [IR] Add Type::isIntOrIntVectorTy(unsigned) similar to the existing isIntegerTy(unsigned), but also works for vectors. 2017-07-09 07:04:03 +00:00
TypeFinder.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Use.cpp
User.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Value.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
ValueSymbolTable.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ValueTypes.cpp [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
Verifier.cpp Remove PrologEpilogInserter's usage of DBG_VALUE's offset field 2017-08-01 21:45:24 +00:00