This repository was archived by the owner on May 28, 2025. It is now read-only.
Commit 76d2530
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 eb80be2 commit 76d2530
2 files changed
+52
-73
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1416 | 1416 | | |
1417 | 1417 | | |
1418 | 1418 | | |
1419 | | - | |
| 1419 | + | |
1420 | 1420 | | |
1421 | 1421 | | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
1422 | 1426 | | |
1423 | 1427 | | |
1424 | 1428 | | |
1425 | 1429 | | |
1426 | | - | |
1427 | | - | |
1428 | | - | |
1429 | | - | |
1430 | | - | |
1431 | 1430 | | |
1432 | 1431 | | |
1433 | 1432 | | |
| |||
1467 | 1466 | | |
1468 | 1467 | | |
1469 | 1468 | | |
1470 | | - | |
| 1469 | + | |
1471 | 1470 | | |
1472 | 1471 | | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
1473 | 1476 | | |
1474 | 1477 | | |
1475 | 1478 | | |
1476 | 1479 | | |
1477 | | - | |
1478 | | - | |
1479 | | - | |
1480 | | - | |
1481 | | - | |
1482 | 1480 | | |
1483 | 1481 | | |
1484 | 1482 | | |
| |||
2102 | 2100 | | |
2103 | 2101 | | |
2104 | 2102 | | |
2105 | | - | |
| 2103 | + | |
2106 | 2104 | | |
2107 | 2105 | | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
2108 | 2110 | | |
2109 | 2111 | | |
2110 | 2112 | | |
2111 | 2113 | | |
2112 | | - | |
2113 | | - | |
2114 | | - | |
2115 | | - | |
2116 | | - | |
2117 | | - | |
2118 | 2114 | | |
2119 | 2115 | | |
2120 | 2116 | | |
| |||
2608 | 2604 | | |
2609 | 2605 | | |
2610 | 2606 | | |
2611 | | - | |
| 2607 | + | |
2612 | 2608 | | |
2613 | 2609 | | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
2614 | 2615 | | |
2615 | 2616 | | |
2616 | 2617 | | |
| |||
2619 | 2620 | | |
2620 | 2621 | | |
2621 | 2622 | | |
2622 | | - | |
2623 | | - | |
2624 | | - | |
2625 | | - | |
2626 | | - | |
2627 | | - | |
2628 | | - | |
2629 | | - | |
2630 | 2623 | | |
2631 | 2624 | | |
2632 | 2625 | | |
| |||
2653 | 2646 | | |
2654 | 2647 | | |
2655 | 2648 | | |
2656 | | - | |
| 2649 | + | |
2657 | 2650 | | |
2658 | 2651 | | |
| 2652 | + | |
| 2653 | + | |
| 2654 | + | |
| 2655 | + | |
2659 | 2656 | | |
2660 | 2657 | | |
2661 | 2658 | | |
2662 | 2659 | | |
2663 | | - | |
2664 | | - | |
2665 | | - | |
2666 | | - | |
2667 | | - | |
2668 | | - | |
2669 | 2660 | | |
2670 | 2661 | | |
2671 | 2662 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1413 | 1413 | | |
1414 | 1414 | | |
1415 | 1415 | | |
1416 | | - | |
| 1416 | + | |
1417 | 1417 | | |
1418 | 1418 | | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
1419 | 1423 | | |
1420 | 1424 | | |
1421 | 1425 | | |
1422 | 1426 | | |
1423 | | - | |
1424 | | - | |
1425 | | - | |
1426 | | - | |
1427 | | - | |
1428 | | - | |
1429 | | - | |
1430 | 1427 | | |
1431 | 1428 | | |
1432 | 1429 | | |
| |||
1466 | 1463 | | |
1467 | 1464 | | |
1468 | 1465 | | |
1469 | | - | |
| 1466 | + | |
1470 | 1467 | | |
1471 | 1468 | | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
1472 | 1473 | | |
1473 | 1474 | | |
1474 | 1475 | | |
1475 | 1476 | | |
1476 | | - | |
1477 | | - | |
1478 | | - | |
1479 | | - | |
1480 | | - | |
1481 | 1477 | | |
1482 | 1478 | | |
1483 | 1479 | | |
| |||
1938 | 1934 | | |
1939 | 1935 | | |
1940 | 1936 | | |
1941 | | - | |
| 1937 | + | |
1942 | 1938 | | |
1943 | 1939 | | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
1944 | 1944 | | |
1945 | 1945 | | |
1946 | 1946 | | |
1947 | 1947 | | |
1948 | | - | |
1949 | | - | |
1950 | | - | |
1951 | | - | |
1952 | | - | |
1953 | | - | |
1954 | 1948 | | |
1955 | 1949 | | |
1956 | 1950 | | |
| |||
2395 | 2389 | | |
2396 | 2390 | | |
2397 | 2391 | | |
2398 | | - | |
| 2392 | + | |
2399 | 2393 | | |
2400 | 2394 | | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
| 2398 | + | |
| 2399 | + | |
2401 | 2400 | | |
2402 | 2401 | | |
2403 | 2402 | | |
| |||
2406 | 2405 | | |
2407 | 2406 | | |
2408 | 2407 | | |
2409 | | - | |
2410 | | - | |
2411 | | - | |
2412 | | - | |
2413 | | - | |
2414 | | - | |
2415 | | - | |
2416 | | - | |
2417 | | - | |
2418 | 2408 | | |
2419 | 2409 | | |
2420 | 2410 | | |
| |||
2439 | 2429 | | |
2440 | 2430 | | |
2441 | 2431 | | |
2442 | | - | |
| 2432 | + | |
2443 | 2433 | | |
2444 | 2434 | | |
| 2435 | + | |
| 2436 | + | |
| 2437 | + | |
| 2438 | + | |
2445 | 2439 | | |
2446 | 2440 | | |
2447 | 2441 | | |
2448 | 2442 | | |
2449 | | - | |
2450 | | - | |
2451 | | - | |
2452 | | - | |
2453 | | - | |
2454 | | - | |
2455 | 2443 | | |
2456 | 2444 | | |
2457 | 2445 | | |
| |||
0 commit comments