Commit 4cfe24a
committed
Optimize integer pow by removing exit branch
The branch at the end of the `pow` implementations is redundant
with multiplication code already present in the loop. By rotating
the exit check, this branch can be largely removed, improving code size
and instruction cache coherence.1 parent a18fbd0 commit 4cfe24a
2 files changed
+52
-73
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1495 | 1495 | | |
1496 | 1496 | | |
1497 | 1497 | | |
1498 | | - | |
| 1498 | + | |
1499 | 1499 | | |
1500 | 1500 | | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
1501 | 1505 | | |
1502 | 1506 | | |
1503 | 1507 | | |
1504 | 1508 | | |
1505 | | - | |
1506 | | - | |
1507 | | - | |
1508 | | - | |
1509 | | - | |
1510 | 1509 | | |
1511 | 1510 | | |
1512 | 1511 | | |
| |||
1546 | 1545 | | |
1547 | 1546 | | |
1548 | 1547 | | |
1549 | | - | |
| 1548 | + | |
1550 | 1549 | | |
1551 | 1550 | | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
1552 | 1555 | | |
1553 | 1556 | | |
1554 | 1557 | | |
1555 | 1558 | | |
1556 | | - | |
1557 | | - | |
1558 | | - | |
1559 | | - | |
1560 | | - | |
1561 | 1559 | | |
1562 | 1560 | | |
1563 | 1561 | | |
| |||
2181 | 2179 | | |
2182 | 2180 | | |
2183 | 2181 | | |
2184 | | - | |
| 2182 | + | |
2185 | 2183 | | |
2186 | 2184 | | |
| 2185 | + | |
| 2186 | + | |
| 2187 | + | |
| 2188 | + | |
2187 | 2189 | | |
2188 | 2190 | | |
2189 | 2191 | | |
2190 | 2192 | | |
2191 | | - | |
2192 | | - | |
2193 | | - | |
2194 | | - | |
2195 | | - | |
2196 | | - | |
2197 | 2193 | | |
2198 | 2194 | | |
2199 | 2195 | | |
| |||
2687 | 2683 | | |
2688 | 2684 | | |
2689 | 2685 | | |
2690 | | - | |
| 2686 | + | |
2691 | 2687 | | |
2692 | 2688 | | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
2693 | 2694 | | |
2694 | 2695 | | |
2695 | 2696 | | |
| |||
2698 | 2699 | | |
2699 | 2700 | | |
2700 | 2701 | | |
2701 | | - | |
2702 | | - | |
2703 | | - | |
2704 | | - | |
2705 | | - | |
2706 | | - | |
2707 | | - | |
2708 | | - | |
2709 | 2702 | | |
2710 | 2703 | | |
2711 | 2704 | | |
| |||
2732 | 2725 | | |
2733 | 2726 | | |
2734 | 2727 | | |
2735 | | - | |
| 2728 | + | |
2736 | 2729 | | |
2737 | 2730 | | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
2738 | 2735 | | |
2739 | 2736 | | |
2740 | 2737 | | |
2741 | 2738 | | |
2742 | | - | |
2743 | | - | |
2744 | | - | |
2745 | | - | |
2746 | | - | |
2747 | | - | |
2748 | 2739 | | |
2749 | 2740 | | |
2750 | 2741 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1534 | 1534 | | |
1535 | 1535 | | |
1536 | 1536 | | |
1537 | | - | |
| 1537 | + | |
1538 | 1538 | | |
1539 | 1539 | | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
1540 | 1544 | | |
1541 | 1545 | | |
1542 | 1546 | | |
1543 | 1547 | | |
1544 | | - | |
1545 | | - | |
1546 | | - | |
1547 | | - | |
1548 | | - | |
1549 | | - | |
1550 | | - | |
1551 | 1548 | | |
1552 | 1549 | | |
1553 | 1550 | | |
| |||
1587 | 1584 | | |
1588 | 1585 | | |
1589 | 1586 | | |
1590 | | - | |
| 1587 | + | |
1591 | 1588 | | |
1592 | 1589 | | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
1593 | 1594 | | |
1594 | 1595 | | |
1595 | 1596 | | |
1596 | 1597 | | |
1597 | | - | |
1598 | | - | |
1599 | | - | |
1600 | | - | |
1601 | | - | |
1602 | 1598 | | |
1603 | 1599 | | |
1604 | 1600 | | |
| |||
2059 | 2055 | | |
2060 | 2056 | | |
2061 | 2057 | | |
2062 | | - | |
| 2058 | + | |
2063 | 2059 | | |
2064 | 2060 | | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
2065 | 2065 | | |
2066 | 2066 | | |
2067 | 2067 | | |
2068 | 2068 | | |
2069 | | - | |
2070 | | - | |
2071 | | - | |
2072 | | - | |
2073 | | - | |
2074 | | - | |
2075 | 2069 | | |
2076 | 2070 | | |
2077 | 2071 | | |
| |||
2516 | 2510 | | |
2517 | 2511 | | |
2518 | 2512 | | |
2519 | | - | |
| 2513 | + | |
2520 | 2514 | | |
2521 | 2515 | | |
| 2516 | + | |
| 2517 | + | |
| 2518 | + | |
| 2519 | + | |
| 2520 | + | |
2522 | 2521 | | |
2523 | 2522 | | |
2524 | 2523 | | |
| |||
2527 | 2526 | | |
2528 | 2527 | | |
2529 | 2528 | | |
2530 | | - | |
2531 | | - | |
2532 | | - | |
2533 | | - | |
2534 | | - | |
2535 | | - | |
2536 | | - | |
2537 | | - | |
2538 | | - | |
2539 | 2529 | | |
2540 | 2530 | | |
2541 | 2531 | | |
| |||
2560 | 2550 | | |
2561 | 2551 | | |
2562 | 2552 | | |
2563 | | - | |
| 2553 | + | |
2564 | 2554 | | |
2565 | 2555 | | |
| 2556 | + | |
| 2557 | + | |
| 2558 | + | |
| 2559 | + | |
2566 | 2560 | | |
2567 | 2561 | | |
2568 | 2562 | | |
2569 | 2563 | | |
2570 | | - | |
2571 | | - | |
2572 | | - | |
2573 | | - | |
2574 | | - | |
2575 | | - | |
2576 | 2564 | | |
2577 | 2565 | | |
2578 | 2566 | | |
| |||
0 commit comments