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...