comparison src/share/vm/adlc/formssel.hpp @ 603:dbbe28fc66b5

6778669: Patch from Red Hat -- fixes compilation errors Summary: Some fixes which are required to build on recent GCCs. Reviewed-by: never, kvn Contributed-by: langel@redhat.com
author twisti
date Fri, 27 Feb 2009 03:35:40 -0800
parents 0ad1cb407fa1
children 98cb887364d3
comparison
equal deleted inserted replaced
602:ed6404fac86b 603:dbbe28fc66b5
1 /* 1 /*
2 * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
918 918
919 // return 0 if not found: 919 // return 0 if not found:
920 // return 1 if found and position is incremented by operand offset in rule 920 // return 1 if found and position is incremented by operand offset in rule
921 bool find_name(const char *str, int &position) const; 921 bool find_name(const char *str, int &position) const;
922 bool find_type(const char *str, int &position) const; 922 bool find_type(const char *str, int &position) const;
923 void append_components(FormDict &locals, ComponentList &components, 923 virtual void append_components(FormDict& locals, ComponentList& components,
924 bool def_flag) const; 924 bool def_flag = false) const;
925 bool base_operand(uint &position, FormDict &globals, 925 bool base_operand(uint &position, FormDict &globals,
926 const char * &result, const char * &name, 926 const char * &result, const char * &name,
927 const char * &opType) const; 927 const char * &opType) const;
928 // recursive count on operands 928 // recursive count on operands
929 uint num_consts(FormDict &globals) const; 929 uint num_consts(FormDict &globals) const;
945 bool sets_result() const; // rule "Set"s result of match 945 bool sets_result() const; // rule "Set"s result of match
946 const char *reduce_right(FormDict &globals) const; 946 const char *reduce_right(FormDict &globals) const;
947 const char *reduce_left (FormDict &globals) const; 947 const char *reduce_left (FormDict &globals) const;
948 948
949 // Recursive version of check in MatchRule 949 // Recursive version of check in MatchRule
950 int cisc_spill_match(FormDict &globals, RegisterForm *registers, 950 int cisc_spill_match(FormDict& globals, RegisterForm* registers,
951 MatchNode *mRule2, const char * &operand, 951 MatchNode* mRule2, const char* &operand,
952 const char * &reg_type); 952 const char* &reg_type);
953 int cisc_spill_merge(int left_result, int right_result); 953 int cisc_spill_merge(int left_result, int right_result);
954 954
955 bool equivalent(FormDict &globals, MatchNode *mNode2); 955 virtual bool equivalent(FormDict& globals, MatchNode* mNode2);
956 956
957 void count_commutative_op(int& count); 957 void count_commutative_op(int& count);
958 void swap_commutative_op(bool atroot, int count); 958 void swap_commutative_op(bool atroot, int count);
959 959
960 void dump(); 960 void dump();
977 MatchRule(ArchDesc &ad); 977 MatchRule(ArchDesc &ad);
978 MatchRule(ArchDesc &ad, MatchRule* mRule); // Shallow copy constructor; 978 MatchRule(ArchDesc &ad, MatchRule* mRule); // Shallow copy constructor;
979 MatchRule(ArchDesc &ad, MatchNode* mroot, int depth, char* construct, int numleaves); 979 MatchRule(ArchDesc &ad, MatchNode* mroot, int depth, char* construct, int numleaves);
980 ~MatchRule(); 980 ~MatchRule();
981 981
982 void append_components(FormDict &locals, ComponentList &components) const; 982 virtual void append_components(FormDict& locals, ComponentList& components, bool def_flag = false) const;
983 // Recursive call on all operands' match rules in my match rule. 983 // Recursive call on all operands' match rules in my match rule.
984 bool base_operand(uint &position, FormDict &globals, 984 bool base_operand(uint &position, FormDict &globals,
985 const char * &result, const char * &name, 985 const char * &result, const char * &name,
986 const char * &opType) const; 986 const char * &opType) const;
987 987
1004 bool is_ideal_bool() const; // node matches ideal 'Bool' 1004 bool is_ideal_bool() const; // node matches ideal 'Bool'
1005 Form::DataType is_ideal_load() const;// node matches ideal 'LoadXNode' 1005 Form::DataType is_ideal_load() const;// node matches ideal 'LoadXNode'
1006 Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode' 1006 Form::DataType is_ideal_store() const;// node matches ideal 'StoreXNode'
1007 1007
1008 // Check if 'mRule2' is a cisc-spill variant of this MatchRule 1008 // Check if 'mRule2' is a cisc-spill variant of this MatchRule
1009 int cisc_spill_match(FormDict &globals, RegisterForm *registers, 1009 int matchrule_cisc_spill_match(FormDict &globals, RegisterForm* registers,
1010 MatchRule *mRule2, const char * &operand, 1010 MatchRule* mRule2, const char* &operand,
1011 const char * &reg_type); 1011 const char* &reg_type);
1012 1012
1013 // Check if 'mRule2' is equivalent to this MatchRule 1013 // Check if 'mRule2' is equivalent to this MatchRule
1014 bool equivalent(FormDict &globals, MatchRule *mRule2); 1014 virtual bool equivalent(FormDict& globals, MatchNode* mRule2);
1015 1015
1016 void swap_commutative_op(const char* instr_ident, int count, int& match_rules_cnt); 1016 void matchrule_swap_commutative_op(const char* instr_ident, int count, int& match_rules_cnt);
1017 1017
1018 void dump(); 1018 void dump();
1019 void output(FILE *fp); 1019 void output(FILE *fp);
1020 }; 1020 };
1021 1021