aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-dwp/llvm-dwp.cpp
diff options
context:
space:
mode:
authorPhilipp Krones <philipp.krones@embecosm.com>2021-05-05 10:03:02 -0700
committerFangrui Song <i@maskray.me>2021-05-05 10:03:02 -0700
commit632ebc4ab4374e53fce1ec870465c587e0a33668 (patch)
treef3bbf72dacf56163a62c0f6e18c52f2fd102d8ff /llvm/tools/llvm-dwp/llvm-dwp.cpp
parent80e8025083982f4eca8ca8200eafecf4a5c3ae6e (diff)
downloadllvm-632ebc4ab4374e53fce1ec870465c587e0a33668.zip
llvm-632ebc4ab4374e53fce1ec870465c587e0a33668.tar.gz
llvm-632ebc4ab4374e53fce1ec870465c587e0a33668.tar.bz2
[MC] Untangle MCContext and MCObjectFileInfo
This untangles the MCContext and the MCObjectFileInfo. There is a circular dependency between MCContext and MCObjectFileInfo. Currently this dependency also exists during construction: You can't contruct a MOFI without a MCContext without constructing the MCContext with a dummy version of that MOFI first. This removes this dependency during construction. In a perfect world, MCObjectFileInfo wouldn't depend on MCContext at all, but only be stored in the MCContext, like other MC information. This is future work. This also shifts/adds more information to the MCContext making it more available to the different targets. Namely: - TargetTriple - ObjectFileType - SubtargetInfo Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D101462
Diffstat (limited to 'llvm/tools/llvm-dwp/llvm-dwp.cpp')
-rw-r--r--llvm/tools/llvm-dwp/llvm-dwp.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/tools/llvm-dwp/llvm-dwp.cpp b/llvm/tools/llvm-dwp/llvm-dwp.cpp
index 790541c..1be8e47 100644
--- a/llvm/tools/llvm-dwp/llvm-dwp.cpp
+++ b/llvm/tools/llvm-dwp/llvm-dwp.cpp
@@ -875,15 +875,15 @@ int main(int argc, char **argv) {
if (!MAI)
return error("no asm info for target " + TripleName, Context);
- MCObjectFileInfo MOFI;
- MCContext MC(MAI.get(), MRI.get(), &MOFI);
- MOFI.InitMCObjectFileInfo(*ErrOrTriple, /*PIC*/ false, MC);
-
std::unique_ptr<MCSubtargetInfo> MSTI(
TheTarget->createMCSubtargetInfo(TripleName, "", ""));
if (!MSTI)
return error("no subtarget info for target " + TripleName, Context);
+ MCObjectFileInfo MOFI;
+ MCContext MC(*ErrOrTriple, MAI.get(), MRI.get(), &MOFI, MSTI.get());
+ MOFI.initMCObjectFileInfo(MC, /*PIC=*/false);
+
MCTargetOptions Options;
auto MAB = TheTarget->createMCAsmBackend(*MSTI, *MRI, Options);
if (!MAB)