Skip to content

Commit a0f64dd

Browse files
committed
Use LLVM definitions for Swift section names (NFC)
1 parent 8fa3d30 commit a0f64dd

File tree

13 files changed

+31
-65
lines changed

13 files changed

+31
-65
lines changed

include/swift/ABI/ObjectFile.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99

1010
#include "llvm/Support/ErrorHandling.h"
1111
#include "llvm/ADT/StringRef.h"
12+
#include "llvm/ADT/Optional.h"
1213

1314
namespace swift {
1415

15-
/// Represents the nine reflection sections used by Swift
16+
/// Represents the nine reflection sections used by Swift + the Swift AST
17+
/// section used by the debugger.
1618
enum ReflectionSectionKind : uint8_t {
1719
#define HANDLE_SWIFT_SECTION(KIND, MACHO, ELF, COFF) KIND,
1820
#include "llvm/BinaryFormat/Swift.def"

include/swift/Basic/Dwarf.h

Lines changed: 0 additions & 33 deletions
This file was deleted.

lib/ASTSectionImporter/ASTSectionImporter.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#include "swift/ASTSectionImporter/ASTSectionImporter.h"
1919
#include "../Serialization/ModuleFormat.h"
2020
#include "swift/AST/ASTContext.h"
21-
#include "swift/Basic/Dwarf.h"
2221
#include "swift/Serialization/SerializedModuleLoader.h"
2322
#include "swift/Serialization/Validation.h"
2423
#include "llvm/Support/Debug.h"

lib/Driver/DarwinToolChains.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
#include "swift/AST/DiagnosticsDriver.h"
1616
#include "swift/AST/PlatformKind.h"
17-
#include "swift/Basic/Dwarf.h"
1817
#include "swift/Basic/LLVM.h"
1918
#include "swift/Basic/Platform.h"
2019
#include "swift/Basic/Range.h"

lib/Driver/ToolChains.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "ToolChains.h"
1414

1515
#include "swift/AST/DiagnosticsDriver.h"
16-
#include "swift/Basic/Dwarf.h"
1716
#include "swift/Basic/LLVM.h"
1817
#include "swift/Basic/Platform.h"
1918
#include "swift/Basic/Range.h"

lib/Driver/UnixToolChains.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
#include "ToolChains.h"
1414

15-
#include "swift/Basic/Dwarf.h"
1615
#include "swift/Basic/LLVM.h"
1716
#include "swift/Basic/Platform.h"
1817
#include "swift/Basic/Range.h"

lib/Driver/WindowsToolChains.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
#include "ToolChains.h"
1414

15-
#include "swift/Basic/Dwarf.h"
1615
#include "swift/Basic/LLVM.h"
1716
#include "swift/Basic/Platform.h"
1817
#include "swift/Basic/Range.h"

lib/FrontendTool/FrontendTool.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
#include "swift/AST/TBDGenRequests.h"
3737
#include "swift/AST/TypeRefinementContext.h"
3838
#include "swift/Basic/Defer.h"
39-
#include "swift/Basic/Dwarf.h"
4039
#include "swift/Basic/Edit.h"
4140
#include "swift/Basic/FileSystem.h"
4241
#include "swift/Basic/LLVMInitialize.h"
@@ -2240,10 +2239,6 @@ int swift::performFrontend(ArrayRef<const char *> Args,
22402239
trace.emplace(*buffer);
22412240
});
22422241

2243-
// Setting DWARF Version depend on platform
2244-
IRGenOptions &IRGenOpts = Invocation.getIRGenOptions();
2245-
IRGenOpts.DWARFVersion = swift::DWARFVersion;
2246-
22472242
// The compiler invocation is now fully configured; notify our observer.
22482243
if (observer) {
22492244
observer->parsedArgs(Invocation);

lib/IRGen/IRGen.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "../Serialization/ModuleFormat.h"
1818
#include "IRGenModule.h"
1919
#include "swift/ABI/MetadataValues.h"
20+
#include "swift/ABI/ObjectFile.h"
2021
#include "swift/AST/DiagnosticsIRGen.h"
2122
#include "swift/AST/IRGenOptions.h"
2223
#include "swift/AST/IRGenRequests.h"
@@ -26,7 +27,6 @@
2627
#include "swift/AST/SILOptimizerRequests.h"
2728
#include "swift/AST/TBDGenRequests.h"
2829
#include "swift/Basic/Defer.h"
29-
#include "swift/Basic/Dwarf.h"
3030
#include "swift/Basic/MD5Stream.h"
3131
#include "swift/Basic/Platform.h"
3232
#include "swift/Basic/Statistic.h"
@@ -1616,6 +1616,7 @@ void swift::createSwiftModuleObjectFile(SILModule &SILMod, StringRef Buffer,
16161616
auto *ASTSym = new llvm::GlobalVariable(M, Ty, /*constant*/ true,
16171617
llvm::GlobalVariable::InternalLinkage,
16181618
Data, "__Swift_AST");
1619+
16191620
std::string Section;
16201621
switch (IGM.TargetInfo.OutputObjectFormat) {
16211622
case llvm::Triple::DXContainer:
@@ -1624,19 +1625,24 @@ void swift::createSwiftModuleObjectFile(SILModule &SILMod, StringRef Buffer,
16241625
case llvm::Triple::UnknownObjectFormat:
16251626
llvm_unreachable("unknown object format");
16261627
case llvm::Triple::XCOFF:
1627-
case llvm::Triple::COFF:
1628-
Section = COFFASTSectionName;
1628+
case llvm::Triple::COFF: {
1629+
SwiftObjectFileFormatCOFF COFF;
1630+
Section = COFF.getSectionName(ReflectionSectionKind::swiftast);
16291631
break;
1632+
}
16301633
case llvm::Triple::ELF:
1631-
Section = ELFASTSectionName;
1632-
break;
1633-
case llvm::Triple::MachO:
1634-
Section = std::string(MachOASTSegmentName) + "," + MachOASTSectionName;
1634+
case llvm::Triple::Wasm: {
1635+
SwiftObjectFileFormatELF ELF;
1636+
Section = ELF.getSectionName(ReflectionSectionKind::swiftast);
16351637
break;
1636-
case llvm::Triple::Wasm:
1637-
Section = WasmASTSectionName;
1638+
}
1639+
case llvm::Triple::MachO: {
1640+
SwiftObjectFileFormatMachO MachO;
1641+
Section = std::string(*MachO.getSegmentName()) + "," +
1642+
MachO.getSectionName(ReflectionSectionKind::swiftast).str();
16381643
break;
16391644
}
1645+
}
16401646
ASTSym->setSection(Section);
16411647
ASTSym->setAlignment(llvm::MaybeAlign(serialization::SWIFTMODULE_ALIGNMENT));
16421648
::performLLVM(Opts, Ctx.Diags, nullptr, nullptr, IGM.getModule(),

lib/IRGen/IRGenDebugInfo.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
#include "swift/AST/Pattern.h"
3030
#include "swift/AST/TypeDifferenceVisitor.h"
3131
#include "swift/Basic/Compiler.h"
32-
#include "swift/Basic/Dwarf.h"
3332
#include "swift/Basic/SourceManager.h"
3433
#include "swift/Basic/Version.h"
3534
#include "swift/ClangImporter/ClangImporter.h"

lib/IRGen/IRGenModule.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include "swift/AST/GenericSignature.h"
2222
#include "swift/AST/IRGenOptions.h"
2323
#include "swift/AST/IRGenRequests.h"
24-
#include "swift/Basic/Dwarf.h"
2524
#include "swift/Demangling/ManglingMacros.h"
2625
#include "swift/ClangImporter/ClangImporter.h"
2726
#include "swift/IRGen/IRGenPublic.h"

lib/Serialization/Serialization.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
#include "swift/AST/TypeCheckRequests.h"
4141
#include "swift/AST/TypeVisitor.h"
4242
#include "swift/Basic/Defer.h"
43-
#include "swift/Basic/Dwarf.h"
4443
#include "swift/Basic/FileSystem.h"
4544
#include "swift/Basic/PathRemapper.h"
4645
#include "swift/Basic/STLExtras.h"

tools/lldb-moduleimport-test/lldb-moduleimport-test.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,27 @@
1616
//
1717
//===----------------------------------------------------------------------===//
1818

19+
#include "swift/ABI/ObjectFile.h"
1920
#include "swift/AST/ASTDemangler.h"
2021
#include "swift/AST/PrintOptions.h"
2122
#include "swift/ASTSectionImporter/ASTSectionImporter.h"
23+
#include "swift/Basic/LLVMInitialize.h"
2224
#include "swift/Frontend/Frontend.h"
2325
#include "swift/Serialization/SerializedModuleLoader.h"
2426
#include "swift/Serialization/Validation.h"
25-
#include "swift/Basic/Dwarf.h"
26-
#include "llvm/Object/ELFObjectFile.h"
27-
#include "swift/Basic/LLVMInitialize.h"
2827
#include "llvm/Object/COFF.h"
28+
#include "llvm/Object/ELFObjectFile.h"
2929
#include "llvm/Object/MachO.h"
3030
#include "llvm/Object/ObjectFile.h"
3131
#include "llvm/Support/CommandLine.h"
3232
#include "llvm/Support/FileSystem.h"
33+
#include "llvm/Support/ManagedStatic.h"
3334
#include "llvm/Support/MemoryBuffer.h"
3435
#include "llvm/Support/Path.h"
3536
#include "llvm/Support/PrettyStackTrace.h"
3637
#include "llvm/Support/Signals.h"
3738
#include "llvm/Support/TargetSelect.h"
3839
#include "llvm/Support/raw_ostream.h"
39-
#include "llvm/Support/ManagedStatic.h"
4040
#include <fstream>
4141
#include <sstream>
4242

@@ -209,15 +209,19 @@ collectASTModules(llvm::cl::list<std::string> &InputNames,
209209
continue;
210210
}
211211
llvm::StringRef Name = *NameOrErr;
212-
if ((MachO && Name == swift::MachOASTSectionName) ||
213-
(ELF && Name == swift::ELFASTSectionName) ||
214-
(COFF && Name == swift::COFFASTSectionName)) {
212+
if ((MachO && Name == swift::SwiftObjectFileFormatMachO().getSectionName(
213+
swift::ReflectionSectionKind::swiftast)) ||
214+
(ELF && Name == swift::SwiftObjectFileFormatELF().getSectionName(
215+
swift::ReflectionSectionKind::swiftast)) ||
216+
(COFF && Name == swift::SwiftObjectFileFormatCOFF().getSectionName(
217+
swift::ReflectionSectionKind::swiftast))) {
215218
uint64_t Size = Section.getSize();
216219

217-
llvm::Expected<llvm::StringRef> ContentsReference = Section.getContents();
220+
llvm::Expected<llvm::StringRef> ContentsReference =
221+
Section.getContents();
218222
if (!ContentsReference) {
219223
llvm::errs() << "error: " << name << " "
220-
<< errorToErrorCode(OF.takeError()).message() << "\n";
224+
<< errorToErrorCode(OF.takeError()).message() << "\n";
221225
return false;
222226
}
223227
char *Module = Alloc.Allocate<char>(Size);

0 commit comments

Comments
 (0)