Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0 |
|
#
e54277fa |
| 11-Sep-2023 |
Jeremy Morse <jeremy.morse@sony.com> |
[NFC][RemoveDIs] Use iterators over inst-pointers when using IRBuilder
This patch adds a two-argument SetInsertPoint method to IRBuilder that takes a block/iterator instead of an instruction, and up
[NFC][RemoveDIs] Use iterators over inst-pointers when using IRBuilder
This patch adds a two-argument SetInsertPoint method to IRBuilder that takes a block/iterator instead of an instruction, and updates many call sites to use it. The motivating reason for doing this is given here [0], we'd like to pass around more information about the position of debug-info in the iterator object. That necessitates passing iterators around most of the time.
[0] https://discourse.llvm.org/t/rfc-instruction-api-changes-needed-to-eliminate-debug-intrinsics-from-ir/68939
Differential Revision: https://reviews.llvm.org/D152468
show more ...
|
Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3 |
|
#
91157a0b |
| 13-Aug-2023 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[LegacyPM] Drop unused includes in passes no longer supporting legacy PM
|
Revision tags: llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
1844d648 |
| 22-Jul-2023 |
Nuno Lopes <nuno.lopes@tecnico.ulisboa.pt> |
[RewriteStatepointsForGC] Use poison instead of undef as placeholder [NFC] This is used in shufflevectors where the placeholder arg is unused. It's also used when deleting invariant_start
|
#
f0fa2d7c |
| 25-Jun-2023 |
Elliot Goodrich <elliotgoodrich@gmail.com> |
[llvm] Move AttributeMask to a separate header
Move `AttributeMask` out of `llvm/IR/Attributes.h` to a new file `llvm/IR/AttributeMask.h`. After doing this we can remove the `#include <bitset>` and
[llvm] Move AttributeMask to a separate header
Move `AttributeMask` out of `llvm/IR/Attributes.h` to a new file `llvm/IR/AttributeMask.h`. After doing this we can remove the `#include <bitset>` and `#include <set>` directives from `Attributes.h`. Since there are many headers including `Attributes.h`, but not needing the definition of `AttributeMask`, this causes unnecessary bloating of the translation units and slows down compilation.
This commit adds in the include directive for `llvm/IR/AttributeMask.h` to the handful of source files that need to see the definition.
This reduces the total number of preprocessing tokens across the LLVM source files in lib from (roughly) 1,917,509,187 to 1,902,982,273 - a reduction of ~0.76%. This should result in a small improvement in compilation time.
Differential Revision: https://reviews.llvm.org/D153728
show more ...
|
#
17e03698 |
| 11-Jun-2023 |
Kazu Hirata <kazu@google.com> |
[Scalar] Remove RewriteStatepointsForGCLegacyPass
Differential Revision: https://reviews.llvm.org/D152638
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2 |
|
#
7b014a07 |
| 16-Apr-2023 |
Kazu Hirata <kazu@google.com> |
[Scalar] Use range-based for loops (NFC)
|
Revision tags: llvmorg-16.0.1, llvmorg-16.0.0 |
|
#
398af9b4 |
| 16-Mar-2023 |
Kazu Hirata <kazu@google.com> |
[llvm] Use *{Map,Set}::contains (NFC)
|
#
c8f9555c |
| 14-Mar-2023 |
Kazu Hirata <kazu@google.com> |
[Transforms] Use *{Set,Map}::contains (NFC)
|
Revision tags: llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1 |
|
#
7092dae0 |
| 25-Jan-2023 |
Campbell Suter <znix@znix.xyz> |
[RS4GC] Remove the hardcoded GC strategy names (v2)
Previously, RewriteStatepointsForGC had a hardcoded list of GC strategies for which it would run, and using it with a custom strategy required pat
[RS4GC] Remove the hardcoded GC strategy names (v2)
Previously, RewriteStatepointsForGC had a hardcoded list of GC strategies for which it would run, and using it with a custom strategy required patching LLVM.
The logic for selecting the variables that are considered managed was also hardcoded to use pointers in address space 1, rather than delegating to GCStrategy::isGCManagedPointer.
This patch fixes both of these flaws: this pass now applies to all functions whose GCStrategy returns true for useStatepoints, and checking if a pointer is managed or not is also now done by the strategy.
One potentially questionable design decision in this change: the pass will be enabled for all GC strategies that use statepoints. It seems unlikely this would be a problem - consumers that don't use this pass probably aren't adding it to the pass manager anyway - but if you had two different GC strategies and only one wants this pass enabled then that'd need a new flag in GCStrategy, which I can add if anyone thinks it's necessary.
This is an updated version of D140458, rebased to account for LLVM's changes since D140504 (required by this patch) landed.
Reviewed By: dantrushin
Differential Revision: https://reviews.llvm.org/D141110
show more ...
|
Revision tags: llvmorg-17-init, llvmorg-15.0.7 |
|
#
86ed0daa |
| 29-Nov-2022 |
Denis Antrushin <dantrushin@gmail.com> |
[RS4GC] Rematerialize derived pointers before uses.
Introduce an option to rematerialize derived pointers immediately before their uses instead of after every statepoint. This can be beneficial when
[RS4GC] Rematerialize derived pointers before uses.
Introduce an option to rematerialize derived pointers immediately before their uses instead of after every statepoint. This can be beneficial when pointer is live across many statepoints but has few uses. Initial implementation is simple and rematerializes derived pointer before every use, even if there are several uses in the same block or rematerialization instructions can be hoisted etc. Transformation is considered profitable if we would insert less instructions than we would insert after every live statepoint.
Depends on D138910, D138911
Reviewed By: anna, skatkov
Differential Revision: https://reviews.llvm.org/D138912
show more ...
|
#
6eb0b0a0 |
| 15-Dec-2022 |
Kazu Hirata <kazu@google.com> |
Don't include Optional.h
These files no longer use llvm::Optional.
|
Revision tags: llvmorg-15.0.6 |
|
#
004a70a9 |
| 23-Nov-2022 |
Denis Antrushin <dantrushin@gmail.com> |
[RS4GC] Turn lambda into static function. NFC.
Extract `rematerializeChain()` lambda into static function. We'll need it in upcoming patch to RS4GC pass. There is small interface change: now reversa
[RS4GC] Turn lambda into static function. NFC.
Extract `rematerializeChain()` lambda into static function. We'll need it in upcoming patch to RS4GC pass. There is small interface change: now reversal of `ChainToBase` is performed within this function, not outside. Still this is non-functional change.
Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D138910
show more ...
|
#
31521563 |
| 13-Dec-2022 |
Fangrui Song <i@maskray.me> |
[Transforms/Scalar] llvm::Optional => std::optional
|
#
f7dffc28 |
| 10-Dec-2022 |
Kazu Hirata <kazu@google.com> |
Don't include None.h (NFC)
I've converted all known uses of None to std::nullopt, so we no longer need to include None.h.
This is part of an effort to migrate from llvm::Optional to std::optional:
Don't include None.h (NFC)
I've converted all known uses of None to std::nullopt, so we no longer need to include None.h.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
#
f3b6dbfd |
| 03-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
Instructions: convert Optional to std::optional
|
#
df852f48 |
| 03-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
IRBuilder: convert Optional to std::optional
|
#
343de685 |
| 03-Dec-2022 |
Kazu Hirata <kazu@google.com> |
[Transforms] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount
[Transforms] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
Revision tags: llvmorg-15.0.5 |
|
#
304f1d59 |
| 02-Nov-2022 |
Nikita Popov <npopov@redhat.com> |
[IR] Switch everything to use memory attribute
This switches everything to use the memory attribute proposed in https://discourse.llvm.org/t/rfc-unify-memory-effect-attributes/65579. The old argmemo
[IR] Switch everything to use memory attribute
This switches everything to use the memory attribute proposed in https://discourse.llvm.org/t/rfc-unify-memory-effect-attributes/65579. The old argmemonly, inaccessiblememonly and inaccessiblemem_or_argmemonly attributes are dropped. The readnone, readonly and writeonly attributes are restricted to parameters only.
The old attributes are auto-upgraded both in bitcode and IR. The bitcode upgrade is a policy requirement that has to be retained indefinitely. The IR upgrade is mainly there so it's not necessary to update all tests using memory attributes in this patch, which is already large enough. We could drop that part after migrating tests, or retain it longer term, to make it easier to import IR from older LLVM versions.
High-level Function/CallBase APIs like doesNotAccessMemory() or setDoesNotAccessMemory() are mapped transparently to the memory attribute. Code that directly manipulates attributes (e.g. via AttributeList) on the other hand needs to switch to working with the memory attribute instead.
Differential Revision: https://reviews.llvm.org/D135780
show more ...
|
Revision tags: llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
#
6b1bc801 |
| 21-Aug-2022 |
Kazu Hirata <kazu@google.com> |
[Scalar] Qualify auto in range-based for loops (NFC)
Identified with readability-qualified-auto.
|
Revision tags: llvmorg-15.0.0-rc2 |
|
#
451497a0 |
| 04-Aug-2022 |
Danila Malyutin <dmalyutin@azul.com> |
[RS4GC] Handle vectors of pointers in non-live clobbering
Fix crash when trying to unconditionally cast alloca type to PointerType
Differential Revision: https://reviews.llvm.org/D131146
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
a40af858 |
| 22-Jul-2022 |
Max Kazantsev <mkazantsev@azul.com> |
[RS4GC] Handle special cases in unreachable code for memcpy/memmov
The existing code doesn't expect dummy values (undef, poison, null-derived constants etc) as arguments of these intrinsics. However
[RS4GC] Handle special cases in unreachable code for memcpy/memmov
The existing code doesn't expect dummy values (undef, poison, null-derived constants etc) as arguments of these intrinsics. However, they can be there in unreached code. Currently we fail trying to find base for them.
Handle these cases separately. Return null as base for them to be consistent with the handling in the main algorithm in findBaseDefiningValue.
Differential Revision: https://reviews.llvm.org/D129561 Reviewed By: apilipenko
show more ...
|
Revision tags: llvmorg-14.0.6 |
|
#
5e1ccdf9 |
| 21-Jun-2022 |
Serguei Katkov <serguei.katkov@azul.com> |
[RS4GC] Handle freeze case for vector
Finding BDV for vector value does not handle freeze instruction. Adding its handling as it is done for scalar case.
Reviewed By: apilipenko Subscribers: llvm-c
[RS4GC] Handle freeze case for vector
Finding BDV for vector value does not handle freeze instruction. Adding its handling as it is done for scalar case.
Reviewed By: apilipenko Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D128254
show more ...
|
#
7a47ee51 |
| 21-Jun-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Don't use Optional::getValue (NFC)
|
#
e0e687a6 |
| 20-Jun-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Don't use Optional::hasValue (NFC)
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4 |
|
#
60e5fd00 |
| 14-May-2022 |
Fangrui Song <i@maskray.me> |
[RS4GC] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off build after D125000
|