@@ -1007,26 +1007,12 @@ class LinkGraph {
10071007 using GetEdgeKindNameFunction = const char *(*)(Edge::Kind);
10081008
10091009 LinkGraph (std::string Name, std::shared_ptr<orc::SymbolStringPool> SSP,
1010- const Triple &TT, SubtargetFeatures Features, unsigned PointerSize,
1011- llvm::endianness Endianness,
1010+ Triple TT, SubtargetFeatures Features,
10121011 GetEdgeKindNameFunction GetEdgeKindName)
1013- : Name(std::move(Name)), SSP(std::move(SSP)), TT(TT),
1014- Features (std::move(Features)), PointerSize(PointerSize),
1015- Endianness(Endianness), GetEdgeKindName(std::move(GetEdgeKindName)) {}
1016-
1017- LinkGraph (std::string Name, std::shared_ptr<orc::SymbolStringPool> SSP,
1018- const Triple &TT, unsigned PointerSize, llvm::endianness Endianness,
1019- GetEdgeKindNameFunction GetEdgeKindName)
1020- : LinkGraph(std::move(Name), std::move(SSP), TT, SubtargetFeatures(),
1021- PointerSize, Endianness, GetEdgeKindName) {}
1022-
1023- LinkGraph (std::string Name, std::shared_ptr<orc::SymbolStringPool> SSP,
1024- const Triple &TT, GetEdgeKindNameFunction GetEdgeKindName)
1025- : LinkGraph(std::move(Name), std::move(SSP), TT, SubtargetFeatures(),
1026- Triple::getArchPointerBitWidth(TT.getArch()) / 8,
1027- TT.isLittleEndian() ? endianness::little : endianness::big,
1028- GetEdgeKindName) {
1029- assert (!(Triple::getArchPointerBitWidth (TT.getArch ()) % 8 ) &&
1012+ : Name(std::move(Name)), SSP(std::move(SSP)), TT(std::move(TT)),
1013+ Features (std::move(Features)),
1014+ GetEdgeKindName(std::move(GetEdgeKindName)) {
1015+ assert (!(Triple::getArchPointerBitWidth (this ->TT .getArch ()) % 8 ) &&
10301016 " Arch bitwidth is not a multiple of 8" );
10311017 }
10321018
@@ -1047,10 +1033,12 @@ class LinkGraph {
10471033 const SubtargetFeatures &getFeatures () const { return Features; }
10481034
10491035 // / Returns the pointer size for use in this graph.
1050- unsigned getPointerSize () const { return PointerSize ; }
1036+ unsigned getPointerSize () const { return TT. getArchPointerBitWidth () / 8 ; }
10511037
10521038 // / Returns the endianness of content in this graph.
1053- llvm::endianness getEndianness () const { return Endianness; }
1039+ llvm::endianness getEndianness () const {
1040+ return TT.isLittleEndian () ? endianness::little : endianness::big;
1041+ }
10541042
10551043 const char *getEdgeKindName (Edge::Kind K) const { return GetEdgeKindName (K); }
10561044
@@ -1640,8 +1628,6 @@ class LinkGraph {
16401628 std::shared_ptr<orc::SymbolStringPool> SSP;
16411629 Triple TT;
16421630 SubtargetFeatures Features;
1643- unsigned PointerSize;
1644- llvm::endianness Endianness;
16451631 GetEdgeKindNameFunction GetEdgeKindName = nullptr ;
16461632 DenseMap<StringRef, std::unique_ptr<Section>> Sections;
16471633 // FIXME(jared): these should become dense maps
@@ -2039,8 +2025,7 @@ createLinkGraphFromObject(MemoryBufferRef ObjectBuffer,
20392025
20402026// / Create a \c LinkGraph defining the given absolute symbols.
20412027std::unique_ptr<LinkGraph>
2042- absoluteSymbolsLinkGraph (const Triple &TT,
2043- std::shared_ptr<orc::SymbolStringPool> SSP,
2028+ absoluteSymbolsLinkGraph (Triple TT, std::shared_ptr<orc::SymbolStringPool> SSP,
20442029 orc::SymbolMap Symbols);
20452030
20462031// / Link the given graph.
0 commit comments