[all-commits] [llvm/llvm-project] aa7087: [MC] Add parameter `Address` to MCInstPrinter::pri...

Fangrui Song via All-commits all-commits at lists.llvm.org
Mon Jan 6 20:42:30 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: aa708763d30384c0da0b0779be96ba45f65773df
      https://github.com/llvm/llvm-project/commit/aa708763d30384c0da0b0779be96ba45f65773df
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M llvm/include/llvm/MC/MCInstPrinter.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCDisassembler/Disassembler.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
    M llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp
    M llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h
    M llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp
    M llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h
    M llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp
    M llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
    M llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp
    M llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h
    M llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h
    M llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h
    M llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h
    M llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
    M llvm/tools/llvm-exegesis/lib/Analysis.cpp
    M llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp
    M llvm/tools/llvm-mca/Views/InstructionInfoView.cpp
    M llvm/tools/llvm-mca/Views/ResourcePressureView.cpp
    M llvm/tools/llvm-mca/Views/TimelineView.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp

  Log Message:
  -----------
  [MC] Add parameter `Address` to MCInstPrinter::printInst

printInst prints a branch/call instruction as `b offset` (there are many
variants on various targets) instead of `b address`.

It is a convention to use address instead of offset in most external
symbolizers/disassemblers. This difference makes `llvm-objdump -d`
output unsatisfactory.

Add `uint64_t Address` to printInst(), so that it can pass the argument to
printInstruction(). `raw_ostream &OS` is moved to the last to be
consistent with other print* methods.

The next step is to pass `Address` to printInstruction() (generated by
tablegen from the instruction set description). We can gradually migrate
targets to print addresses instead of offsets.

In any case, downstream projects which don't know `Address` can pass 0 as
the argument.

Reviewed By: jhenderson

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




More information about the All-commits mailing list