[all-commits] [llvm/llvm-project] a89ca4: Fix PR44001: assert failure in getFunctionLocalOff...

RoboTux via All-commits all-commits at lists.llvm.org
Tue Nov 19 03:23:48 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a89ca4ae179def7fac1a35e53d7b28d4c9d531be
      https://github.com/llvm/llvm-project/commit/a89ca4ae179def7fac1a35e53d7b28d4c9d531be
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    A llvm/test/DebugInfo/MIR/Hexagon/bundled-call-pr44001.mir

  Log Message:
  -----------
  Fix PR44001: assert failure in getFunctionLocalOffsetAfterInsn

Summary:
Assert in getFunctionLocalOffsetAfterInsn() fails when processing a call
MachineInstr inside a bundle and compiling with debug info. This is
because labels are added by DwarfDebug::beginInstruction() which is
called for each top-level MI by EmitFunctionBody()'s for-loop iteration
but constructCallSiteEntryDIEs() which calls
getFunctionLocalOffsetAfterInsn() iterates over all MIs.

This commit modifies constructCallSiteEntryDIEs() to get the associated
bundle MI for call MIs inside a bundle and use that to when calling
getFunctionLocalOffsetAfterInsn() and getLabelAfterInsn(). It also skips
loop iterations for bundle MIs since the loop statements are concerned
with debug info for each physical instructions and bundles represent a
group of instructions. It also fix the comment about PCAddr since the
code is getting the return address and not the call address.

Reviewers: dstenb, vsk, aprantl, djtodoro, dblaikie, NikolaPrica

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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




More information about the All-commits mailing list