- User Since
- Dec 15 2015, 10:55 AM (118 w, 1 d)
This passes tests and links all of chromium without tsan failures, but the resulting component_unittests.exe crashes.
removed log message
Removed double computation of boundaries and special case for I == 0.
ruiu informs me similar code exists in the other ports. Let's get this reviewed first and then I'll update the others.
Wed, Mar 7
I reverted this commit in r326975 because it failed ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll.
How expensive is it to MemoryBuffer::getFilePath() in all cases? Unless we have reason to believe it is expensive, I would say let's just do that, and then we can remove the code that reads the 32 bytes and detect PE/COFF executables properly.
Feb 8 2018
Jan 31 2018
simpler change based on @ruiu's comments
Jan 30 2018
Here is the observed behavior of link.exe:
Jan 29 2018
Good catch, thanks! LGTM.
Jan 22 2018
Jan 19 2018
Thanks for the quick review, everyone!
replaced more autos with actual types
@rnk, I ran a few tests with MSVC's linker and found the dependents of the import library weren't rebuilt even with /incremental:no.
simplifications suggested by @ruiu
Made this the new behavior and removed the options to enable/disable it.
Doesn't link.exe already do this though?
Some alternatives I considered:
Example of the speedup. I built chromium's net_unittests in a component build, then changed src/base/rand_utils.cc by removing the DCHECK_LE at the beginning of RandInt, rebuilt, put the DCHECK_LE back in, rebuilt, etc. The following times are representative of my results.
Jan 18 2018
Thanks for the fix, sbc100!
No longer needed now that rL322921 is in.
Dec 27 2017
removed braces as per @ruiu's suggestions
fix description of test
Dec 18 2017
fixed format specifier and updated tests
Rewrote using formatv and using loop counter instead of offset.
Dec 15 2017
I also thought of using the iteration count for the names instead of the offset, but decided to match Microsoft's cvtres for now. Thinking about this some more, I don't think the symbol names actually matter, and so I'm happy to go with using the loop counter instead. I would like to keep the symbols at least for now, as at least some tools seem to expect them (e.g. https://github.com/dotnet/roslyn/blob/614299ff83da9959fa07131c6d0ffbc58873b6ae/src/Compilers/Core/Portable/CvtRes.cs).
Dec 14 2017
I'll see if I can cook up a test for this tomorrow; basically we need to look at the generated symbol names and see that they match \$R......, where the last 6 bytes match the last 6 bytes of the symbol's value, encoded in hexadecimal.
Superseded by D41270.
Dec 6 2017
Alright, so it's basically like being able to write CHECK instead of check(e) and checkLazy(e, messagefun). I like that.
How much does this buy us?
Nov 15 2017
No yaml support for import libraries, I take it?
updated description to point to bug report
updated test to check for exactly one entry instead of at least one
Nov 10 2017
rebased to remove unrelated changes
Nov 9 2017
no need to inclune Support/Process.h anymore
changes requested by @pcc
I would never forget about...err, what was it again I needed to remember? Thanks for the reminder. Follow-up change is in D39876.
Nov 7 2017
The code change mostly just moves code around, but this helps because we previously fixed the symbol type too late, so that it was still output as an absolute symbol. After moving the code around, we now output __safe_se_handler_base with the correct symbol type.
Nov 3 2017
Oct 27 2017
Is this good to go or does it need changes?
Oct 25 2017
- Initialize all fields in their definition instead of in the contructor.
- Replaced default ErrorLimitExceededMsg with something more generic.
- Removed ErrorHandler parameter to handleColorDiagnostics.
- Cut number of constructors for ErrorHandler down to one.
converted setters to public fields
@zturner do you want me to make the semantic changes in the same commit or can we ship the size check removal first and then change the functionality? The latter would be my preference.
Oct 24 2017
Summary of the changes: