[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)
commit9a4f2c55df8d34043d5d3e43ebb925c7fad36612
tree8a0bd89b87fbc89755c580de9af99802c7a4feb7
parent450f97dcb92ec5f1fa163f37206b8793a3158b2c
[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

llvm-svn: 227005
llvm/lib/Target/Mips/Mips16ISelLowering.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsISelLowering.h
llvm/test/DebugInfo/Mips/fn-call-line.ll [new file with mode: 0644]