[all-commits] [llvm/llvm-project] 170ac4: [CSInfo][ISEL] Call site info generation support f...

Djordje Todorovic via All-commits all-commits at lists.llvm.org
Fri May 15 01:13:48 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 170ac4be3392201d5f5e124e8a1b7d78de3f82c8
      https://github.com/llvm/llvm-project/commit/170ac4be3392201d5f5e124e8a1b7d78de3f82c8
  Author: Djordje Todorovic <djordje.todorovic at syrmia.com>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M clang/lib/Frontend/CompilerInvocation.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/Mips/MipsTargetMachine.cpp
    A llvm/test/CodeGen/Mips/call-site-info-output.ll
    A llvm/test/CodeGen/Mips/dbg-call-site-info-reg-d-split.ll
    A llvm/test/DebugInfo/Mips/dw_op_entry_value_32bit.ll
    A llvm/test/DebugInfo/Mips/dw_op_entry_value_64bit.ll

  Log Message:
  -----------
  [CSInfo][ISEL] Call site info generation support for Mips

Debug entry values functionality provides debug information about
call sites and function parameters values at the call entry spot.
Condition for generating this type of information is
compiling with -g option and optimization level higher
than zero(-O0).

In ISEL phase, while lowering call instructions, collect info
about registers that forward arguments into following
function frame. We store such info into MachineFunction of
the caller function. This is used very late, when dumping DWARF
info about call site parameters.

The call site info is visible at MIR level, as callSites attribute
of MachineFunction. Also, when using unmodified parameter value
inside callee it could be described as DW_OP_entry_value expression.
To deal with callSites attribute, we should pass
-emit-call-site-info option to llc.

This patch enables functionality in clang frontend and adds
call site info generation support for MIPS targets
(mips, mipsel, mips64, mips64el).

Patch by Nikola Tesic

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




More information about the All-commits mailing list