Lines Matching full:g

24   LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
27 EXPECT_EQ(G.getName(), "foo");
28 EXPECT_EQ(G.getTargetTriple().str(), "x86_64-apple-darwin");
29 EXPECT_EQ(G.getPointerSize(), 8U);
30 EXPECT_EQ(G.getEndianness(), llvm::endianness::little);
31 EXPECT_TRUE(G.external_symbols().empty());
32 EXPECT_TRUE(G.absolute_symbols().empty());
33 EXPECT_TRUE(G.defined_symbols().empty());
34 EXPECT_TRUE(G.blocks().empty());
39 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
44 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
46 auto &B1 = G.createContentBlock(Sec1, BlockContent, B1Addr, 8, 0);
47 auto &S1 = G.addDefinedSymbol(B1, 4, "S1", 4, Linkage::Strong, Scope::Default,
59 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
63 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
65 G.createContentBlock(Sec1, BlockContent, orc::ExecutorAddr(0x1000), 8, 0);
66 G.addDefinedSymbol(B, 0, "S", 4, Linkage::Strong, Scope::Default, false,
70 G.createSection("__data.2", orc::MemProt::Read | orc::MemProt::Write);
78 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
82 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
84 auto &B1 = G.createContentBlock(Sec1, BlockContent, B1Addr, 8, 0);
86 auto &B2 = G.createContentBlock(Sec1, BlockContent, B2Addr, 8, 0);
87 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", 4, Linkage::Strong, Scope::Default,
89 auto &S2 = G.addDefinedSymbol(B2, 4, "S2", 4, Linkage::Strong, Scope::Default,
93 G.createSection("__data.2", orc::MemProt::Read | orc::MemProt::Write);
95 auto &B3 = G.createContentBlock(Sec2, BlockContent, B3Addr, 8, 0);
97 auto &B4 = G.createContentBlock(Sec2, BlockContent, B4Addr, 8, 0);
98 auto &S3 = G.addDefinedSymbol(B3, 0, "S3", 4, Linkage::Strong, Scope::Default,
100 auto &S4 = G.addDefinedSymbol(B4, 4, "S4", 4, Linkage::Strong, Scope::Default,
114 EXPECT_EQ(std::distance(G.blocks().begin(), G.blocks().end()), 4);
115 EXPECT_TRUE(llvm::count(G.blocks(), &B1));
116 EXPECT_TRUE(llvm::count(G.blocks(), &B2));
117 EXPECT_TRUE(llvm::count(G.blocks(), &B3));
118 EXPECT_TRUE(llvm::count(G.blocks(), &B4));
123 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 4);
124 EXPECT_TRUE(llvm::count(G.defined_symbols(), &S1));
125 EXPECT_TRUE(llvm::count(G.defined_symbols(), &S2));
126 EXPECT_TRUE(llvm::count(G.defined_symbols(), &S3));
127 EXPECT_TRUE(llvm::count(G.defined_symbols(), &S4));
132 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
136 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
138 G.createContentBlock(Sec1, BlockContent, orc::ExecutorAddr(0x1000), 8, 0);
139 auto &S = G.addExternalSymbol("S1", 0, false);
162 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
166 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
170 auto &B = G.createContentBlock(Sec, BlockContent, BAddr, 8, 0);
187 auto MutableContent = B.getMutableContent(G);
199 auto MutableContent2 = B.getMutableContent(G);
208 auto MutableContent3 = B.getMutableContent(G);
217 auto Writer = G.getBlockContentWriter(B);
220 auto Reader = G.getBlockContentReader(B);
235 auto &B2 = G.createMutableContentBlock(Sec, MutableContent,
243 G.createMutableContentBlock(Sec, 16, orc::ExecutorAddr(0x2000), 8, 0);
252 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
256 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
259 G.createContentBlock(Sec, BlockContent, orc::ExecutorAddr(0x1000), 8, 0);
263 G.addAnonymousSymbol(B1, 0, 0, false, false);
266 auto Foo = G.intern("foo");
267 auto &FooSym = G.addDefinedSymbol(B1, 0, Foo, 4, Linkage::Strong,
270 auto Bar = G.intern("bar");
271 auto &BarSym = G.addExternalSymbol(Bar, 0, false);
273 auto Baz = G.intern("baz");
274 auto &BazSym = G.addAbsoluteSymbol(Baz, orc::ExecutorAddr(0x1234), 0,
277 EXPECT_EQ(G.findDefinedSymbolByName(Foo), &FooSym);
278 EXPECT_EQ(G.findExternalSymbolByName(Foo), nullptr);
279 EXPECT_EQ(G.findAbsoluteSymbolByName(Foo), nullptr);
281 EXPECT_EQ(G.findDefinedSymbolByName(Bar), nullptr);
282 EXPECT_EQ(G.findExternalSymbolByName(Bar), &BarSym);
283 EXPECT_EQ(G.findAbsoluteSymbolByName(Bar), nullptr);
285 EXPECT_EQ(G.findDefinedSymbolByName(Baz), nullptr);
286 EXPECT_EQ(G.findExternalSymbolByName(Baz), nullptr);
287 EXPECT_EQ(G.findAbsoluteSymbolByName(Baz), &BazSym);
289 auto Qux = G.intern("qux");
290 EXPECT_EQ(G.findDefinedSymbolByName(Qux), nullptr);
291 EXPECT_EQ(G.findExternalSymbolByName(Qux), nullptr);
292 EXPECT_EQ(G.findAbsoluteSymbolByName(Qux), nullptr);
297 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
301 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
305 G.createContentBlock(Sec, BlockContent, orc::ExecutorAddr(0x1000), 8, 0);
308 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", 4, Linkage::Strong, Scope::Default,
319 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 1U)
322 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
327 auto &S2 = G.addAbsoluteSymbol("S2", orc::ExecutorAddr(0x2000), 0,
332 std::distance(G.absolute_symbols().begin(), G.absolute_symbols().end()),
338 G.makeExternal(S1);
339 G.makeExternal(S2);
354 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 0U)
357 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
361 std::distance(G.absolute_symbols().begin(), G.absolute_symbols().end()),
368 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
372 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
376 G.createContentBlock(Sec, BlockContent, orc::ExecutorAddr(0x1000), 8, 0);
379 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", 4, Linkage::Strong, Scope::Default,
390 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 1U)
393 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
398 auto &S2 = G.addExternalSymbol("S2", 0, true);
402 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
410 G.makeAbsolute(S1, S1AbsAddr);
411 G.makeAbsolute(S2, S2AbsAddr);
424 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 0U)
427 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
431 std::distance(G.absolute_symbols().begin(), G.absolute_symbols().end()),
438 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
442 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
446 auto &B1 = G.createContentBlock(Sec, BlockContent, B1Addr, 8, 0);
449 auto &S1 = G.addExternalSymbol("S1", 4, true);
458 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 0U)
461 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
467 G.makeDefined(S1, B1, 0, 4, Linkage::Strong, Scope::Default, false);
477 std::distance(G.defined_symbols().begin(), G.defined_symbols().end()), 1U)
480 std::distance(G.external_symbols().begin(), G.external_symbols().end()),
487 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
491 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
495 auto &B1 = G.createContentBlock(Sec, BlockContent, B1Addr, 8, 0);
497 auto &B2 = G.createContentBlock(Sec, BlockContent, B2Addr, 8, 0);
499 auto &B3 = G.createContentBlock(Sec, BlockContent.slice(0, 32), B3Addr, 8, 0);
502 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", B1.getSize(), Linkage::Strong,
506 G.transferDefinedSymbol(S1, B2, 0, 64);
513 G.transferDefinedSymbol(S1, B3, 16, std::nullopt);
523 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
527 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
529 G.createSection("__data.2", orc::MemProt::Read | orc::MemProt::Write);
533 auto &B1 = G.createContentBlock(Sec1, BlockContent, B1Addr, 8, 0);
535 auto &B2 = G.createContentBlock(Sec2, BlockContent, B2Addr, 8, 0);
538 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", B1.getSize(), Linkage::Strong,
542 G.transferDefinedSymbol(S1, B2, 0, 64);
558 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
562 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
564 G.createSection("__data.2", orc::MemProt::Read | orc::MemProt::Write);
568 auto &B1 = G.createContentBlock(Sec1, BlockContent, B1Addr, 8, 0);
570 auto &B2 = G.createContentBlock(Sec1, BlockContent, B2Addr, 8, 0);
573 G.addDefinedSymbol(B1, 0, "S1", B1.getSize(), Linkage::Strong, Scope::Default,
575 G.addDefinedSymbol(B1, 1, "S2", B1.getSize() - 1, Linkage::Strong,
579 G.addDefinedSymbol(B2, 0, "S3", B2.getSize(), Linkage::Strong, Scope::Default,
581 G.addDefinedSymbol(B2, 1, "S4", B2.getSize() - 1, Linkage::Strong,
592 G.transferBlock(B1, Sec2);
607 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
611 G.createSection("__data.1", orc::MemProt::Read | orc::MemProt::Write);
613 G.createSection("__data.2", orc::MemProt::Read | orc::MemProt::Write);
615 G.createSection("__data.3", orc::MemProt::Read | orc::MemProt::Write);
619 auto &B1 = G.createContentBlock(Sec1, BlockContent, B1Addr, 8, 0);
621 auto &B2 = G.createContentBlock(Sec2, BlockContent, B2Addr, 8, 0);
623 auto &B3 = G.createContentBlock(Sec3, BlockContent, B3Addr, 8, 0);
626 G.addDefinedSymbol(B1, 0, "S1", B1.getSize(), Linkage::Strong, Scope::Default,
628 G.addDefinedSymbol(B2, 0, "S2", B2.getSize(), Linkage::Strong, Scope::Default,
630 G.addDefinedSymbol(B3, 0, "S3", B2.getSize(), Linkage::Strong, Scope::Default,
635 EXPECT_EQ(G.sections_size(), 3U) << "Expected three sections initially";
644 G.mergeSections(Sec1, Sec1);
648 EXPECT_EQ(G.sections_size(), 3U)
664 G.mergeSections(Sec1, Sec2);
668 EXPECT_EQ(G.sections_size(), 2U)
679 G.mergeSections(Sec1, Sec3, true);
681 EXPECT_EQ(G.sections_size(), 2U) << "Expected two sections after third merge";
694 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
698 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
702 auto &B1 = G.createContentBlock(Sec, BlockContent, B1Addr, 8, 0);
705 auto &S1 = G.addDefinedSymbol(B1, 0, "S1", 4, Linkage::Strong, Scope::Default,
707 auto &S2 = G.addDefinedSymbol(B1, 4, "S2", 4, Linkage::Strong, Scope::Default,
709 auto &S3 = G.addDefinedSymbol(B1, 8, "S3", 4, Linkage::Strong, Scope::Default,
711 auto &S4 = G.addDefinedSymbol(B1, 12, "S4", 4, Linkage::Strong,
715 auto &S5 = G.addDefinedSymbol(B1, 0, "S5", 16, Linkage::Strong,
717 auto &S6 = G.addDefinedSymbol(B1, 6, "S6", 10, Linkage::Strong,
723 auto &EB = G.createContentBlock(Sec, BlockContent, EBAddr, 8, 0);
724 auto &ES1 = G.addDefinedSymbol(EB, 0, "TS1", 4, Linkage::Strong,
726 auto &ES2 = G.addDefinedSymbol(EB, 4, "TS2", 4, Linkage::Strong,
728 auto &ES3 = G.addDefinedSymbol(EB, 8, "TS3", 4, Linkage::Strong,
730 auto &ES4 = G.addDefinedSymbol(EB, 12, "TS4", 4, Linkage::Strong,
740 auto Blocks = G.splitBlock(B1, ArrayRef<int>({4, 12}));
807 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
812 auto Buf1 = G.allocateBuffer(10);
817 auto Buf2 = G.allocateContent(ArrayRef<char>(Buf2Src));
822 auto Buf3 = G.allocateCString(Buf3Src);
829 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
833 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
839 G.createContentBlock(Sec, CString, orc::ExecutorAddr(), 1, 0);
841 G.createContentBlock(Sec, NotACString, orc::ExecutorAddr(), 1, 0);
843 G.createZeroFillBlock(Sec, 1, orc::ExecutorAddr(), 1, 0);
845 G.createZeroFillBlock(Sec, 2, orc::ExecutorAddr(), 1, 0);
854 LinkGraph G("foo", std::make_shared<orc::SymbolStringPool>(),
860 G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write);
861 G.createContentBlock(Sec1, BlockContent.slice(0, 8), orc::ExecutorAddr(), 8,
866 G.createSection("__metadata", orc::MemProt::Read | orc::MemProt::Write);
868 G.createContentBlock(Sec2, BlockContent.slice(0, 8), orc::ExecutorAddr(), 8,
871 BasicLayout BL(G);