<div dir="ltr">I hid the code behind a new debug command line flag in r289330 so it won't take time in a regular build. But we need to make it faster sooner or later.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 9, 2016 at 5:55 PM, Peter Collingbourne <span dir="ltr"><<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Rui, it looks like this change was responsible for a significant perf regression linking chrome_child.dll. It now takes at least 5 minutes to link.<div><br></div><div>Peter</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Thu, Dec 8, 2016 at 8:46 PM, Rui Ueyama via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ruiu<br>
Date: Thu Dec 8 22:46:54 2016<br>
New Revision: 289183<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=289183&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=289183&view=rev</a><br>
Log:<br>
Add type records to TPI stream.<br>
<br>
I don't think the data I add to a TPI stream in this patch is correct,<br>
but at least it can be displayed using llvm-pdbdump. Until I add more<br>
streams to a PDB file, I'm not able to know whether the data will be<br>
accepted by MSVC tools or not.<br>
<br>
Modified:<br>
lld/trunk/COFF/PDB.cpp<br>
lld/trunk/test/COFF/pdb.test<br>
<br>
Modified: lld/trunk/COFF/PDB.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=289183&r1=289182&r2=289183&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/PDB.cpp?<wbr>rev=289183&r1=289182&r2=289183<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/PDB.cpp (original)<br>
+++ lld/trunk/COFF/PDB.cpp Thu Dec 8 22:46:54 2016<br>
@@ -60,10 +60,10 @@ static SectionChunk *findByName(std::vec<br>
return nullptr;<br>
}<br>
<br>
-static void dumpDebugT(ScopedPrinter &W, ObjectFile *File) {<br>
+static ArrayRef<uint8_t> getDebugT(ObjectFile *File) {<br>
SectionChunk *Sec = findByName(File->getDebugChunk<wbr>s(), ".debug$T");<br>
if (!Sec)<br>
- return;<br>
+ return {};<br>
<br>
// First 4 bytes are section magic.<br>
ArrayRef<uint8_t> Data = Sec->getContents();<br>
@@ -71,9 +71,17 @@ static void dumpDebugT(ScopedPrinter &W,<br>
fatal(".debug$T too short");<br>
if (read32le(Data.data()) != COFF::DEBUG_SECTION_MAGIC)<br>
fatal(".debug$T has an invalid magic");<br>
+ return Data.slice(4);<br>
+}<br>
+<br>
+static void dumpDebugT(ScopedPrinter &W, ObjectFile *File) {<br>
+ ArrayRef<uint8_t> Data = getDebugT(File);<br>
+ if (Data.empty())<br>
+ return;<br>
<br>
+ msf::ByteStream Stream(Data);<br>
CVTypeDumper TypeDumper(&W, false);<br>
- if (auto EC = TypeDumper.dump(Data.slice(4))<wbr>)<br>
+ if (auto EC = TypeDumper.dump(Data))<br>
fatal(EC, "CVTypeDumper::dump failed");<br>
}<br>
<br>
@@ -104,6 +112,23 @@ static void dumpCodeView(SymbolTable *Sy<br>
}<br>
}<br>
<br>
+static void addTypeInfo(SymbolTable *Symtab,<br>
+ pdb::TpiStreamBuilder &TpiBuilder) {<br>
+ for (ObjectFile *File : Symtab->ObjectFiles) {<br>
+ ArrayRef<uint8_t> Data = getDebugT(File);<br>
+ if (Data.empty())<br>
+ continue;<br>
+<br>
+ msf::ByteStream Stream(Data);<br>
+ codeview::CVTypeArray Records;<br>
+ msf::StreamReader Reader(Stream);<br>
+ if (auto EC = Reader.readArray(Records, Reader.getLength()))<br>
+ fatal(EC, "Reader.readArray failed");<br>
+ for (const codeview::CVType &Rec : Records)<br>
+ TpiBuilder.addTypeRecord(Rec);<br>
+ }<br>
+}<br>
+<br>
// Creates a PDB file.<br>
void coff::createPDB(StringRef Path, SymbolTable *Symtab,<br>
ArrayRef<uint8_t> SectionTable) {<br>
@@ -137,6 +162,7 @@ void coff::createPDB(StringRef Path, Sym<br>
// Add an empty TPI stream.<br>
auto &TpiBuilder = Builder.getTpiBuilder();<br>
TpiBuilder.setVersionHeader(p<wbr>db::PdbTpiV80);<br>
+ addTypeInfo(Symtab, TpiBuilder);<br>
<br>
// Add an empty IPI stream.<br>
auto &IpiBuilder = Builder.getIpiBuilder();<br>
<br>
Modified: lld/trunk/test/COFF/pdb.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb.test?rev=289183&r1=289182&r2=289183&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/test/COFF/pdb.<wbr>test?rev=289183&r1=289182&r2=<wbr>289183&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/COFF/pdb.test (original)<br>
+++ lld/trunk/test/COFF/pdb.test Thu Dec 8 22:46:54 2016<br>
@@ -1,10 +1,10 @@<br>
# RUN: yaml2obj %s > %t.obj<br>
-# RUN: lld-link /debug /pdb:%t.pdb /dll /out:%t.dll /entry:DllMain /nodefaultlib %t.obj<br>
+# RUN: lld-link /debug /pdb:%t.pdb /dll /out:%t.dll /entry:main /nodefaultlib %t.obj<br>
# RUN: llvm-pdbdump pdb2yaml -stream-metadata -stream-directory -pdb-stream \<br>
-# RUN: -dbi-stream -ipi-stream %t.pdb | FileCheck %s<br>
+# RUN: -dbi-stream -ipi-stream -tpi-stream %t.pdb | FileCheck %s<br>
<br>
-# RUN: llvm-pdbdump raw -modules -section-map -section-headers -section-contribs %t.pdb \<br>
-# RUN: | FileCheck -check-prefix RAW %s<br>
+# RUN: llvm-pdbdump raw -modules -section-map -section-headers -section-contribs \<br>
+# RUN: -tpi-records %t.pdb | FileCheck -check-prefix RAW %s<br>
<br>
# CHECK: MSF:<br>
# CHECK-NEXT: SuperBlock:<br>
@@ -14,37 +14,184 @@<br>
# CHECK-NEXT: NumDirectoryBytes: 48<br>
# CHECK-NEXT: Unknown1: 0<br>
# CHECK-NEXT: BlockMapAddr: 3<br>
-# CHECK-NEXT: NumDirectoryBlocks: 1<br>
-# CHECK-NEXT: DirectoryBlocks: [ 9 ]<br>
-# CHECK-NEXT: NumStreams: 6<br>
-# CHECK-NEXT: FileSize: 40960<br>
-# CHECK-NEXT: StreamSizes: [ 0, 48, 56, 322, 56, 80 ]<br>
-# CHECK-NEXT: StreamMap:<br>
-# CHECK-NEXT: - Stream: [ ]<br>
-# CHECK-NEXT: - Stream: [ 5 ]<br>
-# CHECK-NEXT: - Stream: [ 7 ]<br>
-# CHECK-NEXT: - Stream: [ 6 ]<br>
-# CHECK-NEXT: - Stream: [ 8 ]<br>
-# CHECK-NEXT: - Stream: [ 4 ]<br>
-# CHECK-NEXT: PdbStream:<br>
-# CHECK-NEXT: Age: 1<br>
-# CHECK-NEXT: Guid: '{00000000-0000-0000-0000-0000<wbr>00000000}'<br>
-# CHECK-NEXT: Signature: 0<br>
-# CHECK-NEXT: Version: VC70<br>
-# CHECK-NEXT: NamedStreams:<br>
-# CHECK-NEXT: DbiStream:<br>
-# CHECK-NEXT: VerHeader: V110<br>
-# CHECK-NEXT: Age: 1<br>
-# CHECK-NEXT: BuildNumber: 0<br>
-# CHECK-NEXT: PdbDllVersion: 0<br>
-# CHECK-NEXT: PdbDllRbld: 0<br>
-# CHECK-NEXT: Flags: 0<br>
-# CHECK-NEXT: MachineType: x86<br>
-# CHECK-NEXT: IpiStream:<br>
-# CHECK-NEXT: Version: VC80<br>
-# CHECK-NEXT: Records:<br>
+# CHECK-NEXT: NumDirectoryBlocks: 1<br>
+# CHECK-NEXT: DirectoryBlocks: [ 9 ]<br>
+# CHECK-NEXT: NumStreams: 6<br>
+# CHECK-NEXT: FileSize: 40960<br>
+# CHECK-NEXT: StreamSizes: [ 0, 48, 628, 266, 56, 80 ]<br>
+# CHECK-NEXT: StreamMap:<br>
+# CHECK-NEXT: - Stream: [ ]<br>
+# CHECK-NEXT: - Stream: [ 5 ]<br>
+# CHECK-NEXT: - Stream: [ 7 ]<br>
+# CHECK-NEXT: - Stream: [ 6 ]<br>
+# CHECK-NEXT: - Stream: [ 8 ]<br>
+# CHECK-NEXT: - Stream: [ 4 ]<br>
+# CHECK-NEXT: PdbStream:<br>
+# CHECK-NEXT: Age: 1<br>
+# CHECK-NEXT: Guid: '{00000000-0000-0000-0000-0000<wbr>00000000}'<br>
+# CHECK-NEXT: Signature: 0<br>
+# CHECK-NEXT: Version: VC70<br>
+# CHECK-NEXT: NamedStreams:<br>
+# CHECK-NEXT: DbiStream:<br>
+# CHECK-NEXT: VerHeader: V110<br>
+# CHECK-NEXT: Age: 1<br>
+# CHECK-NEXT: BuildNumber: 0<br>
+# CHECK-NEXT: PdbDllVersion: 0<br>
+# CHECK-NEXT: PdbDllRbld: 0<br>
+# CHECK-NEXT: Flags: 0<br>
+# CHECK-NEXT: MachineType: x86<br>
+# CHECK-NEXT: TpiStream:<br>
+# CHECK-NEXT: Version: VC80<br>
+# CHECK-NEXT: Records:<br>
+# CHECK-NEXT: - Kind: LF_ARGLIST<br>
+# CHECK-NEXT: ArgList:<br>
+# CHECK-NEXT: ArgIndices: [ 0 ]<br>
+# CHECK-NEXT: - Kind: LF_PROCEDURE<br>
+# CHECK-NEXT: Procedure:<br>
+# CHECK-NEXT: ReturnType: 116<br>
+# CHECK-NEXT: CallConv: NearC<br>
+# CHECK-NEXT: Options: [ None ]<br>
+# CHECK-NEXT: ParameterCount: 0<br>
+# CHECK-NEXT: ArgumentList: 4096<br>
+# CHECK-NEXT: - Kind: LF_FUNC_ID<br>
+# CHECK-NEXT: FuncId:<br>
+# CHECK-NEXT: ParentScope: 0<br>
+# CHECK-NEXT: FunctionType: 4097<br>
+# CHECK-NEXT: Name: main<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 0<br>
+# CHECK-NEXT: String: 'D:\b'<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 0<br>
+# CHECK-NEXT: String: 'C:\vs14\VC\BIN\amd64\cl.exe'<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 0<br>
+# CHECK-NEXT: String: '-Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\u<wbr>crt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared"'<br>
+# CHECK-NEXT: - Kind: LF_SUBSTR_LIST<br>
+# CHECK-NEXT: ArgList:<br>
+# CHECK-NEXT: ArgIndices: [ 4101 ]<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 4102<br>
+# CHECK-NEXT: String: ' -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X'<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 0<br>
+# CHECK-NEXT: String: ret42.c<br>
+# CHECK-NEXT: - Kind: LF_STRING_ID<br>
+# CHECK-NEXT: StringId:<br>
+# CHECK-NEXT: Id: 0<br>
+# CHECK-NEXT: String: 'D:\b\vc140.pdb'<br>
+# CHECK-NEXT: - Kind: LF_BUILDINFO<br>
+# CHECK-NEXT: BuildInfo:<br>
+# CHECK-NEXT: ArgIndices: [ 4099, 4100, 4104, 4105, 4103 ]<br>
+# CHECK-NEXT: IpiStream:<br>
+# CHECK-NEXT: Version: VC80<br>
+# CHECK-NEXT: Records:<br>
+# CHECK-NEXT: ...<br>
<br>
-# RAW: DBI Stream {<br>
+# RAW: Type Info Stream (TPI) {<br>
+# RAW-NEXT: TPI Version: 20040203<br>
+# RAW-NEXT: Record count: 11<br>
+# RAW-NEXT: Records [<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: ArgList (0x1000) {<br>
+# RAW-NEXT: TypeLeafKind: LF_ARGLIST (0x1201)<br>
+# RAW-NEXT: NumArgs: 1<br>
+# RAW-NEXT: Arguments [<br>
+# RAW-NEXT: ArgType: 0x0<br>
+# RAW-NEXT: ]<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: Procedure (0x1001) {<br>
+# RAW-NEXT: TypeLeafKind: LF_PROCEDURE (0x1008)<br>
+# RAW-NEXT: ReturnType: int (0x74)<br>
+# RAW-NEXT: CallingConvention: NearC (0x0)<br>
+# RAW-NEXT: FunctionOptions [ (0x0)<br>
+# RAW-NEXT: ]<br>
+# RAW-NEXT: NumParameters: 0<br>
+# RAW-NEXT: ArgListType: (<no type>) (0x1000)<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: FuncId (0x1002) {<br>
+# RAW-NEXT: TypeLeafKind: LF_FUNC_ID (0x1601)<br>
+# RAW-NEXT: ParentScope: 0x0<br>
+# RAW-NEXT: FunctionType: int (<no type>) (0x1001)<br>
+# RAW-NEXT: Name: main<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1003) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: 0x0<br>
+# RAW-NEXT: StringData: D:\b<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1004) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: 0x0<br>
+# RAW-NEXT: StringData: C:\vs14\VC\BIN\amd64\cl.exe<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1005) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: 0x0<br>
+# RAW-NEXT: StringData: -Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\u<wbr>crt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared"<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringList (0x1006) {<br>
+# RAW-NEXT: TypeLeafKind: LF_SUBSTR_LIST (0x1604)<br>
+# RAW-NEXT: NumArgs: 1<br>
+# RAW-NEXT: Arguments [<br>
+# RAW-NEXT: ArgType: -Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\u<wbr>crt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared" (0x1005)<br>
+# RAW-NEXT: ]<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1007) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: (-Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\u<wbr>crt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared") (0x1006)<br>
+# RAW-NEXT: StringData: -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1008) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: 0x0<br>
+# RAW-NEXT: StringData: ret42.c<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: StringId (0x1009) {<br>
+# RAW-NEXT: TypeLeafKind: LF_STRING_ID (0x1605)<br>
+# RAW-NEXT: Id: 0x0<br>
+# RAW-NEXT: StringData: D:\b\vc140.pdb<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: {<br>
+# RAW-NEXT: BuildInfo (0x100A) {<br>
+# RAW-NEXT: TypeLeafKind: LF_BUILDINFO (0x1603)<br>
+# RAW-NEXT: NumArgs: 5<br>
+# RAW-NEXT: Arguments [<br>
+# RAW-NEXT: ArgType: D:\b (0x1003)<br>
+# RAW-NEXT: ArgType: C:\vs14\VC\BIN\amd64\cl.exe (0x1004)<br>
+# RAW-NEXT: ArgType: ret42.c (0x1008)<br>
+# RAW-NEXT: ArgType: D:\b\vc140.pdb (0x1009)<br>
+# RAW-NEXT: ArgType: -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X (0x1007)<br>
+# RAW-NEXT: ]<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: ]<br>
+# RAW-NEXT: }<br>
+# RAW-NEXT: DBI Stream {<br>
# RAW-NEXT: Dbi Version: 20091201<br>
# RAW-NEXT: Age: 1<br>
# RAW-NEXT: Incremental Linking: No<br>
@@ -75,10 +222,10 @@<br>
# RAW-NEXT: Section Contributions [<br>
# RAW-NEXT: Contribution {<br>
# RAW-NEXT: ISect: 0<br>
-# RAW-NEXT: Off: 140<br>
-# RAW-NEXT: Size: 3<br>
-# RAW-NEXT: Characteristics [ (0x60300020)<br>
-# RAW-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000)<br>
+# RAW-NEXT: Off: 1140<br>
+# RAW-NEXT: Size: 6<br>
+# RAW-NEXT: Characteristics [ (0x60500020)<br>
+# RAW-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000)<br>
# RAW-NEXT: IMAGE_SCN_CNT_CODE (0x20)<br>
# RAW-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000)<br>
# RAW-NEXT: IMAGE_SCN_MEM_READ (0x40000000)<br>
@@ -90,40 +237,6 @@<br>
# RAW-NEXT: Data CRC: 0<br>
# RAW-NEXT: Reloc CRC: 0<br>
# RAW-NEXT: }<br>
-# RAW-NEXT: Contribution {<br>
-# RAW-NEXT: ISect: 0<br>
-# RAW-NEXT: Off: 0<br>
-# RAW-NEXT: Size: 0<br>
-# RAW-NEXT: Characteristics [ (0xC0300040)<br>
-# RAW-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000)<br>
-# RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_<wbr>DATA (0x40)<br>
-# RAW-NEXT: IMAGE_SCN_MEM_READ (0x40000000)<br>
-# RAW-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000)<br>
-# RAW-NEXT: ]<br>
-# RAW-NEXT: Module {<br>
-# RAW-NEXT: Index: 0<br>
-# RAW-NEXT: Name: * Linker *<br>
-# RAW-NEXT: }<br>
-# RAW-NEXT: Data CRC: 0<br>
-# RAW-NEXT: Reloc CRC: 0<br>
-# RAW-NEXT: }<br>
-# RAW-NEXT: Contribution {<br>
-# RAW-NEXT: ISect: 0<br>
-# RAW-NEXT: Off: 0<br>
-# RAW-NEXT: Size: 0<br>
-# RAW-NEXT: Characteristics [ (0xC0300080)<br>
-# RAW-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000)<br>
-# RAW-NEXT: IMAGE_SCN_CNT_UNINITIALIZED_D<wbr>ATA (0x80)<br>
-# RAW-NEXT: IMAGE_SCN_MEM_READ (0x40000000)<br>
-# RAW-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000)<br>
-# RAW-NEXT: ]<br>
-# RAW-NEXT: Module {<br>
-# RAW-NEXT: Index: 0<br>
-# RAW-NEXT: Name: * Linker *<br>
-# RAW-NEXT: }<br>
-# RAW-NEXT: Data CRC: 0<br>
-# RAW-NEXT: Reloc CRC: 0<br>
-# RAW-NEXT: }<br>
# RAW-NEXT: ]<br>
# RAW-NEXT: Section Map [<br>
# RAW-NEXT: Entry {<br>
@@ -139,7 +252,7 @@<br>
# RAW-NEXT: SecName: 65535<br>
# RAW-NEXT: ClassName: 65535<br>
# RAW-NEXT: Offset: 0<br>
-# RAW-NEXT: SecByteLength:<br>
+# RAW-NEXT: SecByteLength: 6<br>
# RAW-NEXT: }<br>
# RAW-NEXT: Entry {<br>
# RAW-NEXT: Flags [ (0x109)<br>
@@ -172,10 +285,10 @@<br>
# RAW-NEXT: Section Headers [<br>
# RAW-NEXT: {<br>
# RAW-NEXT: Name: .text<br>
-# RAW-NEXT: Virtual Size:<br>
-# RAW-NEXT: Virtual Address:<br>
-# RAW-NEXT: Size of Raw Data:<br>
-# RAW-NEXT: File Pointer to Raw Data:<br>
+# RAW-NEXT: Virtual Size: 6<br>
+# RAW-NEXT: Virtual Address: 4096<br>
+# RAW-NEXT: Size of Raw Data: 512<br>
+# RAW-NEXT: File Pointer to Raw Data: 512<br>
# RAW-NEXT: File Pointer to Relocations: 0<br>
# RAW-NEXT: File Pointer to Linenumbers: 0<br>
# RAW-NEXT: Number of Relocations: 0<br>
@@ -189,9 +302,9 @@<br>
# RAW-NEXT: {<br>
# RAW-NEXT: Name: .rdata<br>
# RAW-NEXT: Virtual Size:<br>
-# RAW-NEXT: Virtual Address:<br>
-# RAW-NEXT: Size of Raw Data:<br>
-# RAW-NEXT: File Pointer to Raw Data:<br>
+# RAW-NEXT: Virtual Address: 8192<br>
+# RAW-NEXT: Size of Raw Data: 512<br>
+# RAW-NEXT: File Pointer to Raw Data: 1024<br>
# RAW-NEXT: File Pointer to Relocations: 0<br>
# RAW-NEXT: File Pointer to Linenumbers: 0<br>
# RAW-NEXT: Number of Relocations: 0<br>
@@ -205,67 +318,102 @@<br>
<br>
--- !COFF<br>
header:<br>
- Machine: IMAGE_FILE_MACHINE_I386<br>
+ Machine: IMAGE_FILE_MACHINE_AMD64<br>
Characteristics: [ ]<br>
sections:<br>
- - Name: .text<br>
+ - Name: .drectve<br>
+ Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]<br>
+ Alignment: 1<br>
+ SectionData: <wbr>2020202F44454641554C544C49423A<wbr>224C4942434D5422202F4445464155<wbr>4C544C49423A224F4C444E414D4553<wbr>2220<br>
+ - Name: '.debug$S'<br>
+ Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA<wbr>, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]<br>
+ Alignment: 1<br>
+ SectionData: <wbr>04000000F100000053000000150001<wbr>1100000000443A5C625C7265743432<wbr>2E6F626A003A003C1100600000D000<wbr>13000000F259000013000000F25900<wbr>004D6963726F736F66742028522920<wbr>4F7074696D697A696E6720436F6D70<wbr>696C65720000F10000004E0000002A<wbr>004711000000000000000000000000<wbr>060000000000000005000000021000<wbr>00000000000000006D61696E001C00<wbr>121000000000000000000000000000<wbr>000000000000000000004211000200<wbr>4F110000F200000020000000000000<wbr>000000000006000000000000000100<wbr>0000140000000000000001000080F4<wbr>000000180000000100000010010BFC<wbr>79AA614B536E3D64B110330D1E5800<wbr>00F30000000E00000000643A5C625C<wbr>72657434322E63000000F100000008<wbr>00000006004C110A100000<br>
+ Relocations:<br>
+ - VirtualAddress: 136<br>
+ SymbolName: main<br>
+ Type: IMAGE_REL_AMD64_SECREL<br>
+ - VirtualAddress: 140<br>
+ SymbolName: main<br>
+ Type: IMAGE_REL_AMD64_SECTION<br>
+ - VirtualAddress: 192<br>
+ SymbolName: main<br>
+ Type: IMAGE_REL_AMD64_SECREL<br>
+ - VirtualAddress: 196<br>
+ SymbolName: main<br>
+ Type: IMAGE_REL_AMD64_SECTION<br>
+ - Name: '.debug$T'<br>
+ Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA<wbr>, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]<br>
+ Alignment: 1<br>
+ SectionData: <wbr>040000000A00011201000000000000<wbr>000E00081074000000000000000010<wbr>00001200011600000000011000006D<wbr>61696E00F3F2F10E00051600000000<wbr>443A5C6200F3F2F122000516000000<wbr>00433A5C767331345C56435C42494E<wbr>5C616D6436345C636C2E6578650002<wbr>010516000000002D5A37202D63202D<wbr>4D54202D49433A5C767331345C5643<wbr>5C494E434C554445202D49433A5C76<wbr>7331345C56435C41544C4D46435C49<wbr>4E434C554445202D4922433A5C5072<wbr>6F6772616D2046696C657320287838<wbr>36295C57696E646F7773204B697473<wbr>5C31305C696E636C7564655C31302E<wbr>302E31303135302E305C7563727422<wbr>202D4922433A5C50726F6772616D20<wbr>46696C65732028783836295C57696E<wbr>646F7773204B6974735C4E45544658<wbr>53444B5C342E365C696E636C756465<wbr>5C756D22202D4922433A5C50726F67<wbr>72616D2046696C6573202878383629<wbr>5C57696E646F7773204B6974735C38<wbr>2E315C696E636C7564655C73686172<wbr>656422000A00041601000000051000<wbr>008200051606100000202D4922433A<wbr>5C50726F6772616D2046696C657320<wbr>28783836295C57696E646F7773204B<wbr>6974735C382E315C696E636C756465<wbr>5C756D22202D4922433A5C50726F67<wbr>72616D2046696C6573202878383629<wbr>5C57696E646F7773204B6974735C38<wbr>2E315C696E636C75<br>
<wbr>64655C77696E727422202D5443202D<wbr>5800F3F2F10E000516000000007265<wbr>7434322E6300160005160000000044<wbr>3A5C625C76633134302E70646200F1<wbr>1A0003160500031000000410000008<wbr>1000000910000007100000F2F1<br>
+ - Name: '.text$mn'<br>
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]<br>
- Alignment: 4<br>
- SectionData: 31C0C3<br>
- - Name: .data<br>
- Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA<wbr>, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]<br>
- Alignment: 4<br>
- SectionData: ''<br>
- - Name: .bss<br>
- Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DA<wbr>TA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]<br>
- Alignment: 4<br>
- SectionData: ''<br>
+ Alignment: 16<br>
+ SectionData: B82A000000C3<br>
symbols:<br>
- - Name: .text<br>
+ - Name: '@<a href="http://comp.id" rel="noreferrer" target="_blank">comp.id</a>'<br>
+ Value: 17062386<br>
+ SectionNumber: -1<br>
+ SimpleType: IMAGE_SYM_TYPE_NULL<br>
+ ComplexType: IMAGE_SYM_DTYPE_NULL<br>
+ StorageClass: IMAGE_SYM_CLASS_STATIC<br>
+ - Name: '@feat.00'<br>
+ Value: <a href="tel:2147484048" value="+12147484048" target="_blank">2147484048</a><br>
+ SectionNumber: -1<br>
+ SimpleType: IMAGE_SYM_TYPE_NULL<br>
+ ComplexType: IMAGE_SYM_DTYPE_NULL<br>
+ StorageClass: IMAGE_SYM_CLASS_STATIC<br>
+ - Name: .drectve<br>
Value: 0<br>
SectionNumber: 1<br>
SimpleType: IMAGE_SYM_TYPE_NULL<br>
ComplexType: IMAGE_SYM_DTYPE_NULL<br>
StorageClass: IMAGE_SYM_CLASS_STATIC<br>
SectionDefinition:<br>
- Length: 3<br>
+ Length: 47<br>
NumberOfRelocations: 0<br>
NumberOfLinenumbers: 0<br>
- CheckSum: 3963538403<br>
- Number: 1<br>
- - Name: .data<br>
+ CheckSum: 0<br>
+ Number: 0<br>
+ - Name: '.debug$S'<br>
Value: 0<br>
SectionNumber: 2<br>
SimpleType: IMAGE_SYM_TYPE_NULL<br>
ComplexType: IMAGE_SYM_DTYPE_NULL<br>
StorageClass: IMAGE_SYM_CLASS_STATIC<br>
SectionDefinition:<br>
- Length: 0<br>
- NumberOfRelocations: 0<br>
+ Length: 296<br>
+ NumberOfRelocations: 4<br>
NumberOfLinenumbers: 0<br>
CheckSum: 0<br>
- Number: 2<br>
- - Name: .bss<br>
+ Number: 0<br>
+ - Name: '.debug$T'<br>
Value: 0<br>
SectionNumber: 3<br>
SimpleType: IMAGE_SYM_TYPE_NULL<br>
ComplexType: IMAGE_SYM_DTYPE_NULL<br>
StorageClass: IMAGE_SYM_CLASS_STATIC<br>
SectionDefinition:<br>
- Length: 0<br>
+ Length: 576<br>
NumberOfRelocations: 0<br>
NumberOfLinenumbers: 0<br>
CheckSum: 0<br>
- Number: 3<br>
- - Name: '@feat.00'<br>
- Value: 1<br>
- SectionNumber: -1<br>
+ Number: 0<br>
+ - Name: '.text$mn'<br>
+ Value: 0<br>
+ SectionNumber: 4<br>
SimpleType: IMAGE_SYM_TYPE_NULL<br>
ComplexType: IMAGE_SYM_DTYPE_NULL<br>
StorageClass: IMAGE_SYM_CLASS_STATIC<br>
- - Name: _DllMain<br>
+ SectionDefinition:<br>
+ Length: 6<br>
+ NumberOfRelocations: 0<br>
+ NumberOfLinenumbers: 0<br>
+ CheckSum: <a href="tel:(213)%20943-6471" value="+12139436471" target="_blank">2139436471</a><br>
+ Number: 0<br>
+ - Name: main<br>
Value: 0<br>
- SectionNumber: 1<br>
+ SectionNumber: 4<br>
SimpleType: IMAGE_SYM_TYPE_NULL<br>
ComplexType: IMAGE_SYM_DTYPE_FUNCTION<br>
StorageClass: IMAGE_SYM_CLASS_EXTERNAL<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_6289462243113597985gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</font></span></div>
</blockquote></div><br></div>