- Aug 22, 2020
-
-
Serguei Katkov authored
If some of gc live value are not used in gc.relocate we can remove them from gc-live bundle of statepoint instruction. Also the CL removes duplicated Values in gc-live bundle. Reviewers: reames, dantrushin Reviewed By: dantrushin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D85959
-
Wolfgang Pieb authored
Reviewed By: andreadb, lebedev.ri Differential Revision: https://reviews.llvm.org/D86177 -
Fangrui Song authored
See http://lists.llvm.org/pipermail/llvm-dev/2017-June/113975.html for a related previous discussion. Many tools install signal handlers to print stack traces and optionally symbolize the addresses with an external program 'llvm-symbolizer' (when searching for 'llvm-symbolizer', the directory containg the executable is preferred over PATH). 'llvm-symbolizer' can be slow if the executable is large and/or if llvm-symbolizer' itself is under-optimized. For example, my 'llvm-lto2' from a -DCMAKE_BUILD_TYPE=Debug build is 443MiB. The 'llvm-symbolizer' from the same build takes ~2s to symbolize it. (An optimized 'llvm-symbolizer' takes 0.34s). A crashed clang may take more than 5s to symbolize a stack trace. If a test file has several `not --crash` RUN lines. It can be very slow in a Debug build. This patch makes `not --crash` set an environment variable to suppress symbolization. This is similar to D33804 which uses a command line option. ...
-
Stefan Pintilie authored
-
Jonas Devlieghere authored
Refuse to run the shell tests when %lldb cannot be substituted. This prevents the test from silently running again the `lldb` in your PATH. I noticed because when this happens, %lldb-init gets substituted with lldb-init, which does not exists.
-
Julian Lettner authored
-
Qiu Chaofan authored
This patch adds support for constrained scalar int to fp operations on PowerPC. Besides, this also fixes the FP exception bit of FCFID* instructions. Reviewed By: steven.zhang, uweigand Differential Revision: https://reviews.llvm.org/D81669
-
Aden Grue authored
Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D86326
-
Stefan Pintilie authored
The function `__tls_get_addr` is used to get the address of an object that is Thread Local Storage. It needs to have two relocations on it. One relocation is for the function call itself and it is either R_PPC64_REL24 or R_PPC64_REL24_NOTOC. The other is R_PPC64_TLSGD or R_PPC64_TLSLD for the symbol that is having its address computed. In the early days of the transition from the ELFv1 ABI that is used for big endian PowerPC Linux distributions to the ELFv2 ABI that is used for little endian PowerPC Linux distributions, there was some ambiguity in the specification of the relocations for TLS. The GNU linker has implemented support for correct handling of calls to __tls_get_addr with a missing relocation. Unfortunately, we didn't notice that the IBM XL compiler did not handle TLS according to the updated ABI until we tried linking XL compiled libraries with LLD. As a result, there is a lot of code out there in various libraries compiled with XL that have this problem. This patch adds a new error check in LLD that makes sure calls to `__tls_get_addr` are not missing the TLSGD/TLSLD relocation. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D85994
-
Thomas Raoux authored
Binding MemRefs of f16 needs special handling as the type is not supported on CPU. There was a bug in the type used. Differential Revision: https://reviews.llvm.org/D86328
-
Jonas Devlieghere authored
With the log file being a build artifact we don't need to clean it up. If this happens before the reproducer is captured, the file will be missing from the reproducer root but being part of the mapping.
-
Dan Gohman authored
-
Azharuddin Mohammed authored
This reverts commit bb54bcf8. It is causing the value-profile-load.test test to fail on macOS.
-
Serguei Katkov authored
The only def for gc.relocate is a gc.statepoint. But real dependency is not described by def-use chain. Instead this dependency is encoded by indecies of operands in gc-live bundle of statepoint as integer constants in gc.relocate. InstCombine operates by def-use chain. As a result when value in gc-live bundle is simplified the gc.statepoint itself is not simplified but it might simplify dependent gc.relocates. To trigger the optimization of gc.relocate we now unconditionally trigger check of all dependent gc.relocates by adding them to worklist. This CL handles of gc.relocates as process of gc.statepoint optimization considering gc.statepoint and related gc.relocate as whole entity. Reviewers: reames, dantrushin Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D85954
-
Aaron Ballman authored
This reverts commit 7a527f17. It caused some buildbot failures: http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/13600 http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/20294
-
Azharuddin Mohammed authored
-
Jonas Devlieghere authored
-
Vaibhav Garg authored
This commit teaches ASTDeclReader::attachPreviousDecl to successfully merge two Decl's when one contains an inheritable attribute like the MSInheritanceAttr. Usually, attributes that are needed to be present along the redeclaration chain are attached during ASTReading from ASTDeclReader::attachPreviousDecl, but no such thing is done for inheritable attributes. Currently, only the logic for merging MSInheritanceAttr is provided.
-
-
- Aug 21, 2020
-
-
Florian Hahn authored
Currently ConstantExpr::getWithOperands does not handle FNeg and subsequently treats FNeg as binary operator, leading to an assertion failure or segmentation fault if built without assertions. Originally I reproduced this with llvm-dis on a bitcode file, which I unfortunately cannot share and also cannot really reduce. But PR45426 describes the same issue and has a reproducer with Clang, so I'll go with that. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D86274
-
Kamau Bridgeman authored
This patch is the initial support for the Intial Exec Thread Local Local Storage model to produce code sequence and relocations correct to the ABI for the model when using PC relative memory operations. Reviewed By: stefanp Differential Revision: https://reviews.llvm.org/D81947
-
diggerlin authored
SUMMARY: Reviewers: Jason liu Differential Revision: https://reviews.llvm.org/D84265
-
Eduardo Caldas authored
Differential Revision: https://reviews.llvm.org/D86345
-
Raphael Isemann authored
This reverts commit a4c3ed42. The test is curiously failing with a plain exit code 1 on Fuchsia.
-
Florian Hahn authored
Recommit the patch after fixing an issue reported caused by the fact that re-used values are also added to InsertedValues. Additional tests have been added in 88818491 This reverts the revert commit 38884641.
-
Cameron McInally authored
Pretty much just a copy of the SDIV patches (D86114 and D85982) with string replacement. Differential Revision: https://reviews.llvm.org/D86316
-
Haojian Wu authored
Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D85716
-
Raphael Isemann authored
D81347 changes the ASTFileSignature to be an array of 20 uint8_t instead of 5 uint32_t. However, it didn't update the code in ObjectFilePCHContainerOperations that creates the dwoID in the module from the ASTFileSignature (`Buffer->Signature` being the array subclass that is now `std::array<uint8_t, 20>` instead of `std::array<uint32_t, 5>`). ``` uint64_t Signature = [..] (uint64_t)Buffer->Signature[1] << 32 | Buffer->Signature[0] ``` This code works with the old ASTFileSignature (where two uint32_t are enough to fill the uint64_t), but after the patch this only took two bytes from the ASTFileSignature and only partly filled the Signature uint64_t. This caused that the dwoID in the module ref and the dwoID in the actual module no longer match (which in turns causes that LLDB keeps warning about the dwoID's not matching when debugging -gmodules-compiled binaries). This patch just unifies the logic for turning the ASTFileSignature into an uint64_t which makes the dwoID match again (and should prevent issues like that in the future). Reviewed By: aprantl, dang Differential Revision: https://reviews.llvm.org/D84013
-
Florian Hahn authored
-
Sam Parker authored
-
Georgii Rymar authored
The testing in merged.test is not ideal. It uses the following set of flags: `-aeWhSrnudlVgIs` and the precompiled object `trivial.obj.elf-i386`. In fact, this object, for example, does not contain versioning stuff, so specifying `-V` does not make much sense for it, so it is not really tested. Also, we want to avoid using of precompiled objects, ideally we want to use a YAML that triggers an output for each of the short options in use: ``` -a: --all -e: --headers -W: --wide -h: --file-headers, --file-header -S: --section-headers, --sections -r: --relocations -n: --notes -u: --unwind -d: --dynamic-table -l: --program-headers -V: --version-info -g: --elf-section-groups -I: --elf-hash-histogram -s: --symbols ``` Note that, for example, we do not need to have groups to test `-g`, because for a object with no groups llvm-readelf still prints "There are no section groups in this file.", but that is not always the case. E.g. for `-d` we don't print anything when we have no dynamic table, so we have to describe it in a YAML to test `-d` properly. Also, we probably want to test cases with and without `-a`(-all) option separately to be sure that we handle all options and not only the first one in the sequence. Differential revision: https://reviews.llvm.org/D86283
-
Luís Marques authored
D80465 added an assembly implementation of muldi3 for RISC-V but it didn't add it to the cmake `*_SOURCES` list, so the C implementation was being used instead. This patch fixes that. Differential Revision: https://reviews.llvm.org/D86036
-
Georgii Rymar authored
The code that reports "PT_DYNAMIC segment offset + size exceeds the size of the file" has an issue: it is possible to bypass the validation by overflowing the size + offset result. Differential revision: https://reviews.llvm.org/D85519
-
Nemanja Ivanovic authored
Our handling of PC-Relative addressing is currently broken with Fast ISel in 3 ways: - FISel emits calls without handling all the PC-Rel intricacies - FISel materializes FP constants through the TOC - FISel materializes GV's through the TOC As it would be unnecessarily tedious to implement all the handling for PC-Rel in Fast ISel, we will turn off FISel for anything that generates references to the TOC.
-
Dmitry Preobrazhensky authored
Summary of changes: - added description of MTBUF instructions and format modifier; - described limitations of f16 inline constants when used with integer operands; - updated description of gfx9+ flat global addressing modes; - v_accvgpr_write_b32 src0 corrections (gfx908); - minor bugfixing and improvements.
-
Adam Czachorowski authored
This can happen when building implicit modules, as demonstrated in test. The CompilerInstance uses the same StoredDiags, but different SourceManager. This used to crash clangd when it tried to relocate the diagnostic to the main file, which, according to SourceManager from the diagnostic, is a fake <module-includes> file. Differential Revision: https://reviews.llvm.org/D85753
-
Xing GUO authored
The original commit (7ff0ace96db9164dcde232c36cab6519ea4fce8) was causing build failure and was reverted in 6d242a73 ==================== Original Commit Message ==================== This patch adds support for referencing different abbrev tables. We use 'ID' to distinguish abbrev tables and use 'AbbrevTableID' to explicitly assign an abbrev table to compilation units. The syntax is: ``` debug_abbrev: - ID: 0 Table: ... - ID: 1 Table: ... debug_info: - ... AbbrevTableID: 1 ## Reference the second abbrev table. - ... AbbrevTableID: 0 ## Reference the first abbrev table. ``` Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D83116
-
Sam Parker authored
Add some phi elimination threshold testing.
-
Simon Pilgrim authored
This enables constexpr BSF/BSR intrinsics defined in ia32intrin.h
-
lewis-revill authored
PseudoBRIND had seemingly inherited incorrect annotations denoting it as a call instruction and that it defines X1/ra. This caused excess save/restore code to be emitted for ra. Differential Revision: https://reviews.llvm.org/D86286
-