|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6 |
|
| #
0d501f38 |
| 05-May-2024 |
Fangrui Song <i@maskray.me> |
[test] %clang_cc1 -emit-llvm: remove redundant -S
Also replace aarch64-none-linux-gnu (none can indicate an OS as well) with aarch64
|
|
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, 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, working, 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, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
7de71613 |
| 09-Feb-2022 |
Aaron Ballman <aaron@aaronballman.com> |
Use functions with prototypes when appropriate; NFC
A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a protot
Use functions with prototypes when appropriate; NFC
A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a prototype for the situations where the test is not specific to K&R C declarations. e.g.,
void func();
becomes
void func(void);
This is the sixth batch of tests being updated (there are a significant number of other tests left to be updated).
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, 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, 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, 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 |
|
| #
0386f3d4 |
| 08-Jan-2021 |
Matthew Voss <matthew.voss@sony.com> |
[NFC] Specify C11 in loop-opt-setup.c
This test was failing in our internal CI, since our driver does not default to C11. Adding this switch fixes the issue.
Differential Revision: https://reviews.
[NFC] Specify C11 in loop-opt-setup.c
This test was failing in our internal CI, since our driver does not default to C11. Adding this switch fixes the issue.
Differential Revision: https://reviews.llvm.org/D94327
show more ...
|
| #
f88a7975 |
| 23-Dec-2020 |
Atmn Patel <a335pate@uwaterloo.ca> |
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops with non-constant conditionals that do not have any observable side-effects (as defined by 6.8.5p6) can be assumed by the implementation to terminate, and in the case of C++, this assumption extends to all functions. The clang frontend will emit the `mustprogress` function attribute for C++ functions (D86233, D85393, D86841) and emit the loop metadata `llvm.loop.mustprogress` for every loop in C11 or later that has a non-constant conditional.
This patch modifies LoopDeletion so that only loops with the `llvm.loop.mustprogress` metadata or loops contained in functions that are required to make progress (`mustprogress` or `willreturn`) are checked for observable side-effects. If these loops do not have an observable side-effect, then we delete them.
Loops without observable side-effects that do not satisfy the above conditions will not be deleted.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D86844
show more ...
|
| #
1a65b8c7 |
| 31-Dec-2020 |
Atmn <atmndp@gmail.com> |
[Clang][Misc] Change run line in fragile test
This test has %clang in the run line when it should have %clang_cc1. This should prevent future release test failures.
Differential Revision: https://r
[Clang][Misc] Change run line in fragile test
This test has %clang in the run line when it should have %clang_cc1. This should prevent future release test failures.
Differential Revision: https://reviews.llvm.org/D93952
show more ...
|
| #
8bee4d4e |
| 31-Dec-2020 |
Bogdan Graur <bgraur@google.com> |
Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops"
Test clang/test/Misc/loop-opt-setup.c fails when executed in Release.
This reverts commit 6f1503d59854b331f1f970d
Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops"
Test clang/test/Misc/loop-opt-setup.c fails when executed in Release.
This reverts commit 6f1503d59854b331f1f970d39839619b0a26bbc7.
Reviewed By: SureYeaah
Differential Revision: https://reviews.llvm.org/D93956
show more ...
|
| #
6f1503d5 |
| 23-Dec-2020 |
Atmn Patel <a335pate@uwaterloo.ca> |
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops with non-constant conditionals that do not have any observable side-effects (as defined by 6.8.5p6) can be assumed by the implementation to terminate, and in the case of C++, this assumption extends to all functions. The clang frontend will emit the `mustprogress` function attribute for C++ functions (D86233, D85393, D86841) and emit the loop metadata `llvm.loop.mustprogress` for every loop in C11 or later that has a non-constant conditional.
This patch modifies LoopDeletion so that only loops with the `llvm.loop.mustprogress` metadata or loops contained in functions that are required to make progress (`mustprogress` or `willreturn`) are checked for observable side-effects. If these loops do not have an observable side-effect, then we delete them.
Loops without observable side-effects that do not satisfy the above conditions will not be deleted.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D86844
show more ...
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
d2da05de |
| 07-Nov-2020 |
Fangrui Song <i@maskray.me> |
[test] Fix Other/new-pass-manager.ll & clang/test/Misc/loop-opt-setup.c
|
| #
569abb53 |
| 07-Nov-2020 |
Atmn Patel <a335pate@uwaterloo.ca> |
[LoopDeletion] Fixes failing test
The commit 0b17c6e4479d62bd4ff05c48d6cdf340b198832f occasionally causes this test to fail, this fixes it.
|
| #
0b17c6e4 |
| 25-Oct-2020 |
Atmn Patel <a335pate@uwaterloo.ca> |
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops
[LoopDeletion] Allows deletion of possibly infinite side-effect free loops
From C11 and C++11 onwards, a forward-progress requirement has been introduced for both languages. In the case of C, loops with non-constant conditionals that do not have any observable side-effects (as defined by 6.8.5p6) can be assumed by the implementation to terminate, and in the case of C++, this assumption extends to all functions. The clang frontend will emit the `mustprogress` function attribute for C++ functions (D86233, D85393, D86841) and emit the loop metadata `llvm.loop.mustprogress` for every loop in C11 or later that has a non-constant conditional.
This patch modifies LoopDeletion so that only loops with the `llvm.loop.mustprogress` metadata or loops contained in functions that are required to make progress (`mustprogress` or `willreturn`) are checked for observable side-effects. If these loops do not have an observable side-effect, then we delete them.
Loops without observable side-effects that do not satisfy the above conditions will not be deleted.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D86844
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6 |
|
| #
03bd5198 |
| 04-Oct-2020 |
Roman Lebedev <lebedev.ri@gmail.com> |
[OldPM] Pass manager: run SROA after (simple) loop unrolling
I have stumbled into this pretty accidentally, when rewriting some spaghetti-like code into something more structured, which involved usi
[OldPM] Pass manager: run SROA after (simple) loop unrolling
I have stumbled into this pretty accidentally, when rewriting some spaghetti-like code into something more structured, which involved using some `std::array<>`s. And to my surprise, the `alloca`s remained, causing about `+160%` perf regression.
https://llvm-compile-time-tracker.com/compare.php?from=bb6f4d32aac3eecb51909f4facc625219307ee68&to=d563e66f40f9d4d145cb2050e41cb961e2b37785&stat=instructions suggests that this has geomean compile-time cost of `+0.08%`.
Note that D68593 / cecc0d27ad58c0aed8ef9ed99bbf691e137a0f26 already did this chage for NewPM, but left OldPM in a pessimized state.
This fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40011 | PR40011 ]], [[ https://bugs.llvm.org/show_bug.cgi?id=42794 | PR42794 ]] and probably some other reports.
Reviewed By: nikic, xbolva00
Differential Revision: https://reviews.llvm.org/D87972
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, 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 |
|
| #
c554c5e1 |
| 04-May-2020 |
Eric Christopher <echristo@gmail.com> |
Fix full unrolling with new pass manager.
Last we looked at this and couldn't come up with a reason to change it, but with a pragma for full loop unrolling we bypass every other loop unroll and then
Fix full unrolling with new pass manager.
Last we looked at this and couldn't come up with a reason to change it, but with a pragma for full loop unrolling we bypass every other loop unroll and then fail to fully unroll a loop when the pragma is set.
Move the OnlyWhenForced out of the check and into the initialization of the full unroll pass in the new pass manager. This doesn't show up with the old pass manager.
Add a new option to opt so that we can turn off loop unrolling manually since this is a difference between clang and opt.
Tested with check-clang and check-llvm.
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
| #
d93d001c |
| 14-Oct-2019 |
Eric Christopher <echristo@gmail.com> |
Add -fno-experimental-pass-manager to make clear which pass manager we're running and to make flipping the default not regress testing.
llvm-svn: 374840
|
| #
c3649a08 |
| 14-Oct-2019 |
Eric Christopher <echristo@gmail.com> |
In the new pass manager use PTO.LoopUnrolling to determine when and how we will unroll loops. Also comment a few occasions where we need to know whether or not we're forcing the unwinder or not.
The
In the new pass manager use PTO.LoopUnrolling to determine when and how we will unroll loops. Also comment a few occasions where we need to know whether or not we're forcing the unwinder or not.
The default before and after this patch is for LoopUnroll to be enabled, and for it to use a cost model to determine whether to unroll the loop (`OnlyWhenForced = false`). Before this patch, disabling loop unroll would not run the LoopUnroll pass. After this patch, the LoopUnroll pass is being run, but it restricts unrolling to only the loops marked by a pragma (`OnlyWhenForced = true`).
In addition, this patch disables the UnrollAndJam pass when disabling unrolling.
Testcase is in clang because it's controlling how the loop optimizer is being set up and there's no other way to trigger the behavior.
llvm-svn: 374838
show more ...
|