comparison src/share/vm/adlc/formssel.hpp @ 855:f9094a5e1c8a

6857159: local schedule failed with checkcast of Thread.currentThread() Reviewed-by: kvn
author never
date Tue, 21 Jul 2009 16:42:58 -0700
parents 98cb887364d3
children b5fdf39b9749
comparison
equal deleted inserted replaced
854:606c988ff684 855:f9094a5e1c8a
156 virtual bool is_ideal_nop() const; // node matches 'Nop' 156 virtual bool is_ideal_nop() const; // node matches 'Nop'
157 virtual bool is_ideal_control() const; // control node 157 virtual bool is_ideal_control() const; // control node
158 158
159 virtual Form::CallType is_ideal_call() const; // matches ideal 'Call' 159 virtual Form::CallType is_ideal_call() const; // matches ideal 'Call'
160 virtual Form::DataType is_ideal_load() const; // node matches ideal 'LoadXNode' 160 virtual Form::DataType is_ideal_load() const; // node matches ideal 'LoadXNode'
161 // Should antidep checks be disabled for this Instruct
162 // See definition of MatchRule::skip_antidep_check
163 bool skip_antidep_check() const;
161 virtual Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode' 164 virtual Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode'
162 bool is_ideal_mem() const { return is_ideal_load() != Form::none || is_ideal_store() != Form::none; } 165 bool is_ideal_mem() const { return is_ideal_load() != Form::none || is_ideal_store() != Form::none; }
163 virtual uint two_address(FormDict &globals); // output reg must match input reg 166 virtual uint two_address(FormDict &globals); // output reg must match input reg
164 // when chaining a constant to an instruction, return 'true' and set opType 167 // when chaining a constant to an instruction, return 'true' and set opType
165 virtual Form::DataType is_chain_of_constant(FormDict &globals); 168 virtual Form::DataType is_chain_of_constant(FormDict &globals);
1001 bool is_ideal_box() const; // node matches ideal 'Box' 1004 bool is_ideal_box() const; // node matches ideal 'Box'
1002 bool is_ideal_goto() const; // node matches ideal 'Goto' 1005 bool is_ideal_goto() const; // node matches ideal 'Goto'
1003 bool is_ideal_loopEnd() const; // node matches ideal 'LoopEnd' 1006 bool is_ideal_loopEnd() const; // node matches ideal 'LoopEnd'
1004 bool is_ideal_bool() const; // node matches ideal 'Bool' 1007 bool is_ideal_bool() const; // node matches ideal 'Bool'
1005 Form::DataType is_ideal_load() const;// node matches ideal 'LoadXNode' 1008 Form::DataType is_ideal_load() const;// node matches ideal 'LoadXNode'
1009 // Should antidep checks be disabled for this rule
1010 // See definition of MatchRule::skip_antidep_check
1011 bool skip_antidep_check() const;
1006 Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode' 1012 Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode'
1007 1013
1008 // Check if 'mRule2' is a cisc-spill variant of this MatchRule 1014 // Check if 'mRule2' is a cisc-spill variant of this MatchRule
1009 int matchrule_cisc_spill_match(FormDict &globals, RegisterForm* registers, 1015 int matchrule_cisc_spill_match(FormDict &globals, RegisterForm* registers,
1010 MatchRule* mRule2, const char* &operand, 1016 MatchRule* mRule2, const char* &operand,