- Oct 08, 2020
-
-
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
-
Daniel Sanders authored
(Based on D87170 by dsanders) I recently had need to call out to an external API to emit a JSON object as part of one an LLVM tool was emitting. However, our JSON support didn't provide a way to delegate part of the JSON output to that API. Add rawValueBegin() and rawValueEnd() to maintain and check the internal state while something else is writing to the stream. It's the users responsibility to ensure that the resulting JSON output is still valid. Differential Revision: https://reviews.llvm.org/D88902
-
Sam McCall authored
This reverts commit 281703e6. GCC 5.4 bugs are worked around by avoiding use of variable templates. Differential Revision: https://reviews.llvm.org/D88977
-
Alex Richardson authored
While debugging a different clang-format failure, I tried to reuse the MacroExpander lexer, but was surprised to see that it marks all C++ keywords (e.g. const, decltype) as being of type identifier. After stepping through the ::format() code, I noticed that the difference between these two is that the identifier table was not being initialized based on the FormatStyle, so only basic tokens such as tok::semi, tok::plus, etc. were being handled. Reviewed By: klimek Differential Revision: https://reviews.llvm.org/D88952
-