|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6 |
|
| #
cd3a4c31 |
| 03-May-2024 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor][NFC] update tests (#91011)
|
|
Revision tags: 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 |
|
| #
e31724f1 |
| 25-Jul-2023 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Check readonly call sites for nosync in AANoSync
See @nosync_convergent_callee_test() in nosync.ll. The other changes are call sites now annotated with `nosync`.
|
|
Revision tags: llvmorg-18-init |
|
| #
369930bc |
| 03-Jul-2023 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Manifest attributes implied by the IR
If an attribute is implied by the IR we do not (always) create an AA anymore. To keep test coverage, and given the lack of a good heuristic to deci
[Attributor] Manifest attributes implied by the IR
If an attribute is implied by the IR we do not (always) create an AA anymore. To keep test coverage, and given the lack of a good heuristic to decide otherwise, we will now also manifest such attributes.
show more ...
|
| #
badafc53 |
| 20-Jun-2023 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Check IR attributes before creating new AAs
Instead of creating an AA for an IR attribute we can first check if it is implied/known. If so, we can save the time to create the AA, figure
[Attributor] Check IR attributes before creating new AAs
Instead of creating an AA for an IR attribute we can first check if it is implied/known. If so, we can save the time to create the AA, figure out it is implied, fix it, and later manifest it in the IR (redundantly). Other IR attributes can be added to the list in `AA::hasAssumedIRAttr` later on, for now we support 8 different ones.
show more ...
|
| #
23dafbb1 |
| 19-Jun-2023 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Remove the iteration count verification
It was never really useful to track #iterations, though it helped during the initial development. What we should track, in a follow up, are poten
[Attributor] Remove the iteration count verification
It was never really useful to track #iterations, though it helped during the initial development. What we should track, in a follow up, are potentially #updates. That is also what we should restrict instead of the #iterations.
show more ...
|
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4 |
|
| #
dbbe9b37 |
| 15-May-2023 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Create `AAMustProgress` for the `mustprogress` attribute
Derive the mustprogress attribute based on the willreturn attribute or the fact that all callers are mustprogress.
Differential
[Attributor] Create `AAMustProgress` for the `mustprogress` attribute
Derive the mustprogress attribute based on the willreturn attribute or the fact that all callers are mustprogress.
Differential Revision: https://reviews.llvm.org/D94740
show more ...
|
|
Revision tags: 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 |
|
| #
23333bb6 |
| 13-Dec-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
[NFC] Rerun update test checks on Attributor and OpenMP-Opt tests
|
|
Revision tags: llvmorg-15.0.6, 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 |
|
| #
846709b2 |
| 23-Sep-2022 |
Nikita Popov <npopov@redhat.com> |
[Attribute] Clean up test prefixes (NFC)
Now that the legacy PM is no longer tested, the huge matrix of test prefixes used by attributor tests is no longer needed and very confusing for the casual r
[Attribute] Clean up test prefixes (NFC)
Now that the legacy PM is no longer tested, the huge matrix of test prefixes used by attributor tests is no longer needed and very confusing for the casual reader. Reduce the prefixes down to just CHECK, TUNIT and CGSCC.
show more ...
|
|
Revision tags: llvmorg-15.0.1 |
|
| #
99c9b37d |
| 19-Sep-2022 |
Sebastian Peryt <sebastian.peryt@intel.com> |
[NFC][1/n] Remove -enable-new-pm=0 flags from lit tests
This is the first patch in a series intended for removing flag -enable-new-pm=0 from lit tests. This is part of a bigger effort of completely
[NFC][1/n] Remove -enable-new-pm=0 flags from lit tests
This is the first patch in a series intended for removing flag -enable-new-pm=0 from lit tests. This is part of a bigger effort of completely removing legacy code related to legacy pass manager in favor of currently default new pass manager.
In this patch flag has been removed only from tests where no significant change has been required because checks has been duplicated for both PMs.
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D134150
show more ...
|
|
Revision tags: llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
e87f10a7 |
| 12-Apr-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] CGSCC pass should not recompute results outside the SCC (reapply)
When we run the CGSCC pass we should only invest time on the SCC. We can initialize AAs with information from the modul
[Attributor] CGSCC pass should not recompute results outside the SCC (reapply)
When we run the CGSCC pass we should only invest time on the SCC. We can initialize AAs with information from the module slice but we should not update those AAs. We make an exception for are call site of the SCC as they are helpful providing information for the SCC.
Minor modifications to pointer privatization allow us to perform it even in the CGSCC pass, similar to ArgumentPromotion.
show more ...
|
| #
39a68cc0 |
| 15-Apr-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
Revert "[Attributor] CGSCC pass should not recompute results outside the SCC"
This reverts commit 0d7f81e31315f8cda56ce6fde5ff5145e0325c51, it caused the AMDGPU tests that use the Attributor to fail.
|
| #
0d7f81e3 |
| 12-Apr-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] CGSCC pass should not recompute results outside the SCC
When we run the CGSCC pass we should only invest time on the SCC. We can initialize AAs with information from the module slice bu
[Attributor] CGSCC pass should not recompute results outside the SCC
When we run the CGSCC pass we should only invest time on the SCC. We can initialize AAs with information from the module slice but we should not update those AAs.
show more ...
|
|
Revision tags: llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
f3ad8cf0 |
| 10-Mar-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Cleanup manifest and liveness for CGSCC passes
There was some ad-hoc handling of liveness and manifest to avoid breaking CGSCC guarantees. Things always slipped through though. This cle
[Attributor] Cleanup manifest and liveness for CGSCC passes
There was some ad-hoc handling of liveness and manifest to avoid breaking CGSCC guarantees. Things always slipped through though. This cleanup will:
1) Prevent us from manifesting any "information" outside the CGSCC. This might be too conservative but we need to opt-in to annotation not try to avoid some problematic ones. 2) Avoid running any liveness analysis outside the CGSCC. We did have some AAIsDeadFunction handling to this end but we need this for all AAIsDead classes. The reason is that AAIsDead information is only correct if we actually manifest it, since we don't (see point 1) we cannot actually derive/use it at all. We are currently trying to avoid running any AA updates outside the CGSCC but that seems to impact things quite a bit. 3) Assert, don't check, that our modifications (during cleanup) modifies only CGSCC functions.
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
b51b83f6 |
| 31-Jan-2022 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Introduce the concept of query AAs
D106720 introduced features that did not work properly as we could add new queries after a fixpoint was reached and which could not be answered by the
[Attributor] Introduce the concept of query AAs
D106720 introduced features that did not work properly as we could add new queries after a fixpoint was reached and which could not be answered by the information gathered up to the fixpoint alone.
As an alternative to D110078, which forced eager computation where we want to continue to be lazy, this patch fixes the problem.
QueryAAs are AAs that allow lazy queries during their lifetime. They are never fixed if they have no outstanding dependences and always run as part of the updates in an iteration. To determine if we are done, all query AAs are asked if they received new queries, if not, we only need to consider updated AAs, as before. If new queries are present we go for another iteration.
Differential Revision: https://reviews.llvm.org/D118669
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
ac3ec22d |
| 20-Sep-2021 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Use AAFunctionReachability to determine AANoRecurse
We missed out on AANoRecurse in the module pass because we had no call graph. With AAFunctionReachability we can simply ask if the fu
[Attributor] Use AAFunctionReachability to determine AANoRecurse
We missed out on AANoRecurse in the module pass because we had no call graph. With AAFunctionReachability we can simply ask if the function may reach itself.
Differential Revision: https://reviews.llvm.org/D110099
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
9c2074dc |
| 12-Mar-2021 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor][NFC] Update tests after D94741
The update_test_checks script can now check for global symbols and is able to handle them properly when they differ across prefixes, e.g., attribute #0 mi
[Attributor][NFC] Update tests after D94741
The update_test_checks script can now check for global symbols and is able to handle them properly when they differ across prefixes, e.g., attribute #0 might be different in different runs.
This patch simply updates all the Attributor tests with the new script.
Reviewed By: sstefan1
Differential Revision: https://reviews.llvm.org/D97906
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
8d8ce85b |
| 30-Aug-2020 |
sstefan1 <sstipanovic@s-energize.com> |
[Attributor] Introduce module slice.
Summary: The module slice describes which functions we can analyze and transform while working on an SCC as part of the Attributor-CGSCC pass. So far we simply r
[Attributor] Introduce module slice.
Summary: The module slice describes which functions we can analyze and transform while working on an SCC as part of the Attributor-CGSCC pass. So far we simply restricted it to the SCC.
Reviewers: jdoerfert
Differential Revision: https://reviews.llvm.org/D86319
show more ...
|
| #
6ce5b74b |
| 29-Aug-2020 |
sstefan1 <sstipanovic@s-energize.com> |
[Attributor][NFC] rerun update_test_checks without --scrub-attributes
|
|
Revision tags: llvmorg-11.0.0-rc2 |
|
| #
4a10029d |
| 29-Jul-2020 |
Arthur Eubanks <aeubanks@google.com> |
[NewPM][Attributor] Pin tests with -attributor to legacy PM
All these tests already explicitly test against both legacy PM and NPM.
$ sed -i 's/ -attributor / -attributor -enable-new-pm=0 /g' $(rg
[NewPM][Attributor] Pin tests with -attributor to legacy PM
All these tests already explicitly test against both legacy PM and NPM.
$ sed -i 's/ -attributor / -attributor -enable-new-pm=0 /g' $(rg --path-separator // -l -- -passes=) $ sed -i 's/ -attributor-cgscc / -attributor-cgscc -enable-new-pm=0 /g' $(rg --path-separator // -l -- -passes=)
Now all tests in Transforms/Attributor/ pass under NPM.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D84813
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc1 |
|
| #
e3d646c6 |
| 19-Jul-2020 |
sstefan1 <sstipanovic@s-energize.com> |
[Attributor][NFC] applying update_test_checks with --check-attributes
Summary: All tests are updated, except wrapper.ll since it is not working nicely with newly created functions.
Reviewers: jdoer
[Attributor][NFC] applying update_test_checks with --check-attributes
Summary: All tests are updated, except wrapper.ll since it is not working nicely with newly created functions.
Reviewers: jdoerfert, uenoku, baziotis, homerdin
Subscribers: arphaman, jfb, kuter, bbn, okura, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D84130
show more ...
|
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
| #
e2b53a4c |
| 18-Apr-2020 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor][NFC] Remove obsolete option from tests
Since D76871 it is sufficient to run `opt -atributor` or `-attributor-cgscc`.
|
| #
3ca54f45 |
| 09-Apr-2020 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Unify testing (=updates,prefixes,run configurations,...)
When the Attributor was created the test update scripts were not well suited to deal with the challenges of IR attribute checkin
[Attributor] Unify testing (=updates,prefixes,run configurations,...)
When the Attributor was created the test update scripts were not well suited to deal with the challenges of IR attribute checking. This partially improved.
Since then we also added three additional configurations that need testing; in total we now have the following four: { TUNIT, CGSCC } x { old pass manager (OPM), new pass manager (NPM) }
Finally, the number of developers and tests grew rapidly (partially due to the addition of ArgumentPromotion and IPConstantProp tests), which resulted in tests only being run in some configurations, different prefixes being used, and different "styles" of checks being used.
Due to the above reasons I believed we needed to take another look at the test update scripts. While we started to use them, via UTC_ARGS: --enable/disable, the other problems remained. To improve the testing situation for *all* configurations, to simplify future updates to the test, and to help identify subtle effects of future changes, we now use the test update scripts for (almost) all Attributor tests.
An exhaustive prefix list minimizes the number of check lines and makes it easy to identify and compare configurations.
Tests have been adjusted in the process but we tried to keep their intend unchanged.
Reviewed By: sstefan1
Differential Revision: https://reviews.llvm.org/D76588
show more ...
|
| #
0c22cb0f |
| 09-Apr-2020 |
Florian Hahn <flo@fhahn.com> |
Temporarily revert "[Attributor] Unify testing (=updates,...)"
This patch reverts the 2 patches below, as on most systems the disabled tests actually pass and that causes most bots to be red, includ
Temporarily revert "[Attributor] Unify testing (=updates,...)"
This patch reverts the 2 patches below, as on most systems the disabled tests actually pass and that causes most bots to be red, including http://green.lab.llvm.org/green/job/clang-stage1-RA/8541/ http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-expensive/15646/ http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/23690 http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/16751
* [Attributor] Disable three tests until the SCC update bug was fixed commit 2ae1a76c27295370d552f57352508b7af4dba791.
* [Attributor] Unify testing (=updates,prefixes,run configurations,...) 2bcf5793e14577ed3c9f15a77a35179ae544fff4.
show more ...
|
| #
2bcf5793 |
| 09-Apr-2020 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Attributor] Unify testing (=updates,prefixes,run configurations,...)
When the Attributor was created the test update scripts were not well suited to deal with the challenges of IR attribute checkin
[Attributor] Unify testing (=updates,prefixes,run configurations,...)
When the Attributor was created the test update scripts were not well suited to deal with the challenges of IR attribute checking. This partially improved.
Since then we also added three additional configurations that need testing; in total we now have the following four: { TUNIT, CGSCC } x { old pass manager (OPM), new pass manager (NPM) }
Finally, the number of developers and tests grew rapidly (partially due to the addition of ArgumentPromotion and IPConstantProp tests), which resulted in tests only being run in some configurations, different prefixes being used, and different "styles" of checks being used.
Due to the above reasons I believed we needed to take another look at the test update scripts. While we started to use them, via UTC_ARGS: --enable/disable, the other problems remained. To improve the testing situation for *all* configurations, to simplify future updates to the test, and to help identify subtle effects of future changes, we now use the test update scripts for (almost) all Attributor tests.
An exhaustive prefix list minimizes the number of check lines and makes it easy to identify and compare configurations.
Tests have been adjusted in the process but we tried to keep their intend unchanged.
Reviewed By: sstefan1
Differential Revision: https://reviews.llvm.org/D76588
show more ...
|