llvm-project/llvm/unittests
Vedant Kumar 77ffce6954 [Instruction] Set metadata uses to undef on deletion
Summary:
Replace any extant metadata uses of a dying instruction with undef to
preserve debug info accuracy. Some alternatives include:

- Treat Instruction like any other Value, and point its extant metadata
  uses to an empty ValueAsMetadata node. This makes extant dbg.value uses
  trivially dead (i.e. fair game for deletion in many passes), leading to
  stale dbg.values being in effect for too long.

- Call salvageDebugInfoOrMarkUndef. Not needed to make instruction removal
  correct. OTOH results in wasted work in some common cases (e.g. when all
  instructions in a BasicBlock are deleted).

This came up while discussing some basic cases in
https://reviews.llvm.org/D80052.

Reviewers: jmorse, TWeaver, aprantl, dexonsmith, jdoerfert

Subscribers: jholewinski, qcolombet, hiraditya, jfb, sstefan1, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80264
2020-05-21 15:58:12 -07:00
..
ADT Github access test: remove unnecessary whitespaces. 2020-05-20 09:53:44 +01:00
Analysis [SCEV] Move ScalarEvolutionExpander.cpp to Transforms/Utils (NFC). 2020-05-20 10:53:40 +01:00
AsmParser [SVE] Remove VectorType::getBitWidth() 2020-04-21 13:33:46 -07:00
BinaryFormat [MsgPack] Added convenience assignment to MsgPackDocument 2020-05-21 22:13:19 +01:00
Bitcode Add AutoUpgrade function to add new address space datalayout string to existing datalayouts. 2019-09-18 22:15:58 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [CodeGen] Fix warnings due to SelectionDAG::getSplatSourceVector 2020-05-05 08:45:41 +01:00
DebugInfo [DebugInfo] Dump form values according to the DWARF format (2/8). 2020-05-19 13:35:07 +07:00
Demangle Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ExecutionEngine [ORC] Share ownership of JITDylibs between ExecutionSession and 2020-05-10 16:37:17 -07:00
Frontend [OpenMP][OMPIRBuilder] Add Directives (master and critical) to OMPBuilder. 2020-02-15 01:15:45 -06:00
FuzzMutate [SVE] Update API ConstantVector::getSplat() to use ElementCount. 2020-03-12 13:22:41 -07:00
IR [Instruction] Set metadata uses to undef on deletion 2020-05-21 15:58:12 -07:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
MC [AMDGPU] Fix PC register mapping in wave32 mode 2020-03-26 14:43:25 -04:00
MI [LiveIntervals] Replace handleMoveIntoBundle 2020-04-16 19:58:19 +09:00
Object [Object][unittest] Skip tests on machines with non-64 bit size_t 2020-03-11 15:31:30 +00:00
ObjectYAML minidump: Add an "arm64" constant 2019-10-31 11:20:46 +01:00
Option Option spell checking: Penalize delimiter flags if input has no argument 2019-05-01 16:45:15 +00:00
Passes Don't export symbols from clang/opt/llc if plugins are disabled. 2020-03-23 12:17:09 -07:00
ProfileData [ProfileSummary] Add the PartialProfileRatio field in ProfileSummary metadata. 2020-05-21 09:12:23 -07:00
Remarks [Remarks] Fix error message check in unit test 2019-10-31 15:51:36 -07:00
Support Revert "Revert "[YAMLTraits] Add trait for char"" 2020-05-21 10:33:09 -07:00
TableGen Make unittests include path relative 2020-02-21 10:19:11 +01:00
Target [ARM] Replace arm vendor with none. NFC 2020-04-22 18:19:35 +01:00
TextAPI [llvm][TextAPI] adding inlining reexported libraries support 2020-04-02 13:05:08 -07:00
Transforms [BrachProbablityInfo] Set edge probabilities at once and fix calcMetadataWeights() 2020-05-21 12:52:37 +07:00
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
tools [llvm-exegesis][NFC] Let the pfm::Counter own the PerfHelper. 2020-04-08 15:37:30 +02:00
CMakeLists.txt CMake: Make most target symbols hidden by default 2020-01-14 19:46:52 -08:00
unittest.cfg.in