[Open64-devel] [PATCH] Modernize antiquated C++'isms
Brought to you by:
ributzka,
suneeljain
From: Jason E. <jl...@ow...> - 2002-09-16 15:50:00
|
Below are a few changes to update some of the antiquated (i.e., non-standard) C++'isms in the sources to more modern C++ practice. This allows, e.g., g++-3.0.4 to swallow much more of the code than before. Our sources at Rice University are still based on 0.13, but I imagine many of these problems still exist in 0.14. 2002-09-16 Jason Eckhardt <jle@{my institution}.edu> * ipa/main/analyze/ipa_cprop.h (struct hash): Place in namespace std. * ipa/main/optimize/ipo_alias_class.h (operator!=(AC_ST_IDENTIFIER, AC_ST_IDENTIFIER): New. (operator!=(AC_PREG_IDENTIFIER, AC_PREG_IDENTIFIER)): New. * ipa/main/optimize/ipo_alias_class.cxx (IP_AC_LAMBDA_TYPE_REP:: Union_func_args): Add allocator template argument to declaration Of iterators 'arg', 'that_arg', 'start', 'stop'. (IP_ALIAS_CLASS_REP::Print): Add allocator templace argument to declaration of iterator 'arg'. * common/com/fb_freq.h (FB_FREQ): Add operator <=(FB_FREQ,FB_FREQ). * common/stl/connected_components.h: Include <algobase.h> rather than (non-visible) internal header <stl_algobase.h>. * be/opt/opt_sym.cxx (transfer_attributes_as_needed::operator()): Change declarations of var_base_pos, first_nrc, last_nrc from pointers to iterators. (OPT_STAB::Collect_nested_ref_info): Change declarations of var_base_pos and symtab from pointers to iterators. Index: main/analyze/ipa_cprop.h =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/ipa/main/analyze/ipa_cprop.h,v retrieving revision 1.1 retrieving revision 1.2 diff -c -3 -p -r1.1 -r1.2 *** ipa_cprop.h 2002/05/22 20:09:09 1.1 --- ipa_cprop.h 2002/09/15 18:46:25 1.2 *************** struct OFFSET_SIZE *** 101,110 **** --- 101,112 ---- UINT32 size; }; + namespace std { template<> struct hash<OFFSET_SIZE> { size_t operator()(OFFSET_SIZE x) const { return x.offset + x.size; } }; + } struct OFFSET_SIZE_EQ { Index: main/optimize/ipo_alias_class.h =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/ipa/main/optimize/ipo_alias_class.h,v retrieving revision 1.1 retrieving revision 1.2 diff -c -3 -p -r1.1 -r1.2 *** ipo_alias_class.h 2002/05/22 20:09:10 1.1 --- ipo_alias_class.h 2002/09/16 03:05:15 1.2 *************** static bool operator==(AC_ST_IDENTIFIER *** 522,531 **** --- 522,543 ---- x.base_st_idx == y.base_st_idx); } + static bool operator!=(AC_ST_IDENTIFIER x, AC_ST_IDENTIFIER y) + { + return !(x.pu_st_idx == y.pu_st_idx && + x.base_st_idx == y.base_st_idx); + } + static bool operator==(AC_PREG_IDENTIFIER x, AC_PREG_IDENTIFIER y) { return (x.pu_st_idx == y.pu_st_idx && x.preg_num == y.preg_num); + } + + static bool operator!=(AC_PREG_IDENTIFIER x, AC_PREG_IDENTIFIER y) + { + return !(x.pu_st_idx == y.pu_st_idx && + x.preg_num == y.preg_num); } class IP_BASE_ID_MAP_ENTRY; // defined in ipo_alias_class.cxx. Index: main/optimize/ipo_alias_class.cxx =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/ipa/main/optimize/ipo_alias_class.cxx,v retrieving revision 1.1 retrieving revision 1.2 diff -c -3 -p -r1.1 -r1.2 *** ipo_alias_class.cxx 2002/05/22 20:09:10 1.1 --- ipo_alias_class.cxx 2002/09/16 03:05:15 1.2 *************** IP_AC_LAMBDA_TYPE_REP::Union_func_args( *** 802,809 **** // For each argument and each return value, join the appropriate // classes. ! vector<IP_ALIAS_CLASS_MEMBER *>::iterator arg; ! vector<IP_ALIAS_CLASS_MEMBER *>::iterator that_arg; for (arg = fixed_args.begin(), that_arg = that.fixed_args.begin(); (arg != fixed_args.end() && --- 802,811 ---- // For each argument and each return value, join the appropriate // classes. ! vector<IP_ALIAS_CLASS_MEMBER *, ! mempool_allocator<IP_ALIAS_CLASS_MEMBER *> >::iterator arg; ! vector<IP_ALIAS_CLASS_MEMBER *, ! mempool_allocator<IP_ALIAS_CLASS_MEMBER *> >::iterator that_arg; for (arg = fixed_args.begin(), that_arg = that.fixed_args.begin(); (arg != fixed_args.end() && *************** IP_AC_LAMBDA_TYPE_REP::Union_func_args( *** 824,830 **** // Clean up the tails of the lists in case the argument counts // didn't match. ! vector<IP_ALIAS_CLASS_MEMBER *>::iterator start, stop; IP_ALIAS_CLASS_MEMBER *vararg_data_representative, *vararg_code_representative; if (arg != fixed_args.end()) { --- 826,833 ---- // Clean up the tails of the lists in case the argument counts // didn't match. ! vector<IP_ALIAS_CLASS_MEMBER *, ! mempool_allocator<IP_ALIAS_CLASS_MEMBER *> >::iterator start, stop; IP_ALIAS_CLASS_MEMBER *vararg_data_representative, *vararg_code_representative; if (arg != fixed_args.end()) { *************** IP_ALIAS_CLASS_REP::Print(FILE *** 930,936 **** fprintf(fp, " (&%lu<0x%lx>) <-- lambda(", Signature().Return_class()->Id(), Signature().Returns()); ! for (vector<IP_ALIAS_CLASS_MEMBER *>::const_iterator arg = Signature().fixed_args.begin(); arg != Signature().fixed_args.end(); ++arg) { --- 933,939 ---- fprintf(fp, " (&%lu<0x%lx>) <-- lambda(", Signature().Return_class()->Id(), Signature().Returns()); ! for (vector<IP_ALIAS_CLASS_MEMBER *, mempool_allocator<IP_ALIAS_CLASS_MEMBER *> >::const_iterator arg = Signature().fixed_args.begin(); arg != Signature().fixed_args.end(); ++arg) { Index: common/com/fb_freq.h =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/common/com/fb_freq.h,v retrieving revision 1.2 retrieving revision 1.3 diff -c -3 -p -r1.2 -r1.3 *** fb_freq.h 2002/07/12 16:48:31 1.2 --- fb_freq.h 2002/09/06 22:34:55 1.3 *************** public: *** 363,368 **** --- 363,372 ---- friend bool operator< ( const FB_FREQ freq1, const FB_FREQ freq2 ) { return ( freq1._value < freq2._value ); + } + + friend bool operator<= ( const FB_FREQ freq1, const FB_FREQ freq2 ) { + return ( (freq1._value < freq2._value) || (freq1 == freq2) ); } // Printing methods Index: common/stl/connected_components.h =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/common/stl/connected_components.h,v retrieving revision 1.1 retrieving revision 1.2 diff -c -3 -p -r1.1 -r1.2 *** connected_components.h 2002/05/22 20:07:05 1.1 --- connected_components.h 2002/09/06 22:34:55 1.2 *************** *** 38,44 **** #define SGI_connected_components_h_INCLUDED #include "misc_extension.h" ! #include "stl_algobase.h" namespace SGI { --- 38,44 ---- #define SGI_connected_components_h_INCLUDED #include "misc_extension.h" ! #include "algobase.h" namespace SGI { Index: opt_sym.cxx =================================================================== RCS file: /Users/open64/cvsrep/Open64/osprey1.0/be/opt/opt_sym.cxx,v retrieving revision 1.1 diff -c -3 -p -r1.1 opt_sym.cxx *** opt_sym.cxx 2002/05/22 20:06:51 1.1 --- opt_sym.cxx 2002/09/16 15:13:16 *************** struct transfer_attributes_as_needed { *** 3450,3467 **** Expand_ST_into_base_and_ofst(st, 0, &base, &offset); if (base != st) { // See if anyone local to our PU cares about this base... ! const ST **var_base_pos = find(nested_ref_bases.begin(), nested_ref_bases.end(), base); if (var_base_pos != nested_ref_bases.end()) { // Someone in the PU referred to this base and might need a // status update. See if any of the references to this base // from the PU overlap with the current symbol. INT var_base_index = (var_base_pos - nested_ref_bases.begin()); ! const NEST_REF_CAND *first_nrc = nest_ref_cands[var_base_index].begin(); ! const NEST_REF_CAND *last_nrc = nest_ref_cands[var_base_index].end(); while (first_nrc != last_nrc) { if (Overlap(offset, TY_size(ST_type(st)), --- 3450,3469 ---- Expand_ST_into_base_and_ofst(st, 0, &base, &offset); if (base != st) { // See if anyone local to our PU cares about this base... ! vector<const ST *>::iterator var_base_pos = ! find(nested_ref_bases.begin(), nested_ref_bases.end(), base); + if (var_base_pos != nested_ref_bases.end()) { // Someone in the PU referred to this base and might need a // status update. See if any of the references to this base // from the PU overlap with the current symbol. INT var_base_index = (var_base_pos - nested_ref_bases.begin()); ! vector<NEST_REF_CAND>::iterator first_nrc = nest_ref_cands[var_base_index].begin(); ! vector<NEST_REF_CAND>::iterator last_nrc = nest_ref_cands[var_base_index].end(); while (first_nrc != last_nrc) { if (Overlap(offset, TY_size(ST_type(st)), *************** OPT_STAB::Collect_nested_ref_info(void) *** 3527,3533 **** /* Not const */ ST_TAB *my_symtab = Find_symtab_of(var_base); ! const ST **var_base_pos = find(nested_ref_bases.begin(), nested_ref_bases.end(), var_base); INT var_base_index = var_base_pos - nested_ref_bases.begin(); --- 3529,3536 ---- /* Not const */ ST_TAB *my_symtab = Find_symtab_of(var_base); ! vector<const ST *>::iterator var_base_pos = ! find(nested_ref_bases.begin(), nested_ref_bases.end(), var_base); INT var_base_index = var_base_pos - nested_ref_bases.begin(); *************** OPT_STAB::Collect_nested_ref_info(void) *** 3564,3570 **** } } ! /* Not const */ ST_TAB **symtab; for (symtab = symtabs.begin(); symtab != symtabs.end(); --- 3567,3573 ---- } } ! vector <ST_TAB *>::iterator symtab; for (symtab = symtabs.begin(); symtab != symtabs.end(); |