- Sep 22, 2020
-
-
Hamilton Tobon Mosquera authored
Refactored __tgt_target_data_begin_mapper_<issue|wait> to receive the handle as an input/output argument. This given the compiler warning of returning the handle as copy. Differential Revision: https://reviews.llvm.org/D88029
-
Saleem Abdulrasool authored
This introduces the new `swift_name` attribute that allows annotating APIs with an alternate spelling for Swift. This is used as part of the importing mechanism to allow interfaces to be imported with a new name into Swift. It takes a parameter which is the Swift function name. This parameter is validated to check if it matches the possible transformed signature in Swift. This is based on the work of the original changes in https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c Differential Revision: https://reviews.llvm.org/D87534 Reviewed By: Aaron Ballman, Dmitri Gribenko
-
Arthur Eubanks authored
-
Alexandre Ganea authored
Re-use an optimizition from the old LTO API (used by ld64). This sorts modules in ascending order, based on bitcode size, so that larger modules are processed first. This allows for smaller modules to be process last, and better fill free threads 'slots', and thusly allow for better multi-thread load balancing. In our case (on dual Intel Xeon Gold 6140, Windows 10 version 2004, two-stage build), this saves 15 sec when linking `clang.exe` with LLD & `-flto=thin`, `/opt:lldltojobs=all`, no ThinLTO cache, -DLLVM_INTEGRATED_CRT_ALLOC=d:\git\rpmalloc. Before patch: 102 sec After patch: 85 sec Inspired by the work done by David Callahan in D60495. Differential Revision: https://reviews.llvm.org/D87966
-
Kostya Kortchinsky authored
https://reviews.llvm.org/D87420 removed the uses of the pthread key, but the key itself was left in the shared TSD registry. It is created on registry initialization, and destroyed on registry teardown. There is really no use for it now, so we can just remove it. Differential Revision: https://reviews.llvm.org/D88046
-
Arthur Eubanks authored
-
Louis Dionne authored
This commit adds std::construct_at, and marks various members of std::allocator_traits and std::allocator as constexpr. It also adds tests and turns the existing tests into hybrid constexpr/runtime tests. Thanks to Richard Smith for initial work on this, and to Michael Park for D69803, D69132 and D69134, which are superseded by this patch. Differential Revision: https://reviews.llvm.org/D68364
-
David Tenty authored
since we will be building both 32-bit and 64-bit compiler-rt builtins from a single configuration. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D87113
-
Greg McGary authored
Stifle the warning for unimplemented option `-dyamic`, since it is already the default. Add `Config::staticLink` and skeletal support for altering the flag, but otherwise leave the option `-static` as hidden and its warning in place. Differential Revision: https://reviews.llvm.org/D88045
-
Florian Hahn authored
This provides a convenient way to print VPValues and recipes in a debugger. In particular it saves the user from instantiating VPSlotTracker to print recipes or values.
-
Michael Liao authored
- Eliminate redundant COPYs from the same register & subregister pair. Differential Revision: https://reviews.llvm.org/D87939
-
Simon Pilgrim authored
Fixes some clang-tidy llvm-namespace-comment warnings.
-
Simon Pilgrim authored
Fixes some clang-tidy llvm-namespace-comment warnings.
-
David Tenty authored
since crti is required for functional static initialization. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D87927
-
David Truby authored
This prefix is unnecessary as SmallVector is re-exported in the mlir namespace. Differential Revision: https://reviews.llvm.org/D88025
-
Stefan Pintilie authored
Stop combining loads and stores with PPCISD::ADD_TLS before we can merge the node with with TLS_LOCAL_EXEC_MAT_ADDR. The issue is that TLS_LOCAL_EXEC_MAT_ADDR cannot be selected by itself and requires the previous ADD_TLS node that goes with it. However, we sometimes try to combine ADD_TLS with loads and stores that come after it. If this happens then the ADD_TLS is removed and TLS_LOCAL_EXEC_MAT_ADDR cannot be selected. While this bug fix will address the issue it my not be ideal from a performance perspective as we may be able to add patterns to combine TLS_LOCAL_EXEC_MAT_ADDR with ADD_TLS with the load and store that comes after it all in one. However, this is beyond the scope of this patch. Reviewed By: NeHuang Differential Revision: https://reviews.llvm.org/D88030
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Sanjay Patel authored
1. Use range for-loop to avoid repeatedly accessing end index. 2. Better variable names.
-
Eduardo Caldas authored
Differential Revision: https://reviews.llvm.org/D88077
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D88091
-
Simon Pilgrim authored
-
Louis Dionne authored
-
Sam Parker authored
-
Victor Huang authored
Update the thunk range error report for PPC64PCRelLongBranchThunk and add a range error test case for PPC64R12SetupStub. Differential Revision: https://reviews.llvm.org/D87381
-
Abhina Sreeskantharajan authored
Set the default wchar_t type on z/OS, and unsigned as the default. Reviewed By: hubert.reinterpretcast, fanbo-meng Differential Revision: https://reviews.llvm.org/D87624
-
Max Kazantsev authored
Currently these predicates are ignored, yet their handling is pretty simple. I could not find a single test where it would actually change something, but it's only because isImpliedCondOperands is not smart enough to prove it further on. Yet the situation when we come there with `less` predicate is pretty common. Differential Revision: https://reviews.llvm.org/D87890 Reviewed By: fhahn
-
Meera Nakrani authored
Changes TTI function getIntImmCostInst to take an additional Instruction parameter, which enables us to be able to check it is part of a min(max())/max(min()) pattern that will match SSAT. We can then mark the constant used as free to prevent it being hoisted so SSAT can still be generated. Required minor changes in some non-ARM backends to allow for the optional parameter to be included. Differential Revision: https://reviews.llvm.org/D87457
-
Raphael Isemann authored
Clang has some type sugar that only serves as a way to preserve the way a user has typed a certain type in the source code. These types are currently not unwrapped when we query the type name for a Clang type, which means that this type sugar actually influences what formatters are picked for a certain type. Currently if a user decides to reference a type by doing `::GlobalDecl Var = 3;`, the type formatter for `GlobalDecl` will not be used (as the type sugar around the type gives it the name `::GlobalDecl`. The same goes for other ways to spell out a type such as `auto` etc. With this patch most of this type sugar gets stripped when the full type name is calculated. Typedefs are not getting desugared as that seems counterproductive. I also don't desugar atomic types as that's technically not type sugar. Reviewed By: jarin Differential Revision: https://reviews.llvm.org/D87481
-
Simon Pilgrim authored
Revert rGf8357791 "[APFloat] multiplySignificand - always pass IEEEFloat as const reference. NFCI." This reverts commit f8357791 while I investigate some buildbot failures
-
Stefan Pintilie authored
Add Thread Local Storage Initial Exec support to LLD. This patch adds the computation for the relocations as well as the relaxation from Initial Exec to Local Exec. Initial Exec: ``` pld r9, x@got@tprel@pcrel add r9, r9, x@tls@pcrel ``` or ``` pld r9, x@got@tprel@pcrel lbzx r10, r9, x@tls@pcrel ``` Note that @tls@pcrel is actually encoded as R_PPC64_TLS with a one byte displacement. For the above examples relaxing Intitial Exec to Local Exec: ``` paddi r9, r9, x@tprel nop ``` or ``` paddi r9, r13, x@tprel lbz r10, 0(r9) ``` Reviewed By: nemanjai, MaskRay, #powerpc Differential Revision: https://reviews.llvm.org/D86893
-
Simon Pilgrim authored
We do this in all other cases.
-
Esme-Yi authored
-
Frederik Gossen authored
The assertion falsely expected ranked memrefs only. Now both, ranked and unranked memrefs are allowed. Differential Revision: https://reviews.llvm.org/D88080
-
Max Kazantsev authored
SCEV should be able to prove facts like `x <u x+1<nuw>`. Differential Revision: https://reviews.llvm.org/D88015 Reviewed By: lebedev.ri
-
Thomas Joerg authored
This reverts commit 385c3f43. Test mlir/test/Pass:dynamic-pipeline-fail-on-parent.mlir.test fails when run with ASAN: ERROR: AddressSanitizer: stack-use-after-scope on address ... Reviewed By: bkramer, pifon2a Differential Revision: https://reviews.llvm.org/D88079
-
Jay Foad authored
It's simpler to do this at codegen time than to do ad-hoc constant folding of machine instructions in SIFoldOperands. Differential Revision: https://reviews.llvm.org/D88028
-
Sam Parker authored
The VPTBlock has been modified to track the 'global' state of the VPR, as well as the state for each block. Each object now just holds a list of instructions that makeup the block, while static structures hold the predicate information. This enables global access for querying how both a VPT block and individual instructions are predicated. These changes now allow us, again, to handle more complicated cases where multiple instructions build a predicate and/or where the same predicate in used in multiple blocks. It doesn't, however, get us back to before the tracking was 'fixed' as some extra logic will be required to properly handle VPT instructions. Currently a VPT could be effectively predicated because of it's inputs, but the existing logic will not detect that and so will refuse to perform the transformation. This can be seen in remat-vctp.ll test where we still don't perform the transform. Differential Revision: https://reviews.llvm.org/D87681
-
Muhammad Omair Javaid authored
This reverts commit 55f9f87d. Breaks following buildbots: http://lab.llvm.org:8011/builders/lldb-arm-ubuntu/builds/4306 http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/9154
-
Eduardo Caldas authored
There can be Macros that are tagged with `modifiable`. Thus verifying `canModifyAllDescendants` is not sufficient to avoid macros when deep copying. We think the `TokenBuffer` could inform us whether a `Token` comes from a macro. We'll look into that when we can surface this information easily, for instance in unit tests for `ComputeReplacements`. Differential Revision: https://reviews.llvm.org/D88034
-