- Dec 16, 2021
-
-
Vincent Lee authored
For large applications that write to map files, writing map files can take quite a bit of time. Sorting the biggest contributors to link times, writing map files ranks in at 2nd place, with load input files being the biggest contributor of link times. Avoiding writing map files on the critical path (and having its own thread) saves ~2-3 seconds when linking chromium framework on a 16-Core Intel Xeon W. ``` base diff difference (95% CI) sys_time 1.617 ± 0.034 1.657 ± 0.026 [ +1.5% .. +3.5%] user_time 28.536 ± 0.245 28.609 ± 0.180 [ -0.1% .. +0.7%] wall_time 23.833 ± 0.271 21.684 ± 0.194 [ -9.5% .. -8.5%] samples 31 24 ``` Reviewed By: #lld-macho, oontvoo, int3 Differential Revision: https://reviews.llvm.org/D115416 -
Arthur O'Dwyer authored
-
Fangrui Song authored
-
Yuanfang Chen authored
NFCI.
-
LLVM GN Syncbot authored
-
Eric Schweitz authored
This pass can reclassify memory allocations (fir.alloca, fir.allocmem) based on heuristics and settings. The intention is to allow better performance and workarounds for conditions such as environments with limited stack space. Currently, implements two conversions from stack to heap allocation. 1. If a stack allocation is an array larger than some threshold value make it a heap allocation. 2. If a stack allocation is an array with a runtime evaluated size make it a heap allocation. Add a lit test for both suboptions. Reviewed By: PeteSteinfeld, vdonaldson Differential Revision: https://reviews.llvm.org/D115763 -
Fangrui Song authored
An well-formed IR function definition must have an entry basic block and a well-formed IR basic block must have one terminator so the emptiness check can be simplified. Also simplify the test a bit. Reviewed By: luna Differential Revision: https://reviews.llvm.org/D115780
-
Nico Weber authored
The default hasn't worked in over 9 months now. Getting a friendly error message if this isn't set is more useful than getting a bad default value. Differential Revision: https://reviews.llvm.org/D115833
-
Matt Arsenault authored
-
Matt Arsenault authored
It seems we don't have already have any target specific attributes handled in the inliner. Include a separate tablegen file to define the rules, similar to the target specific intrinsics.
-
Matt Arsenault authored
-
Fangrui Song authored
-
Matt Arsenault authored
This is an optimization, but also fixes a compile failure when no free VGPRs are available. The problem still exists for gfx908 where a scratch register is still required. This also still exists for the SGPR to AGPR case.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
This was a workaround for not supporting indirect calls when instcombine didn't eliminate constant expression casts of the callee at -O0. Indirect calls are supposed to work now, so drop the hack.
-
Fangrui Song authored
* Avoid the name truncation quirk in SymbolTable::insert: the truncated name will be replaced by @@ again. * Allow foo and foo@@v1 in different files to be diagnosed as duplicate definition error (GNU ld behavior) * Avoid potential redundant strlen on symbol name due to StringRefZ in ObjFile<ELFT>::initializeSymbols
-
Andrew Smith authored
Relevant issue: https://github.com/llvm/llvm-project/issues/52705 When the `DisableFormat` option of `clang-format` is set to `true` and a JSON file is formatted, the ephemeral variable binding that is added to the top-level object is not removed from the formatted file. For example, this JSON: ``` { "key": "value" } ``` Is reformatted to: ``` x = { "key": "value" } ``` Which is not valid JSON syntax. This fix avoids the addition of this binding when `DisableFormat` is set to `true`, ensuring that it cannot be left behind when formatting is disabled. Reviewed By: MyDeveloperDay, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D115769 Fixes #52705
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/52715 Fixes #52715 `AllowShortBlocksOnASingleLine` seems to never be checked for "Empty" as such if its used it will be considered "Always" as we only ever check `AllowShortBlocksOnASingleLine != Never` This impacts C++ as well as C# hence the slightly duplicated test. Reviewed By: curdeius, jbcoe Differential Revision: https://reviews.llvm.org/D115794
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Arthur Eubanks authored
These are deprecated and should be replaced with getAlign(). Some of these asserts don't do anything because Load/Store/AllocaInst never have a 0 align value.
-
Arthur Eubanks authored
getAlignment() is deprecated.
-
Arthur Eubanks authored
It is better typed, and the calls to getAlignment() are deprecated. Differential Revision: https://reviews.llvm.org/D115466
-
Noah Shutty authored
The directory returned from `cache_directory` may not be writable if the unit tests are run with limited permissions (e.g. if $HOME is not writable). This fixes a unit test of the debuginfod client to set the cache path to the system temporary directory to avoid this issue. Reviewed By: estewart08 Differential Revision: https://reviews.llvm.org/D115813
-
Arjun P authored
Previously, the LogicalResult return value of restoreRow was being ignored in places where it was expected to always be success. Instead, check the result and go to an `llvm_unreachable` if it turns out to be failure.
-
Hanhan Wang authored
If all the dims are reduction dims, it is already in inner-most/outer-most reduction form. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D115820
-
Nikolas Klauser authored
Implement P0798R8 Reviewed By: #libc, ldionne, Quuxplusone Spies: tcanens, Quuxplusone, ldionne, Wmbat, arichardson, Mordante, libcxx-commits Differential Revision: https://reviews.llvm.org/D113408
-
Peter Klausler authored
Rather than represent the mixed real/complex subexpression x*(a,b) as (x*a,x*b), use (x,0)*(a,b) to avoid a potential code duplication in current lowering code. Same for mixed division, and for mixed integer*complex and integer/complex cases. Differential Review: https://reviews.llvm.org/D115732
-
Fangrui Song authored
This removes SpecificAlloc<Defined> and makes my lld executable 1.5k smaller. This drops the small memory waste due to the separate BumpPtrAllocator.
-
Fangrui Song authored
-
Sam McCall authored
These all currently pass, but are tricky cases not currently covered. https://reviews.llvm.org/D114251 would break them in its current state.
-
Sam McCall authored
The empty VisitDecl() meant all assertions were skipped. Meanwhile the assertions have rotted as some type printing has changed. The test is still in the wrong directory, because it requires TestVisitor.h which uses Tooling APIs.
-
Fangrui Song authored
and detangle local/global symbol initialization. My x86-64 lld executable is 8k smaller due to the removal of SpecificAlloc<Undefined>.
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/52677 clang-format doesn't format C# switch expressions very well. Start with this small use case and try and improve the output. I'll look for other examples to add as tests Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D115673 Fixes #52677
-
LLVM GN Syncbot authored
-
Yitzhak Mandelbaum authored
Adds a very simple constant-propagation analysis for demo and testing purposes. Differential Revision: https://reviews.llvm.org/D115740
-
Scott Linder authored
Similar versions of these already exist, this effectively just just factors them out into STLExtras. I plan to use these in future patches. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D100672
-
Florian Hahn authored
This patch adds 2 test cases where we fail to determine a tight bound on the backedge taken count because the ULT condition is applied before the signed conditions. The order the conditions are applied impacts which min/max folds are applied.
-
Craig Topper authored
The Zbs instructions uses to start with 'sb' but now start with 'b'. Update test names accordingly.
-