[mips] Fix 'jumpy' debug line info around calls.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Sat, 24 Jan 2015 14:35:11 +0000 (14:35 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Sat, 24 Jan 2015 14:35:11 +0000 (14:35 +0000)
commit211422d4c3bbb7c84c4702ed87509d9b9f822165
tree8d9fcec103b0c1cb58e670624194de44932bdbef
parentf85bc8ac5af696d493b3a7f34670afd17dbee805
[mips] Fix 'jumpy' debug line info around calls.

Summary:
At the moment, address calculation is taking the debug line info from the
address node (e.g. TargetGlobalAddress). When a function is called multiple
times, this results in output of the form:

  .loc $first_call_location
  .. address calculation ..
  .. function call ..
  .. address calculation ..
  .loc $second_call_location
  .. function call ..
  .loc $first_call_location
  .. address calculation ..
  .loc $third_call_location
  .. function call ..

This patch makes address calculations for function calls take the debug line
info for the call node and results in output of the form:
  .loc $first_call_location
  .. address calculation ..
  .. function call ..
  .loc $second_call_location
  .. address calculation ..
  .. function call ..
  .loc $third_call_location
  .. address calculation ..
  .. function call ..

All other address calculations continue to use the address node.

Test Plan: Fixes test/DebugInfo/multiline.ll on a mips host.

Subscribers: dblaikie, llvm-commits

Differential Revision: http://reviews.llvm.org/D7050

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227005 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/Mips16ISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsISelLowering.h
test/DebugInfo/Mips/fn-call-line.ll [new file with mode: 0644]