- Oct 08, 2020
-
-
Geoffrey Martin-Noble authored
These are unused since https://reviews.llvm.org/rG35cb45c533fb76dcfc9f44b4e8bbd5d8a855ed2a causing `-Wunused` warnings. Differential Revision: https://reviews.llvm.org/D89022
-
Yuanfang Chen authored
We saw the same assertion failure mentioned here https://bugs.llvm.org/show_bug.cgi?id=42063 in our internal tests. The failure happens in the same circumstance as D47898 and D66814 where uniqueing of DICompositeTypes causes `Mapper::mapValue` to be called on GlobalValues(`G`) from a not-yet-linked module(`M`). The following type-mapping for `G` may not complete correctly (fail to unique types etc. depending on the the complexity of the types) because IRLinker::computeTypeMapping is not done for `M` in this path. D47898 and D66814 fixed some type-mapping issue after Mapper::mapValue is called on `G`. However, it seems it did not handle some complex cases. I think we should delay linking globals like `G` until its owing module is linked. In this way, we could save unnecessary type mapping and prune these corner cases. It is also supposed to reduce the total number of structs ending up in the combined module. D47898 is reverted (its test is kept) because it regresses the test case here. D66814 could also be reverted (the `check-all` looks good). But it looks reasonable anyway, so I thought I should keep it. Also tested the patch with clang self-host regularLTO/ThinLTO build, things look good as well. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D87001
-
Petr Hosek authored
glibc supports versioning, so it's possible to build against older version and run against newer version. This is sometimes relied on in practice, e.g. in Fuchsia build we build against older sysroot (equivalent to Ubuntu Trusty) to cover the broadest possible range of host systems, but that doesn't necessarily match the system that binary is going to run on which may have newer version, in which case the compile test used in curr_symbol is going to fail. Using runtime check is more reliable. This is a follow up to D56702 which addressed one instance, this patch addresses all of the remaining ones. Differential Revision: https://reviews.llvm.org/D88188
-
Anna Thomas authored
The pass is updated to handle loads through complex addressing mode, specifically, when we have a scaled register and a scale. It requires two API updates in TII which have been implemented for X86. See added IR and MIR testcases. Tests-Run: make check Reviewed-By: reames, danstrushin Differential Revision: https://reviews.llvm.org/D87148
-
Craig Topper authored
We need to use LCMPXCHG16B_SAVE_RBX if RBX/EBX is being used as the frame pointer. We previously checked for this during type legalization, but that's too early to know for sure if the base pointer is needed. This patch adds a new pseudo instruction to emit from isel that uses a virtual register for the RBX input. Then we use the custom inserter hook to emit LCMPXCHG16B if RBX isn't needed as a base pointer or LCMPXCHG16B_SAVE_RBX if it is. Fixes PR42064. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D88808
-
Dominic Chen authored
Differential Revision: https://reviews.llvm.org/D88349
-
Teresa Johnson authored
Adds a check to avoid symbolization when printing stack traces if the stack_trace_format flag does not need it. While there is a symbolize flag that can be turned off to skip some of the symbolization, SymbolizePC() still unconditionally looks up the module name and offset. Avoid invoking SymbolizePC() at all if not needed. This is an efficiency improvement when dumping all stack traces as part of the memory profiler in D87120, for large stripped apps where we want to symbolize as a post pass. Differential Revision: https://reviews.llvm.org/D88361
-
peter klausler authored
MSVC does not support a distinct 80-bit extended precision "long double" type. Rework the I/O runtime to avoid using native C/C++ type names. Centralize the mappings between the KIND= type parameters of REAL and their binary precisions in the common real.h header file, and use KIND type parameter values rather than binary precisions for clarity where appropriate. This patch, if successful, should obviate the need for Differential review D88511. (This patch anticipates a successful review of D88688, which fixes the function that maps each kind of real to its maximum number of significant decimal digits.) Differential revision: https://reviews.llvm.org/D88752
-
Louis Dionne authored
Since ebaf1d5e, the macros defined in <Availability.h> are not used anymore.
-
Jim Ingham authored
-
Min-Yih Hsu authored
This is a cherrypick of the upstream fix commit ffe1342 onto `llvm/utils/benchmark` and `libcxx/utils/google-benchmark`. This adds CycleTimer implementation for M680x0, which simply uses `gettimeofday` same as MIPS. Differential Review: https://reviews.llvm.org/D88868
-
Mircea Trofin authored
Also changed users of APIs. Differential Revision: https://reviews.llvm.org/D88930
-
peter klausler authored
The semantics pass currently checks for several constraints that apply to the use of whole assumed-size arrays in various contexts, but C1002 wasn't really implemented. This patch implements C1002 by disallowing the use of whole assumed-size arrays in expressions and variables unless specifically allowed by the context. This centralizes the error reporting, which has been improved with a link to the array's declaration. Differential revision: https://reviews.llvm.org/D88691
-
Reid Kleckner authored
Fixes one test under NPM Differential Revision: https://reviews.llvm.org/D88766
-
Reid Kleckner authored
Fixes a few tests in llvm/test/Transforms/Utils. Differential Revision: https://reviews.llvm.org/D88762
-
Greg Clayton authored
Add regular expressions to and DWARF Call Frame Information tests in case the architecture specific target is not compiled into LLVM. This should fix any build bots that avoid compiling some architectures into llvm after https://reviews.llvm.org/D88767. Differential Revision: https://reviews.llvm.org/D88940
-
Aart Bik authored
Rationale: More consistent with the other names. Also forward looking to reading in other kinds of matrices. Also fixes lint issue on hard-coded %llu. Reviewed By: penpornk Differential Revision: https://reviews.llvm.org/D89005
-
Philip Reames authored
This required some minor code reorganization to have a version of castIsValid which worked purely in terms of types.
-
Mircea Trofin authored
-
Rahman Lavaee authored
[BasicBlockSections] Make sure that the labels for address-taken blocks are emitted after switching the seciton. Currently, AsmPrinter code is organized in a way in which the labels of address-taken blocks are emitted in the previous section, which makes the relocation incorrect. This patch reorganizes the code to switch to the basic block section before handling address-taken blocks. Reviewed By: snehasish, MaskRay Differential Revision: https://reviews.llvm.org/D88517
-
Cameron McInally authored
-
Simon Pilgrim authored
Prep work before some cleanup in narrowMaskedBinOp
-
Ronak Chauhan authored
The diff file was added by mistake.
-
Douglas Yung authored
This should fix the failure on http://lab.llvm.org:8011/#/builders/91/builds/30
-
Haojian Wu authored
If the NewName is provided, prepareRename would perform a name validation. The motivation is to allow our internal embeder implement the customized "canRenameInto" functionality on top of prepareRename. Differential Revision: https://reviews.llvm.org/D88881
-
Philip Reames authored
I made exactly the mistake described, so document the precondition. It would be better to have an assert, but there is (currently) no "castIsValid" with purely type arguments.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Add some missing CHECK-LABEL lines. Remove leading '@' so it'll be possible to match against c and c++ builds in a future patch.
-
Amara Emerson authored
[mlir] Fix build after 322d0afd due to change in intrinsic overloads. I'd forgottent to run the mlir tests after removing the scalar input overload on the fadd/fmul reductions. This is a quick fix for the mlir bot.
-
Stanislav Mekhanoshin authored
This is still no-op because there is no selection for these opcodes. Differential Revision: https://reviews.llvm.org/D88927
-
Edd Dawson authored
... instead of the one on the $PATH. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D88986
-
Florian Hahn authored
Currently LAA uses getScalarSizeInBits to compute the size of an element when computing the end bound of an access. This does not work as expected for pointers to pointers, because getScalarSizeInBits will return 0 for pointer types. By using DataLayout to get the size of the element we can also correctly handle pointer element types. Note the changes to the existing test, which seems to also use the wrong offset for the end. Fixes PR47751. Reviewed By: anemet Differential Revision: https://reviews.llvm.org/D88953
-
Stanislav Mekhanoshin authored
This is no-op so far because we do not select these yet. Differential Revision: https://reviews.llvm.org/D88920
-
Amara Emerson authored
The STRICT was causing unnecessary confusion. I think SEQ is a more accurate name for what they actually do, and the other obvious option of "ORDERED" has the issue of already having a meaning in FP contexts. Differential Revision: https://reviews.llvm.org/D88791
-
Sam McCall authored
Up until now, we relied on matching the filename. This depends on unstable details of libstdc++ and doesn't work well on other stdlibs. Also we'd like to remove it (see D88204). Differential Revision: https://reviews.llvm.org/D88885
-
Amara Emerson authored
This change renames the intrinsics to not have "experimental" in the name. The autoupgrader will handle legacy intrinsics. Relevant ML thread: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140729.html Differential Revision: https://reviews.llvm.org/D88787
-
Fanbo Meng authored
-
Stella Laurenzo authored
* New functions: mlirOperationSetAttributeByName, mlirOperationRemoveAttributeByName * Also adds some *IsNull checks and standardizes the rest to use "static inline" form, which makes them all non-opaque and not part of the ABI (which is desirable). * Changes needed to resolve TODOs in npcomp PyTorch capture. Differential Revision: https://reviews.llvm.org/D88946
-
Heejin Ahn authored
Renaming for some Emscripten EH functions has so far been done in wasm-emscripten-finalize tool in Binaryen. But recently we decided to make a compilation/linking path that does not rely on wasm-emscripten-finalize for modifications, so here we move that functionality to LLVM. Invoke wrappers are generated in LowerEmscriptenEHSjLj pass, but final wasm types are not available in the IR pass, we need to rename them at the end of the pipeline. This patch also removes uses of `emscripten_longjmp_jmpbuf` in LowerEmscriptenEHSjLj pass, replacing that with `emscripten_longjmp`. `emscripten_longjmp_jmpbuf` is lowered to `emscripten_longjmp`, but previously we generated calls to `emscripten_longjmp_jmpbuf` in LowerEmscriptenEHSjLj pass because it takes `jmp_buf*` instead of `i32`. But we were able use `ptrtoint` to make it use `emscripten_longjmp` directly here. Addresses: https://github.com/WebAssembly/binaryen/issues/3043 https://github.com/WebAssembly/binaryen/issues/3081 Companions: https://github.com/WebAssembly/binaryen/pull/3191 https://github.com/emscripten-core/emscripten/pull/12399 Reviewed By: dschuff, tlively, sbc100 Differential Revision: https://reviews.llvm.org/D88697
-