|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
a40af858 |
| 22-Jul-2022 |
Max Kazantsev <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[llvm] Don't use Optional::getValue (NFC)
|
| #
e0e687a6 |
| 20-Jun-2022 |
Kazu Hirata <[email protected]> |
[llvm] Don't use Optional::hasValue (NFC)
|
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
60e5fd00 |
| 14-May-2022 |
Fangrui Song <[email protected]> |
[RS4GC] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off build after D125000
|
| #
1da42c9f |
| 12-May-2022 |
Dmitry Makogon <[email protected]> |
[RS4GC] Cache BDVs and bases alogn with IsKnownBase flag (NFC)
This refactors RS4GC to cache results returned findBaseDefiningValue and also gets rid of BaseDefiningValueResult by caching the IsKnow
[RS4GC] Cache BDVs and bases alogn with IsKnownBase flag (NFC)
This refactors RS4GC to cache results returned findBaseDefiningValue and also gets rid of BaseDefiningValueResult by caching the IsKnownBase flag for BDVs and bases.
Differential Revision: https://reviews.llvm.org/D125000
show more ...
|
| #
5a08e817 |
| 06-May-2022 |
Max Kazantsev <[email protected]> |
[RS4GC] Add support for 'freeze' instruction to findBaseDefiningValue
Because this instruction is a noop, we can simply go through it in search of the base.
|
| #
e6a7afae |
| 06-May-2022 |
Max Kazantsev <[email protected]> |
[NFC] Fix typo in assert message
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
d03d2d8a |
| 15-Apr-2022 |
Dmitry Makogon <[email protected]> |
[RS4GC] Prune inputs of BDV if they are BDV themselves
Don't check whether an input of BDV can be pruned if the input is the BDV itself. BDV is present in the states map, so in case the input is the
[RS4GC] Prune inputs of BDV if they are BDV themselves
Don't check whether an input of BDV can be pruned if the input is the BDV itself. BDV is present in the states map, so in case the input is the BDV itself, we'd return false. So explicitly check this case.
Differential Revision: https://reviews.llvm.org/D123846
show more ...
|
|
Revision tags: llvmorg-14.0.1 |
|
| #
46776f75 |
| 05-Apr-2022 |
Martin Storsjö <[email protected]> |
Fix warnings about variables that are set but only used in debug mode
Add void casts to mark the variables used, next to the places where they are used in assert or `LLVM_DEBUG()` expressions.
Diff
Fix warnings about variables that are set but only used in debug mode
Add void casts to mark the variables used, next to the places where they are used in assert or `LLVM_DEBUG()` expressions.
Differential Revision: https://reviews.llvm.org/D123117
show more ...
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
7c3e2b92 |
| 16-Feb-2022 |
Daniil Suchkov <[email protected]> |
[RewriteStatepointsForGC] Fix an incorrect assertion
The assertion verifying that a newly computed value matches what is already cached used stripPointerCasts() to strip bitcasts, however the values
[RewriteStatepointsForGC] Fix an incorrect assertion
The assertion verifying that a newly computed value matches what is already cached used stripPointerCasts() to strip bitcasts, however the values can be not only pointers, but also vectors of pointers. That is problematic because stripPointerCasts() doesn't handle vectors of pointers. This patch introduces an ad-hoc utility function to strip all bitcasts regardless of the value type.
Reviewed By: skatkov, reames
Differential Revision: https://reviews.llvm.org/D119994
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1 |
|
| #
c680eeab |
| 03-Feb-2022 |
Nikita Popov <[email protected]> |
[IRBuilder][RS4GC] Require FunctionCallee when creating statepoint
This makes the statepoint methods in IRBuilder accept a FunctionCallee, which carries both the callee and function type. This is us
[IRBuilder][RS4GC] Require FunctionCallee when creating statepoint
This makes the statepoint methods in IRBuilder accept a FunctionCallee, which carries both the callee and function type. This is used to add the elementtype attribute to the statepoint call.
RS4GC requires an additional tweak to actually preserve that attribute -- previously the attributes on the call were completely overwritten.
Differential Revision: https://reviews.llvm.org/D118886
show more ...
|
|
Revision tags: llvmorg-15-init |
|
| #
66f1c6fc |
| 27-Jan-2022 |
Serguei Katkov <[email protected]> |
[RS4GC] Extract rematerilazable candidate search. NFC.
Finding re-materialization chain for derived pointer does not depend on call site. To avoid this finding for each call site it can be extracted
[RS4GC] Extract rematerilazable candidate search. NFC.
Finding re-materialization chain for derived pointer does not depend on call site. To avoid this finding for each call site it can be extracted in a separate routine.
Reviewers: reames, dantrushin Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D118676
show more ...
|
| #
28c5e1b7 |
| 27-Jan-2022 |
Serguei Katkov <[email protected]> |
[RS4GC] Make PointerToBase mapping be independent on call site. NFC.
PointerToBase is a mapping between potentially derived pointer to its base. As soon as we are in SSA form if there is a base of d
[RS4GC] Make PointerToBase mapping be independent on call site. NFC.
PointerToBase is a mapping between potentially derived pointer to its base. As soon as we are in SSA form if there is a base of derived pointer and it is available at def of derived pointer, the same base will be available at any point where derived pointer is alive.
So the mapping of derived pointer to base pointer is not a property of a call site but the same on function level.
Reviewers: reames, yrouban Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D118604
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
d2cc6c2d |
| 03-Jan-2022 |
Serge Guelton <[email protected]> |
Use a sorted array instead of a map to store AttrBuilder string attributes
Using and std::map<SmallString, SmallString> for target dependent attributes is inefficient: it makes its constructor sligh
Use a sorted array instead of a map to store AttrBuilder string attributes
Using and std::map<SmallString, SmallString> for target dependent attributes is inefficient: it makes its constructor slightly heavier, and involves extra allocation for each new string attribute. Storing the attribute key/value as strings implies extra allocation/copy step.
Use a sorted vector instead. Given the low number of attributes generally involved, this is cheaper, as showcased by
https://llvm-compile-time-tracker.com/compare.php?from=5de322295f4ade692dc4f1823ae4450ad3c48af2&to=05bc480bf641a9e3b466619af43a2d123ee3f71d&stat=instructions
Differential Revision: https://reviews.llvm.org/D116599
show more ...
|
| #
9290ccc3 |
| 04-Jan-2022 |
serge-sans-paille <[email protected]> |
Introduce the AttributeMask class
This class is solely used as a lightweight and clean way to build a set of attributes to be removed from an AttrBuilder. Previously AttrBuilder was used both for bu
Introduce the AttributeMask class
This class is solely used as a lightweight and clean way to build a set of attributes to be removed from an AttrBuilder. Previously AttrBuilder was used both for building and removing, which introduced odd situation like creation of Attribute with dummy value because the only relevant part was the attribute kind.
Differential Revision: https://reviews.llvm.org/D116110
show more ...
|
| #
9f24f010 |
| 22-Dec-2021 |
Nikita Popov <[email protected]> |
[RS4GC] Clean up attribute removal (NFC)
It is not necessary to explicitly check which attributes are present, and only add those to the builder. We can simply list all attributes that need to be st
[RS4GC] Clean up attribute removal (NFC)
It is not necessary to explicitly check which attributes are present, and only add those to the builder. We can simply list all attributes that need to be stripped and remove them unconditionally. This also allows us to use some nicer APIs that don't require mucking about with attribute list indices.
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
9769e97c |
| 25-Oct-2021 |
Zarko Todorovski <[email protected]> |
[LLVM] Inclusive terms: remove/replace references to sanity in RewriteStatepointsForGC.cpp and test
Part of work to have the LLVM backend to use more inclusive terms.
Reviewed By: reames
Different
[LLVM] Inclusive terms: remove/replace references to sanity in RewriteStatepointsForGC.cpp and test
Part of work to have the LLVM backend to use more inclusive terms.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D112461
show more ...
|
| #
943b3048 |
| 09-Oct-2021 |
Dávid Bolvanský <[email protected]> |
Fixed some errors detected by PVS Studio
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
f5d23d36 |
| 21-Sep-2021 |
Simon Pilgrim <[email protected]> |
RewriteStatepointsForGC - Use const-ref iterator in for-range loops. NFCI.
Avoid unnecessary copies, reported by MSVC static analyzer.
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
52e6d70c |
| 20-Aug-2021 |
Arthur Eubanks <[email protected]> |
[NFC] Use newly introduced *AtIndex methods
Introduced in D108788. These are clearer.
|
| #
44a3241f |
| 19-Aug-2021 |
Arthur Eubanks <[email protected]> |
[NFC] Replace some attribute methods that use confusing indexes
|
| #
f80ae580 |
| 13-Aug-2021 |
Arthur Eubanks <[email protected]> |
[NFC] Cleanup calls to AttributeList::getAttribute(FunctionIndex)
getAttribute() is confusing, use a clearer method.
|
| #
d7593eba |
| 13-Aug-2021 |
Arthur Eubanks <[email protected]> |
[NFC] Clean up users of AttributeList::hasAttribute()
AttributeList::hasAttribute() is confusing, use clearer methods like hasParamAttr()/hasRetAttr().
Add hasRetAttr() since it was missing from At
[NFC] Clean up users of AttributeList::hasAttribute()
AttributeList::hasAttribute() is confusing, use clearer methods like hasParamAttr()/hasRetAttr().
Add hasRetAttr() since it was missing from AttributeList.
show more ...
|
| #
80ea2bb5 |
| 13-Aug-2021 |
Arthur Eubanks <[email protected]> |
[NFC] Rename AttributeList::getParam/Ret/FnAttributes() -> get*Attributes()
This is more consistent with similar methods.
|