[llvm] r214424 - Move MCObjectSymbolizer.h to MC/MCAnalysis.
Rafael Espindola
rafael.espindola at gmail.com
Thu Jul 31 12:29:23 PDT 2014
Author: rafael
Date: Thu Jul 31 14:29:23 2014
New Revision: 214424
URL: http://llvm.org/viewvc/llvm-project?rev=214424&view=rev
Log:
Move MCObjectSymbolizer.h to MC/MCAnalysis.
The cpp file is already in lib/MC/MCAnalysis.
Added:
llvm/trunk/include/llvm/MC/MCAnalysis/MCObjectSymbolizer.h
- copied, changed from r214423, llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h
Removed:
llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h
Modified:
llvm/trunk/lib/MC/MCAnalysis/MCObjectDisassembler.cpp
llvm/trunk/lib/MC/MCAnalysis/MCObjectSymbolizer.cpp
llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
Copied: llvm/trunk/include/llvm/MC/MCAnalysis/MCObjectSymbolizer.h (from r214423, llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAnalysis/MCObjectSymbolizer.h?p2=llvm/trunk/include/llvm/MC/MCAnalysis/MCObjectSymbolizer.h&p1=llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h&r1=214423&r2=214424&rev=214424&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h (original)
+++ llvm/trunk/include/llvm/MC/MCAnalysis/MCObjectSymbolizer.h Thu Jul 31 14:29:23 2014
@@ -1,4 +1,4 @@
-//===-- llvm/MC/MCObjectSymbolizer.h --------------------------------------===//
+//===-- MCObjectSymbolizer.h ----------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
@@ -12,8 +12,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_MC_MCOBJECTSYMBOLIZER_H
-#define LLVM_MC_MCOBJECTSYMBOLIZER_H
+#ifndef LLVM_MC_MCANALYSIS_MCOBJECTSYMBOLIZER_H
+#define LLVM_MC_MCANALYSIS_MCOBJECTSYMBOLIZER_H
#include "llvm/ADT/DenseMap.h"
#include "llvm/MC/MCSymbolizer.h"
Removed: llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h?rev=214423&view=auto
==============================================================================
--- llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h (original)
+++ llvm/trunk/include/llvm/MC/MCObjectSymbolizer.h (removed)
@@ -1,83 +0,0 @@
-//===-- llvm/MC/MCObjectSymbolizer.h --------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MCObjectSymbolizer class, an MCSymbolizer that is
-// backed by an object::ObjectFile.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_MC_MCOBJECTSYMBOLIZER_H
-#define LLVM_MC_MCOBJECTSYMBOLIZER_H
-
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/MC/MCSymbolizer.h"
-#include "llvm/Object/ObjectFile.h"
-#include <vector>
-
-namespace llvm {
-
-class MCExpr;
-class MCInst;
-class MCRelocationInfo;
-class raw_ostream;
-
-/// \brief An ObjectFile-backed symbolizer.
-class MCObjectSymbolizer : public MCSymbolizer {
-protected:
- const object::ObjectFile *Obj;
-
- // Map a load address to the first relocation that applies there. As far as I
- // know, if there are several relocations at the exact same address, they are
- // related and the others can be determined from the first that was found in
- // the relocation table. For instance, on x86-64 mach-o, a SUBTRACTOR
- // relocation (referencing the minuend symbol) is followed by an UNSIGNED
- // relocation (referencing the subtrahend symbol).
- const object::RelocationRef *findRelocationAt(uint64_t Addr);
- const object::SectionRef *findSectionContaining(uint64_t Addr);
-
- MCObjectSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo,
- const object::ObjectFile *Obj);
-
-public:
- /// \name Overridden MCSymbolizer methods:
- /// @{
- bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &cStream,
- int64_t Value, uint64_t Address,
- bool IsBranch, uint64_t Offset,
- uint64_t InstSize) override;
-
- void tryAddingPcLoadReferenceComment(raw_ostream &cStream,
- int64_t Value,
- uint64_t Address) override;
- /// @}
-
- /// \brief Look for an external function symbol at \p Addr.
- /// (References through the ELF PLT, Mach-O stubs, and similar).
- /// \returns An MCExpr representing the external symbol, or 0 if not found.
- virtual StringRef findExternalFunctionAt(uint64_t Addr);
-
- /// \brief Create an object symbolizer for \p Obj.
- static MCObjectSymbolizer *
- createObjectSymbolizer(MCContext &Ctx,
- std::unique_ptr<MCRelocationInfo> RelInfo,
- const object::ObjectFile *Obj);
-
-private:
- typedef DenseMap<uint64_t, object::RelocationRef> AddrToRelocMap;
- typedef std::vector<object::SectionRef> SortedSectionList;
- SortedSectionList SortedSections;
- AddrToRelocMap AddrToReloc;
-
- void buildSectionList();
- void buildRelocationByAddrMap();
-};
-
-}
-
-#endif
Modified: llvm/trunk/lib/MC/MCAnalysis/MCObjectDisassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAnalysis/MCObjectDisassembler.cpp?rev=214424&r1=214423&r2=214424&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAnalysis/MCObjectDisassembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAnalysis/MCObjectDisassembler.cpp Thu Jul 31 14:29:23 2014
@@ -16,9 +16,9 @@
#include "llvm/MC/MCAnalysis/MCAtom.h"
#include "llvm/MC/MCAnalysis/MCFunction.h"
#include "llvm/MC/MCAnalysis/MCModule.h"
+#include "llvm/MC/MCAnalysis/MCObjectSymbolizer.h"
#include "llvm/MC/MCDisassembler.h"
#include "llvm/MC/MCInstrAnalysis.h"
-#include "llvm/MC/MCObjectSymbolizer.h"
#include "llvm/Object/MachO.h"
#include "llvm/Object/ObjectFile.h"
#include "llvm/Support/Debug.h"
Modified: llvm/trunk/lib/MC/MCAnalysis/MCObjectSymbolizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAnalysis/MCObjectSymbolizer.cpp?rev=214424&r1=214423&r2=214424&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAnalysis/MCObjectSymbolizer.cpp (original)
+++ llvm/trunk/lib/MC/MCAnalysis/MCObjectSymbolizer.cpp Thu Jul 31 14:29:23 2014
@@ -7,7 +7,7 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/MC/MCObjectSymbolizer.h"
+#include "llvm/MC/MCAnalysis/MCObjectSymbolizer.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp?rev=214424&r1=214423&r2=214424&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp Thu Jul 31 14:29:23 2014
@@ -24,6 +24,7 @@
#include "llvm/MC/MCAnalysis/MCFunction.h"
#include "llvm/MC/MCAnalysis/MCModule.h"
#include "llvm/MC/MCAnalysis/MCModuleYAML.h"
+#include "llvm/MC/MCAnalysis/MCObjectSymbolizer.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDisassembler.h"
@@ -33,7 +34,6 @@
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCObjectDisassembler.h"
#include "llvm/MC/MCObjectFileInfo.h"
-#include "llvm/MC/MCObjectSymbolizer.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCRelocationInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
More information about the llvm-commits
mailing list