Wed, 06 Aug 2014 14:22:19 -0700
8040921: Uninitialised memory in hotspot/src/share/vm/c1/c1_LinearScan.cpp
Summary: Fixed parfait initialization issue.
Reviewed-by: kvn, twisti
src/share/vm/c1/c1_LinearScan.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/c1/c1_LinearScan.cpp Sat Aug 02 16:28:59 2014 -0400 1.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp Wed Aug 06 14:22:19 2014 -0700 1.3 @@ -1628,25 +1628,22 @@ 1.4 Interval* precolored_cpu_intervals, *not_precolored_cpu_intervals; 1.5 Interval* precolored_fpu_intervals, *not_precolored_fpu_intervals; 1.6 1.7 - create_unhandled_lists(&precolored_cpu_intervals, ¬_precolored_cpu_intervals, is_precolored_cpu_interval, is_virtual_cpu_interval); 1.8 - if (has_fpu_registers()) { 1.9 - create_unhandled_lists(&precolored_fpu_intervals, ¬_precolored_fpu_intervals, is_precolored_fpu_interval, is_virtual_fpu_interval); 1.10 -#ifdef ASSERT 1.11 - } else { 1.12 - // fpu register allocation is omitted because no virtual fpu registers are present 1.13 - // just check this again... 1.14 - create_unhandled_lists(&precolored_fpu_intervals, ¬_precolored_fpu_intervals, is_precolored_fpu_interval, is_virtual_fpu_interval); 1.15 - assert(not_precolored_fpu_intervals == Interval::end(), "missed an uncolored fpu interval"); 1.16 -#endif 1.17 - } 1.18 - 1.19 // allocate cpu registers 1.20 + create_unhandled_lists(&precolored_cpu_intervals, ¬_precolored_cpu_intervals, 1.21 + is_precolored_cpu_interval, is_virtual_cpu_interval); 1.22 + 1.23 + // allocate fpu registers 1.24 + create_unhandled_lists(&precolored_fpu_intervals, ¬_precolored_fpu_intervals, 1.25 + is_precolored_fpu_interval, is_virtual_fpu_interval); 1.26 + 1.27 + // the fpu interval allocation cannot be moved down below with the fpu section as 1.28 + // the cpu_lsw.walk() changes interval positions. 1.29 + 1.30 LinearScanWalker cpu_lsw(this, precolored_cpu_intervals, not_precolored_cpu_intervals); 1.31 cpu_lsw.walk(); 1.32 cpu_lsw.finish_allocation(); 1.33 1.34 if (has_fpu_registers()) { 1.35 - // allocate fpu registers 1.36 LinearScanWalker fpu_lsw(this, precolored_fpu_intervals, not_precolored_fpu_intervals); 1.37 fpu_lsw.walk(); 1.38 fpu_lsw.finish_allocation();