- May 07, 2020
-
-
Jonas Devlieghere authored
This patch adds statistics about the contribution of each object file to the linked debug info. When --statistics is passed to dsymutil, it prints a table after linking as illustrated below. It lists the object file name, the size of the debug info in the object file in bytes, and the absolute size contribution to the linked dSYM and the percentage difference. The table is sorted by the output size, so the object files contributing the most to the link are listed first. .debug_info section size (in bytes) ------------------------------------------------------------------------------- Filename Object dSYM Change ------------------------------------------------------------------------------- basic2.macho.x86_64.o 210b 165b -24.00% basic3.macho.x86_64.o 177b 150b -16.51% basic1.macho.x86_64.o 125b 129b 3.15% ------------------------------------------------------------------------------- Total 512b 444b -14.23% ------------------------------------------------------------------------------- Differential revision: https://reviews.llvm.org/D79513
-
Han Zhu authored
f8990feb enabled installing PIC version of both libclang.a and libclang.so when LIBCLANG_BUILD_STATIC is ON. But it broke the no-PIC build when LLVM_ENABLE_PIC=OFF with the following error: ``` CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/clang/tools/libclang/CMakeLists.txt:123 (target_compile_definitions): target_compile_definitions called with non-compilable target type ``` This is because as the code loops through ${name} and ${name}_static, it introduced a side effect, which is adding an empty libclang_static to targets. Later target_compile_definitions is called on libclang_static. That function requires that target must have been created by a command such as add_executable() or add_library(), so it crashed. The solution is to not naively loop through both libclang and libclang_static, but only the ones that are actually added by llvm_add_library(). Here's the library build type to library target name mapping: | SHARED only | libclang | | STATIC only | libclang | | SHARED and STATIC | libclang and libclang_static | So only when SHARED and STATIC are both set should we loop through two targets. Explicitly parse the STATIC argument and set the list accordingly. Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D79059
-
Julian Lettner authored
When reporting diagnostics from ASan's (and other sanitizer's) signal handlers we should strip the "invalid signature" bit before printing addresses. This makes the report less confusing and let's the user focus on the real issue. rdar://62615826 Reviewed By: kubamracek, delcypher Differential Revision: https://reviews.llvm.org/D79132
-
Eli Friedman authored
Now using patterns, since there's a single-instruction lowering. (We could convert to VSELECT and pattern-match that, but there doesn't seem to be much point.) I think this might be the first instruction to use nested multiclasses this way? It seems like a good way to reduce duplication between different integer widths. Let me know if it seems like an improvement. Also, while I'm here, fix the return type of SETCC so we don't try to merge a sign-extend with a SETCC. Differential Revision: https://reviews.llvm.org/D79193
-
Adrian Prantl authored
For Swift LLDB (but potentially also for module support in Clang-land) we need a way to accumulate the path remappings produced by Module::RegisterXcodeSDK(). In order to make this work for SymbolFileDebugMaps, registering the search path remapping with both modules is necessary. Differential Revision: https://reviews.llvm.org/D79384 <rdar://problem/62750529>
-
Reid Kleckner authored
I couldn't find this info in any other dumper, so it might as well be here.
-
Christopher Tetreault authored
Summary: Add --relative to the suggested git-diff one liner. If the user does not pass this argument, then git will produce a diff with the path relative to the repository root. If the user's working directory is not the repository root, then clang-format will complain that the file is not found. The --relative argument makes git produce a diff with the files relative to the working directory. Add note to doc string to warn users about the fact that filenames embedded in the diff are used as-is with no attempts to "do what they mean, not what they say" Reviewers: djasper, alexfh, efriedma, klimek, thakis Reviewed By: efriedma Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79054
-
Tim Keith authored
In the places it is used as a noun, replace "align" with "alignment". Differential Revision: https://reviews.llvm.org/D79520
-
Pete Steinfeld authored
Summary: I updated the code that produces the message and the associated test. Reviewers: sscalpone, DavidTruby, kiranchandramohan Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79514
-
Craig Topper authored
Neither gcc or icc support this. Split out from D79472. I want to remove more, but it looks like icc does support some things gcc doesn't and I need to double check our internal test suites.
-
Jonas Devlieghere authored
The Python used to run lit can be different from the Python LLDB was build with. One scenario where this happens is when LLVM can find the Python 3 interpreter, but not the Python 3 libraries, in which case LLDB build and links against Python 3. Without this change, you end up with an ModuleNotFoundError because of the mismatch. Instead of looking at the Python interpreter that's used to run lit, lldbtest should use the interpreter that matches the Python version LLDB was build against. Differential revision: https://reviews.llvm.org/D79519
-
Whitney Tsang authored
loop nest. Summary: As discussed in https://reviews.llvm.org/D73129. Example Before unroll and jam: for A for B for C D E After unroll and jam (currently): for A A' for B for C D B' for C' D' E E' After unroll and jam (Ideal): for A A' for B B' for C C' D D' E E' This is the first patch to change unroll and jam to work in the ideal way. This patch change the safety checks needed to make sure is safe to unroll and jam in the ideal way. Reviewer: dmgreen, jdoerfert, Meinersbur, kbarton, bmahjour, etiotto Reviewed By: Meinersbur Subscribers: fhahn, hiraditya, zzheng, llvm-commits, anhtuyen, prithayan Tag: LLVM Differential Revision: https://reviews.llvm.org/D76132
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D79515
-
Craig Topper authored
Y is the start of several 2 letter constraints, but we also had partial support to recognize it by itself. But it doesn't look like it can get through clang as a single letter so the backend support for this was effectively dead.
-
Eric Christopher authored
A few documentation clarifications and moving one part of the docs around to be closer to the first mention of display so that it's easier to spot based on some user feedback. Differential Revision: https://reviews.llvm.org/D79443
-
Adrian Prantl authored
When debugging a remote platform, the platform you get from GetPlatformForArchitecture doesn't inherit from PlatformDarwin. HostInfoMacOSX seems like the right place to have a global store of local paths. Differential Revision: https://reviews.llvm.org/D79364
-
Melanie Blower authored
Bug reported by @uabelho against reviews.llvm.org/D72841 Reviewers: rjmccall Differential Revision: https://reviews.llvm.org/D79510
-
Adrian Prantl authored
When debugging from a SymbolMap the creation of CompileUnits for the individual object files is so lazy that RegisterXcodeSDK() is not invoked at all before the Swift TypeSystem wants to read it. This patch fixes this by introducing an explicit SymbolFile::ParseXcodeSDK() call that can be invoked deterministically before the result is required. <rdar://problem/62532151+62326862> https://reviews.llvm.org/D79273
-
Sergej Jaskiewicz authored
This reverts commit 52cc8bac. As the discussion in https://reviews.llvm.org/D78200 continues, I will revert this until we figure out what to do.
-
Akira Hatanaka authored
passed to __builtin_os_log_format to extend its lifetime to the end of its enclosing block Extend only lifetimes of pointers returned by function calls or message sends instead. In the long term, we should lifetime-extend pointers in more complex expressions and non-ARC objects (e.g., C++ temporaries) too. rdar://problem/61846261
-
Sam Clegg authored
This was originally the way this worked before before https://reviews.llvm.org/D60882. In retrospect it seems inconsistent that `--allow-undefined` doesn't work for all symbols. See: https://groups.google.com/g/emscripten-discuss/c/HSRgQiIq1gI/m/Kt9oFWHiAwAJ I'm also planning a followup change which implement the full `--unresolved-symbols=..` flags supported by ELF linkers (both ld and ld.lld) since it seems more standard. Differential Revision: https://reviews.llvm.org/D79247
-
Pete Steinfeld authored
Summary: I updated the code that produces the message and the associated test. Reviewers: sscalpone, DavidTruby Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79514
-
Alexandre Ganea authored
This reverts commit 06591b6d.
-
Alexandre Ganea authored
Before this patch, the debug record S_GTHREAD32 which represents global thread_local symbols, was emitted by LLD into the respective module stream. This makes Visual Studio unable to display thread_local symbols in the debugger. After this patch, S_GTHREAD32 is moved into the globals stream. This matches MSVC behavior. Differential Revision: https://reviews.llvm.org/D79005
-
Tim Keith authored
Add a way to get mutable equivalence sets to Scope so that they can have sizes and offsets assigned to them. Change CommonBlockDetails to have mutable symbols so that they can have sizes and offets assigned to them. This also allows the removal of some `const_cast`s. Add MutableSymbolRef and MutableSymbolVector as mutable analogs to SymbolRef and SymbolVector. Replace uses of equivalent types with those names. Differential Revision: https://reviews.llvm.org/D79346
-
Ulrich Weigand authored
When using vec_load/store_len_r with an immediate length operand of 16 or larger, LLVM will currently emit an VLRL/VSTRL instruction with that immediate. This creates a valid encoding (which should be supported by the assembler), but always traps at runtime. This patch fixes this by not creating VLRL/VSTRL in those cases. This would result in loading the length into a register and calling VLRLR/VSTRLR instead. However, these operations with a length of 15 or larger are in fact simply equivalent to a full vector load or store. And in fact the same holds true for vec_load/store_len as well. Therefore, add a DAGCombine rule to replace those operations with plain vector loads or stores if the length is known at compile time and equal or larger to 15.
-
Daan De Meyer authored
Summary: systemd recently added a clang-format file. One issue I encountered in using clang-format on systemd is that systemd does not add a space before the parens of their foreach macros but clang-format always adds a space. This does not seem to be configurable in clang-format. This revision adds the ControlStatementsExceptForEachMacros option to SpaceBeforeParens which puts a space before all control statement parens except ForEach macros. This drastically reduces the amount of changes when running clang-format on systemd's source code. Reviewers: MyDeveloperDay, krasimir, mitchell-stellar Reviewed By: MyDeveloperDay Subscribers: cfe-commits Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D78869
-
LemonBoy authored
Calling getShiftAmountTy with LegalTypes set may return a type that's too narrow to hold the shift amount for integer type it's applied to. Fixes the regression introduced by D79096 Differential Revision: https://reviews.llvm.org/D79405
-
Uday Bondhugula authored
Rename op trait PolyhedralScope -> AffineScope for consistency. Differential Revision: https://reviews.llvm.org/D79503
-
Tim Keith authored
Objects in common blocks have offsets relative to the start of the common block, independent of the enclosing scope, so they are processed first. Add alignment to CommonBlockDetails to record the required alignment of the common block. For equivalence sets, each object depends on the one that is forced to occur first in memory. The rest are recorded in the dependents_ map and have offsets assigned after the other symbols are done. Differential Revision: https://reviews.llvm.org/D79347
-
Alex Zinenko authored
When the folding is performed in place, the `::fold` function does not populate its `results` argument to indicate that. (In the folding hook for single-result operations, the result of the original operation is expected to be returned, but it is then ignored by the wrapper.) `OperationFolder::create` would erronously rely on the _operation_ having zero results instead of on the _folding_ producing zero new results to populate the list of results with those of the original operation. This would lead to a crash for single-result ops with in-place folds where the first result is accessed uncondtionally because the list of results was not properly populated. Use the list of values produced by the folding instead. Differential Revision: https://reviews.llvm.org/D79497
-
Sanjay Patel authored
Depends on D79360 / rG2f1fe186 for the transform.
-
Michael Liao authored
Summary: - Need to include checking on the new 16-bit subregs. Reviewers: rampitec Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79498
-
Simon Pilgrim authored
-
zoecarver authored
Summary: If the only use of a value is a start or end lifetime intrinsic then mark the intrinsic as trivially dead. This should allow for that value to then be removed as well. Currently, this only works for allocas, globals, and arguments. Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79355
-
Siva Chandra Reddy authored
Summary: Math results are compared with MPFR results by checking if they are within a tolerance level of the MPFR result. The tolerance level is set using additional bits of precision of the fractional part of a floating point value. Hence, the actual value of the tolerance depends on not only the additional bits, but also on the exponent part of the floating point number. Previously, the exponent part was not considered in evaluating the tolerance value. While it was OK for small values less than 1 (hence sinf, cosf, sincosf tests were OK), it breaks for large values which functions like exp and friends produce. This change uses the exponent value also to evaluate the tolerance value. LLVM libc produced results can now be compared with MPFR produced results for large values also. Reviewers: abrachet Differential Revision: https://reviews.llvm.org/D79278
-
Sean Silva authored
Summary: - Add license header. - Remove TODO about extracting ShapeBase.td Differential Revision: https://reviews.llvm.org/D79506
-
Simon Pilgrim authored
This helped fix some i686 vXi64 broadcast folds that were becoming v2Xi32 broadcasts because we didn't match the broadcast until after SimplifyDemandedBits worked out we only used the bottom 32-bits in PMUL(U)DQ and type legalization had split the original i64 load. A couple of regressions occurred which required some fixups - adding concat_vectors(broadcast_load,broadcast_load) splat support and recognising (unnecessary) unary shuffles of already broadcasted vectors. This came about as part of the work investigating vector load combining from shuffles for PR42550.
-
Simon Pilgrim authored
We never need to call this from anything but ISD::SHUFFLE_VECTOR or target shuffles so shouldn't need to address SDNode directly.
-