Skip to content

Commit 78bfcc5

Browse files
committed
[MC] Export MCDXContainerObjectWriter
Similar to other ObjectWriter classes.
1 parent 33bdb53 commit 78bfcc5

File tree

3 files changed

+17
-38
lines changed

3 files changed

+17
-38
lines changed

llvm/include/llvm/MC/MCDXContainerWriter.h

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#define LLVM_MC_MCDXCONTAINERWRITER_H
1111

1212
#include "llvm/MC/MCObjectWriter.h"
13+
#include "llvm/MC/MCValue.h"
14+
#include "llvm/Support/EndianStream.h"
1315
#include "llvm/TargetParser/Triple.h"
1416

1517
namespace llvm {
@@ -31,15 +33,21 @@ class MCDXContainerTargetWriter : public MCObjectTargetWriter {
3133
}
3234
};
3335

34-
/// Construct a new DXContainer writer instance.
35-
///
36-
/// \param MOTW - The target specific DXContainer writer subclass.
37-
/// \param OS - The stream to write to.
38-
/// \returns The constructed object writer.
39-
std::unique_ptr<MCObjectWriter>
40-
createDXContainerObjectWriter(std::unique_ptr<MCDXContainerTargetWriter> MOTW,
41-
raw_pwrite_stream &OS);
36+
class DXContainerObjectWriter final : public MCObjectWriter {
37+
support::endian::Writer W;
38+
std::unique_ptr<MCDXContainerTargetWriter> TargetObjectWriter;
4239

40+
public:
41+
DXContainerObjectWriter(std::unique_ptr<MCDXContainerTargetWriter> MOTW,
42+
raw_pwrite_stream &OS)
43+
: W(OS, llvm::endianness::little), TargetObjectWriter(std::move(MOTW)) {}
44+
45+
void recordRelocation(MCAssembler &Asm, const MCFragment *Fragment,
46+
const MCFixup &Fixup, MCValue Target,
47+
uint64_t &FixedValue) override {}
48+
49+
uint64_t writeObject(MCAssembler &Asm) override;
50+
};
4351
} // end namespace llvm
4452

4553
#endif // LLVM_MC_MCDXCONTAINERWRITER_H

llvm/lib/MC/MCAsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ MCAsmBackend::createObjectWriter(raw_pwrite_stream &OS) const {
5656
return createXCOFFObjectWriter(
5757
cast<MCXCOFFObjectTargetWriter>(std::move(TW)), OS);
5858
case Triple::DXContainer:
59-
return createDXContainerObjectWriter(
59+
return std::make_unique<DXContainerObjectWriter>(
6060
cast<MCDXContainerTargetWriter>(std::move(TW)), OS);
6161
default:
6262
llvm_unreachable("unexpected object format");

llvm/lib/MC/MCDXContainerWriter.cpp

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,11 @@
1313
#include "llvm/MC/MCSection.h"
1414
#include "llvm/MC/MCValue.h"
1515
#include "llvm/Support/Alignment.h"
16-
#include "llvm/Support/EndianStream.h"
1716

1817
using namespace llvm;
1918

2019
MCDXContainerTargetWriter::~MCDXContainerTargetWriter() {}
2120

22-
namespace {
23-
class DXContainerObjectWriter : public MCObjectWriter {
24-
::support::endian::Writer W;
25-
26-
/// The target specific DXContainer writer instance.
27-
std::unique_ptr<MCDXContainerTargetWriter> TargetObjectWriter;
28-
29-
public:
30-
DXContainerObjectWriter(std::unique_ptr<MCDXContainerTargetWriter> MOTW,
31-
raw_pwrite_stream &OS)
32-
: W(OS, llvm::endianness::little), TargetObjectWriter(std::move(MOTW)) {}
33-
34-
~DXContainerObjectWriter() override {}
35-
36-
private:
37-
void recordRelocation(MCAssembler &Asm, const MCFragment *Fragment,
38-
const MCFixup &Fixup, MCValue Target,
39-
uint64_t &FixedValue) override {}
40-
41-
uint64_t writeObject(MCAssembler &Asm) override;
42-
};
43-
} // namespace
44-
4521
uint64_t DXContainerObjectWriter::writeObject(MCAssembler &Asm) {
4622
// Start the file size as the header plus the size of the part offsets.
4723
// Presently DXContainer files usually contain 7-10 parts. Reserving space for
@@ -140,8 +116,3 @@ uint64_t DXContainerObjectWriter::writeObject(MCAssembler &Asm) {
140116
}
141117
return 0;
142118
}
143-
144-
std::unique_ptr<MCObjectWriter> llvm::createDXContainerObjectWriter(
145-
std::unique_ptr<MCDXContainerTargetWriter> MOTW, raw_pwrite_stream &OS) {
146-
return std::make_unique<DXContainerObjectWriter>(std::move(MOTW), OS);
147-
}

0 commit comments

Comments
 (0)