diff options
| author | Dimitar Dimitrov <dimitar@dinux.eu> | 2025-12-05 21:57:58 -0700 |
|---|---|---|
| committer | Jeff Law <jlaw@ventanamicro.com> | 2025-12-05 21:57:58 -0700 |
| commit | 528df313f6d941cde12c12bdeb20d6d24e05ba4b (patch) | |
| tree | cb061b7b919b236500f218ea09f9f37234d08df0 /gcc/fortran/expr.cc | |
| parent | 83aab2f73661ac8aa1643d58d2fbfed87d5c1601 (diff) | |
| download | gcc-528df313f6d941cde12c12bdeb20d6d24e05ba4b.zip gcc-528df313f6d941cde12c12bdeb20d6d24e05ba4b.tar.gz gcc-528df313f6d941cde12c12bdeb20d6d24e05ba4b.tar.bz2 | |
[PATCH v3] rtl-optimization: Fix BB edge ordering [PR122675]
Starting with r16-4438-ga93f80feeef744, the edge sorting order was
switched to lowest execution frequency first. But the "bbro"
optimization pass chooses the first edge as a fallthrough. Thus the
most unlikely branches were optimized to fallthroughs.
Fix by restoring the sorting order prior to r16-4438-ga93f80feeef744.
Now the branches most likely to be executed are picked as fallthroughs.
There are no regressions for C and C++ on x86_64-pc-linux-gnu.
The new tests fail for the respective targets without this patch, and
pass with it.
PR rtl-optimization/122675
gcc/ChangeLog:
* bb-reorder.cc (edge_order): Fix BB edge ordering to be
descending.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/pr122675-1.c: New test.
* gcc.target/i386/pr122675-1.c: New test.
* gcc.target/riscv/pr122675-1.c: New test.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Diffstat (limited to 'gcc/fortran/expr.cc')
0 files changed, 0 insertions, 0 deletions
