@@ -1692,6 +1692,42 @@ static zend_lifetime_interval* zend_jit_linear_scan(const zend_op_array *op_arra
1692
1692
return handled ;
1693
1693
}
1694
1694
1695
+ static void zend_jit_dump_lifetime_interval (const zend_op_array * op_array , const zend_ssa * ssa , const zend_lifetime_interval * ival )
1696
+ {
1697
+ zend_life_range * range ;
1698
+ int var_num = ssa -> vars [ival -> ssa_var ].var ;
1699
+
1700
+ fprintf (stderr , "#%d." , ival -> ssa_var );
1701
+ zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1702
+ fprintf (stderr , ": %u-%u" , ival -> range .start , ival -> range .end );
1703
+ range = ival -> range .next ;
1704
+ while (range ) {
1705
+ fprintf (stderr , ", %u-%u" , range -> start , range -> end );
1706
+ range = range -> next ;
1707
+ }
1708
+ if (ival -> reg != ZREG_NONE ) {
1709
+ fprintf (stderr , " (%s)" , zend_reg_name [ival -> reg ]);
1710
+ }
1711
+ if (ival -> flags & ZREG_LAST_USE ) {
1712
+ fprintf (stderr , " last_use" );
1713
+ }
1714
+ if (ival -> flags & ZREG_LOAD ) {
1715
+ fprintf (stderr , " load" );
1716
+ }
1717
+ if (ival -> flags & ZREG_STORE ) {
1718
+ fprintf (stderr , " store" );
1719
+ }
1720
+ if (ival -> hint ) {
1721
+ var_num = ssa -> vars [ival -> hint -> ssa_var ].var ;
1722
+ fprintf (stderr , " hint=#%d." , ival -> hint -> ssa_var );
1723
+ zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1724
+ if (ival -> hint -> reg != ZREG_NONE ) {
1725
+ fprintf (stderr , " (%s)" , zend_reg_name [ival -> hint -> reg ]);
1726
+ }
1727
+ }
1728
+ fprintf (stderr , "\n" );
1729
+ }
1730
+
1695
1731
static zend_lifetime_interval * * zend_jit_allocate_registers (const zend_op_array * op_array , zend_ssa * ssa )
1696
1732
{
1697
1733
void * checkpoint ;
@@ -1752,29 +1788,7 @@ static zend_lifetime_interval** zend_jit_allocate_registers(const zend_op_array
1752
1788
fprintf (stderr , "Live Ranges \"%s\"\n" , op_array -> function_name ? ZSTR_VAL (op_array -> function_name ) : "[main]" );
1753
1789
ival = list ;
1754
1790
while (ival ) {
1755
- zend_life_range * range ;
1756
- int var_num = ssa -> vars [ival -> ssa_var ].var ;
1757
-
1758
- fprintf (stderr , "#%d." , ival -> ssa_var );
1759
- zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1760
- fprintf (stderr , ": %u-%u" , ival -> range .start , ival -> range .end );
1761
- range = ival -> range .next ;
1762
- while (range ) {
1763
- fprintf (stderr , ", %u-%u" , range -> start , range -> end );
1764
- range = range -> next ;
1765
- }
1766
- if (ival -> flags & ZREG_LOAD ) {
1767
- fprintf (stderr , " load" );
1768
- }
1769
- if (ival -> flags & ZREG_STORE ) {
1770
- fprintf (stderr , " store" );
1771
- }
1772
- if (ival -> hint ) {
1773
- var_num = ssa -> vars [ival -> hint -> ssa_var ].var ;
1774
- fprintf (stderr , " hint=#%d." , ival -> hint -> ssa_var );
1775
- zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1776
- }
1777
- fprintf (stderr , "\n" );
1791
+ zend_jit_dump_lifetime_interval (op_array , ssa , ival );
1778
1792
ival = ival -> list_next ;
1779
1793
}
1780
1794
fprintf (stderr , "\n" );
@@ -1917,33 +1931,7 @@ static zend_lifetime_interval** zend_jit_allocate_registers(const zend_op_array
1917
1931
for (i = 0 ; i < ssa -> vars_count ; i ++ ) {
1918
1932
ival = intervals [i ];
1919
1933
while (ival ) {
1920
- zend_life_range * range ;
1921
- int var_num = ssa -> vars [ival -> ssa_var ].var ;
1922
-
1923
- fprintf (stderr , "#%d." , ival -> ssa_var );
1924
- zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1925
- fprintf (stderr , ": %u-%u" , ival -> range .start , ival -> range .end );
1926
- range = ival -> range .next ;
1927
- while (range ) {
1928
- fprintf (stderr , ", %u-%u" , range -> start , range -> end );
1929
- range = range -> next ;
1930
- }
1931
- fprintf (stderr , " (%s)" , zend_reg_name [ival -> reg ]);
1932
- if (ival -> flags & ZREG_LOAD ) {
1933
- fprintf (stderr , " load" );
1934
- }
1935
- if (ival -> flags & ZREG_STORE ) {
1936
- fprintf (stderr , " store" );
1937
- }
1938
- if (ival -> hint ) {
1939
- var_num = ssa -> vars [ival -> hint -> ssa_var ].var ;
1940
- fprintf (stderr , " hint=#%d." , ival -> hint -> ssa_var );
1941
- zend_dump_var (op_array , (var_num < op_array -> last_var ? IS_CV : 0 ), var_num );
1942
- if (ival -> hint -> reg != ZREG_NONE ) {
1943
- fprintf (stderr , " (%s)" , zend_reg_name [ival -> hint -> reg ]);
1944
- }
1945
- }
1946
- fprintf (stderr , "\n" );
1934
+ zend_jit_dump_lifetime_interval (op_array , ssa , ival );
1947
1935
ival = ival -> list_next ;
1948
1936
}
1949
1937
}
0 commit comments