search for: ghashes

Displaying 20 results from an estimated 127 matches for "ghashes".

Did you mean: hashes
2018 Jan 26
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
We don't generate any .lib as those don't work well with incremental linking (and give zero advantages when linking AFAIK), and it would be pretty easy to have a modern format for having a .ghash for multiple files, something simple like size prefixed name and then size prefixed ghash blobs. On Fri, Jan 26, 2018 at 8:44 PM, Zachary Turner <zturner at google.com> wrote: > We
2018 Jan 28
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
Look for this code in lld/coff/pdb.cpp if (Config->DebugGHashes) { ArrayRef<GloballyHashedType> Hashes; std::vector<GloballyHashedType> OwnedHashes; if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) Hashes = getHashesFromDebugH(*DebugH); else { OwnedHashes = GloballyHashedType::hashTypes(Types); Hashes = OwnedHashes; } In the el...
2018 Jan 19
4
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
-lldb-dev, +llvm-dev lldb-dev is specifically for the llvm debugger, and llvm-dev is for everything else (including lld) Did you compile the object files with clang and use -mllvm -emit-codeview-ghash-section? It sounds like probably not. If you don’t do that /DEBUG:GHASH will indeed be much slower. I wonder if we should emit a linker diagnostic in this case On Fri, Jan 19, 2018 at 12:09 PM
2018 Jan 28
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...ll get more info on this and post a proper bug report, but I guess its type information that is generated only by msvc. The other more alarming problem is that linking is way slower with the ghahes... my guess is that we have a bunch of pdb files for some third party libraries and calculating those ghashes takes more time than actual linking of this small part of the source (it links in 4s in both link.exe and lld-link.exe without ghashes). On Fri, Jan 26, 2018 at 8:52 PM, Leonardo Santagada <santagada at gmail.com> wrote: > We don't generate any .lib as those don't work well with...
2018 Jan 19
1
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
On Fri, Jan 19, 2018 at 12:30 PM Andrew Kelley <superjoe30 at gmail.com> wrote: > Zachary, > > Do you generally recommend using -mllvm -emit-codeview-ghash-section and > /DEBUG:GHASH when linking for Windows? > I definitely want you to try it out and let me know how it goes :) It's behind the undocumented -emit-codeview-ghash-section for now until we have some more
2018 Jan 28
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...ch > faster can it get? I might try that as well, as 10% speed improvement might > be handy. > > On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> > wrote: > >> Look for this code in lld/coff/pdb.cpp >> >> >> if (Config->DebugGHashes) { >> ArrayRef<GloballyHashedType> Hashes; >> std::vector<GloballyHashedType> OwnedHashes; >> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >> Hashes = getHashesFromDebugH(*DebugH); >> else { >> OwnedHashes = GloballyHashedType...
2018 Jan 19
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
Zachary, Do you generally recommend using -mllvm -emit-codeview-ghash-section and /DEBUG:GHASH when linking for Windows? On Fri, Jan 19, 2018 at 3:17 PM, Zachary Turner via llvm-dev < llvm-dev at lists.llvm.org> wrote: > -lldb-dev, +llvm-dev > > lldb-dev is specifically for the llvm debugger, and llvm-dev is for > everything else (including lld) > > Did you compile the
2018 Jan 28
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...link lld-link.exe with LTO+PGO to see how much faster can it get? I might try that as well, as 10% speed improvement might be handy. On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> wrote: > Look for this code in lld/coff/pdb.cpp > > > if (Config->DebugGHashes) { > ArrayRef<GloballyHashedType> Hashes; > std::vector<GloballyHashedType> OwnedHashes; > if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) > Hashes = getHashesFromDebugH(*DebugH); > else { > OwnedHashes = GloballyHashedType::hashTypes(Types); >...
2019 Feb 25
4
Making LLD PDB generation faster
...On Sun, Feb 24, 2019 at 5:18 PM Alexandre Ganea <alexandre.ganea at ubisoft.com> wrote: > > Leonardo, to answer to your questions, yes to all of them  You can > take a > > look at this prototype/proposal: https://reviews.llvm.org/D55585 > > > > Overall, computing ghashes in parallel at link-time and merging Types > with them > > is less costly that the current approach to merging. The 35sec you’re > seeing > > for merging should go down to about 15sec. I don't do much computing of ghashes as we already preprocess all .obj files from msvc to...
2019 Feb 24
2
Making LLD PDB generation faster
Leonardo, to answer to your questions, yes to all of them  You can take a look at this prototype/proposal: https://reviews.llvm.org/D55585 Overall, computing ghashes in parallel at link-time and merging Types with them is less costly that the current approach to merging. The 35sec you’re seeing for merging should go down to about 15sec. The patch doesn’t parallelize (yet) the Type merging itself, but we have an alternate multithread-suitable implementation of D...
2018 Jan 29
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...ement >>> might be handy. >>> >>> On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> >>> wrote: >>> >>>> Look for this code in lld/coff/pdb.cpp >>>> >>>> >>>> if (Config->DebugGHashes) { >>>> ArrayRef<GloballyHashedType> Hashes; >>>> std::vector<GloballyHashedType> OwnedHashes; >>>> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >>>> Hashes = getHashesFromDebugH(*DebugH); >>>> else { &...
2018 Jan 29
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...ry that as well, as 10% speed improvement >> might be handy. >> >> On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> >> wrote: >> >>> Look for this code in lld/coff/pdb.cpp >>> >>> >>> if (Config->DebugGHashes) { >>> ArrayRef<GloballyHashedType> Hashes; >>> std::vector<GloballyHashedType> OwnedHashes; >>> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >>> Hashes = getHashesFromDebugH(*DebugH); >>> else { >>> OwnedHas...
2018 Jan 26
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
Hmm, ok. In that case let me try again without my local changes. Maybe they are getting in the way :-/ On Fri, Jan 26, 2018 at 9:51 AM Leonardo Santagada <santagada at gmail.com> wrote: > it is identical to me... wierd. > > On Fri, Jan 26, 2018 at 6:49 PM, Zachary Turner <zturner at google.com> > wrote: > >> (Ignore the fact that my hashes are 8 byte in the
2018 Jan 26
3
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
I'm now thinking that there's a bug in either obj2yaml or yaml2obj, because if I run just those two tools on my codebase it generates yaml files that can't be decoded, will try now to not add any section to the obj file in llvm-objcopy to see if I can link with obj files that I rewrite (but without adding symbols or sections). One of the bugs that do annoy me is that the timedatestamp
2018 Jan 29
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...y. >>>> >>>> On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> >>>> wrote: >>>> >>>>> Look for this code in lld/coff/pdb.cpp >>>>> >>>>> >>>>> if (Config->DebugGHashes) { >>>>> ArrayRef<GloballyHashedType> Hashes; >>>>> std::vector<GloballyHashedType> OwnedHashes; >>>>> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >>>>> Hashes = getHashesFromDebugH(*DebugH); >>&...
2018 Jan 29
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...>>> On Sun, Jan 28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> >>>>> wrote: >>>>> >>>>>> Look for this code in lld/coff/pdb.cpp >>>>>> >>>>>> >>>>>> if (Config->DebugGHashes) { >>>>>> ArrayRef<GloballyHashedType> Hashes; >>>>>> std::vector<GloballyHashedType> OwnedHashes; >>>>>> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >>>>>> Hashes = getHashesFromDebugH(*De...
2018 Jan 26
2
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
it does. I just had an epiphany: why not just write a .ghash file and have lld read those if they exist for an .obj file? Seem much simpler than trying to wire up a 20 year old file format. I will try to do this, is something like this acceptable for LLD? The cool thing is that I can generate .ghash for .lib or any obj lying around (maybe even for pdb in the future). On Fri, Jan 26, 2018 at
2018 Jan 26
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
We considered that early on, but most object files actually end up in .lib files so unless there were a way to connect the objects in the .lib to the corresponding .ghash files, this would disable ghash usage for a large amount of inputs. Supporting both is an option, but it adds a bit of complexity and I’m not totally convinced it’s worth it On Fri, Jan 26, 2018 at 11:38 AM Leonardo Santagada
2018 Jan 26
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
Interesting. If it is generating yaml files that can't be decoded, then definitely sounds like a bug. If you can provide a reduced test case we can try to fix it, but admittedly it can often take some effort to generate a reduced test case. The best way is to use creduce. Use cl or clang-cl and write the pre-processed output to a file, then run creduce on that file with a test that
2018 Jan 29
0
[lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
...28, 2018 at 11:14 PM, Zachary Turner <zturner at google.com> >>>>>> wrote: >>>>>> >>>>>>> Look for this code in lld/coff/pdb.cpp >>>>>>> >>>>>>> >>>>>>> if (Config->DebugGHashes) { >>>>>>> ArrayRef<GloballyHashedType> Hashes; >>>>>>> std::vector<GloballyHashedType> OwnedHashes; >>>>>>> if (Optional<ArrayRef<uint8_t>> DebugH = getDebugH(File)) >>>>>>> Hashes = getHash...