src/share/vm/opto/chaitin.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
8021898 Cdiff src/share/vm/opto/chaitin.hpp
src/share/vm/opto/chaitin.hpp
Print this page
*** 410,445 ****
// Helper functions for Split()
uint split_DEF( Node *def, Block *b, int loc, uint max, Node **Reachblock, Node **debug_defs, GrowableArray<uint> splits, int slidx );
uint split_USE( Node *def, Block *b, Node *use, uint useidx, uint max, bool def_down, bool cisc_sp, GrowableArray<uint> splits, int slidx );
! bool clone_projs(Block *b, uint idx, Node *con, Node *copy, LiveRangeMap &lrg_map) {
! bool found_projs = clone_projs_shared(b, idx, con, copy, lrg_map.max_lrg_id());
!
! if(found_projs) {
uint max_lrg_id = lrg_map.max_lrg_id();
! lrg_map.set_max_lrg_id(max_lrg_id + 1);
}
-
return found_projs;
}
//------------------------------clone_projs------------------------------------
// After cloning some rematerialized instruction, clone any MachProj's that
// follow it. Example: Intel zero is XOR, kills flags. Sparc FP constants
// use G3 as an address temp.
! bool clone_projs(Block *b, uint idx, Node *con, Node *copy, uint &max_lrg_id) {
! bool found_projs = clone_projs_shared(b, idx, con, copy, max_lrg_id);
!
! if(found_projs) {
! max_lrg_id++;
! }
!
! return found_projs;
! }
!
! bool clone_projs_shared(Block *b, uint idx, Node *con, Node *copy, uint max_lrg_id);
Node *split_Rematerialize(Node *def, Block *b, uint insidx, uint &maxlrg, GrowableArray<uint> splits,
int slidx, uint *lrg2reach, Node **Reachblock, bool walkThru);
// True if lidx is used before any real register is def'd in the block
bool prompt_use( Block *b, uint lidx );
--- 410,434 ----
// Helper functions for Split()
uint split_DEF( Node *def, Block *b, int loc, uint max, Node **Reachblock, Node **debug_defs, GrowableArray<uint> splits, int slidx );
uint split_USE( Node *def, Block *b, Node *use, uint useidx, uint max, bool def_down, bool cisc_sp, GrowableArray<uint> splits, int slidx );
! int clone_projs(Block *b, uint idx, Node *orig, Node *copy, LiveRangeMap &lrg_map) {
uint max_lrg_id = lrg_map.max_lrg_id();
! int found_projs = clone_projs(b, idx, orig, copy, max_lrg_id);
! if (found_projs > 0) {
! // max_lrg_id is updated during call above
! lrg_map.set_max_lrg_id(max_lrg_id);
}
return found_projs;
}
//------------------------------clone_projs------------------------------------
// After cloning some rematerialized instruction, clone any MachProj's that
// follow it. Example: Intel zero is XOR, kills flags. Sparc FP constants
// use G3 as an address temp.
! int clone_projs(Block *b, uint idx, Node *orig, Node *copy, uint &max_lrg_id);
Node *split_Rematerialize(Node *def, Block *b, uint insidx, uint &maxlrg, GrowableArray<uint> splits,
int slidx, uint *lrg2reach, Node **Reachblock, bool walkThru);
// True if lidx is used before any real register is def'd in the block
bool prompt_use( Block *b, uint lidx );
src/share/vm/opto/chaitin.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File