1. Oct 27, 2020
  2. Oct 26, 2020
    • OCHyams's avatar
      [DebugInfo][dexter] Add dexter tests for escaped locals · 66d03af8
      OCHyams authored
      Recently there has been renewed interest in improving debug-info for variables
      that (partially or otherwise) live on the stack in optimised code.
      
      At the moment instcombine speculates that stack slots are probably going to be
      promoted to registers, and prepares the debug-info accordingly. It runs a
      function called LowerDbgDeclare which converts dbg.declares to a set of
      dbg.values after loads, and before stores and calls. Sometimes the stack
      location remains (e.g. for escaped locals). If any dbg.values become undef
      where the stack location is still valid we end up unnecessarily reducing
      variable location coverage due to our inability to track multiple locations
      simultaneously. There is a flag to disable this feature
      (-instcombine-lower-dbg-declare=0), which prevents this conversion at the cost
      of sometimes providing incorrect location info in the face of DSE, DCE, GVN,
      CSE etc.
      
      This has been discussed fairly extensively on PR34136.
      
      The idea of these tests is to provide examples of situations that we should
      consider when designing a new system, to aid discussions and eventually help
      evaluate the implementation.
      
      Dexter isn't ideal for observing specific optimisation behaviour. Writing an
      exaustive test suite would be difficult, and the resultant suite would be
      fragile. However, I think having some concrete executable examples is useful
      at least as a reference.
      
      Differential Revision: https://reviews.llvm.org/D89543
      66d03af8
  3. Oct 27, 2020