1. 17 Oct, 1998 4 commits
    • flow.c (propagate_block): Replace code that computes and uses… · f8dd7f98
      flow.c (propagate_block): Replace code that computes and uses regs_sometimes_live with simpler code that...
      
              * flow.c (propagate_block): Replace code that computes and uses
              regs_sometimes_live with simpler code that just walks the set of
              currently live registers.
      
      From-SVN: r23148
      Bernd Schmidt committed
    • Makefile.in (insn-extract.o): Fix dependencies. · 0a578fee
      	* Makefile.in (insn-extract.o): Fix dependencies.
      	* genextract.c (main): Generate includes for insn-config.h and
      	recog.h.
      	Delete generation of declarations which are now in recog.h.
      	* genrecog.c (main): Delete generation of definitions which are
      	now in recog.c.
      	* local-alloc.c (block_alloc): Use extract_insn and the variables
      	it sets up instead of looking up values by insn_code.
      	* recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
      	recog_dup_num): Define here instead of generating the definition in
      	genrecog.c.
      	(recog_n_operands, recog_n_dups, recog_n_alternatives,
      	recog_operand_mode, recog_constraints, recog_operand_address_p):
      	New variables.
      	(extract_insn): New function.
      	* recog.h (extract_insn): Declare function.
      	(which_alternative, recog_n_operands, recog_n_dups,
      	recog_n_alternatives, recog_operand_mode, recog_constraints,
      	recog_operand_address_p): Declare variables.
      	* regclass.c (n_occurrences): New static function.
      	* reload.c (n_occurrences): Delete function.
      	(find_reloads): Use extract_insn.
      	* reload.h (n_occurrences): Delete declaration.
      
      From-SVN: r23147
      Bernd Schmidt committed
    • Daily bump. · e02bdac1
      From-SVN: r23146
      Jeff Law committed
    • reload1.c (reload_as_needed): Fix test for when to call update_eliminable_offsets. · dd6acd1b
      �
              * reload1.c (reload_as_needed): Fix test for when to call
              update_eliminable_offsets.
      
      From-SVN: r23145
      Jeffrey A Law committed
  2. 16 Oct, 1998 25 commits
    • Fix consistency problems with reg_equiv_{mem,address}; · cb2afeb3
              Improve reload inheritance;
              * reload.c (reload_out_reg): New variable.
              (loc_mentioned_in_p, remove_address_replacements): New functions.
              (remove_replacements): Deleted.
              (push_reload): Set reload_out_reg[i].
              When merging, also set reload_{in,out}_reg[i], and remove
              duplicate address reloads.
              (combine_reloads): Copy reload_out_reg[i].
              (find_reloads): Do make_memloc substitution also when
              reg_equiv_memory_loc[regno] and num_not_at_initial_offset
              are both nonzero.
              Include *recog_operand_loc in commutativity operand changes.
              Generate optional output reloads.
              Delete reference to n_memlocs.  Don't set *recog_operand_loc before
              processing operands.  Call make_memloc in reg_equiv_address code.
              Set *recog_operand_loc only after processing operands, and only
              if replace is true.  Return a value.
              When changing address reload types for operands that didn't get
              reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
              RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
              Don't emit USEs for pseudo SUBREGs when not replacing.
              (find_reloads_address): Do make_memloc substitution also when
              reg_equiv_memory_loc[regno] and num_not_at_initial_offset
              are both nonzero.
              (find_reloads_toplev): Likewise.
              Call make_memloc in reg_equiv_address code.
              (debug_reload_to_stream): Add code to output reload_out_reg.
              (make_memloc): Delete local variable i, ifdefed out code, and
              references to memlocs and n_memlocs.
              (memlocs, n_memlocs): Delete.
              (push_secondary_reload): Clear reload_out_reg.
              (find_reloads_address_1): Provide memrefloc argument to all calls
              to find_reloads_address.
              In AUTO_INC code, handle non-directly addressable equivalences properly.
              * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
              (find_reloads): Add return type.
              (remove_address_replacements, deallocate_reload_reg): Declare.
              * reload1.c (num_not_at_initial_offset): No longer static.
              (delete_address_reloads, delete_address_reloads_1): Likewise.
              (deallocate_reload_reg): New function.
              (spill_reg_stored_to): New array.
              (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
              (eliminate_regs_in_insn): Move assignments of previous_offset and
              max_offset fields, and recalculation of num_not_at_initial_offset
              into new static function:
              (update_eliminable_offsets) .
              (reload_as_needed): Call update_eliminable_offsetss after calling
              find_reloads.
              Call forget_old_reloads_1 with contents of reloaded auto_inc
              expressions if the actual addressing can't be changed to match the
              auto_inc.
              (choose_reload_regs): For inheritance, replace
              reload_reg_free_before_p test with reload_reg_ions.
              (emit_reload_insns): If reload_in is a MEM, set OLD to
              reload_in_reg[j].
              Don't reload directly from oldequiv; if it's a pseudo with a
              stack slot, use reload_in[j].
              Check that reload_in_reg[j] is a MEM before replacing reload_in
              from reg_reloaded_contents.
              Include non-spill registers in reload inheritance processing.
              Also try to use reload_out_reg to set spill_reg_store /
              reg_last_reload_reg.
              In code to set new_spill_reg_store, use single_set to find out if
              there is a single set.
              Add code that allows to delete optional output reloads.
              Add code to allow deletion of output reloads that use no spill reg.
              At the end, set reload_override_in to oldequiv.
              Also call delete_output_reload if reload_out_reg is equal to old
              in oldequiv code.
              Add code to call delete_output_reload for stores with no matching load.
              Set / use spill_reg_stored_to.
              Handle case where secondary output reload uses a temporary, but
              actual store isn't found.
              When looking for a store of a value not loaded in order to call
              delete_output_reload, count_occurences should return 0 for no
              loads; but discount inherited input reloadill_reg_stored_to.
              Do checks for extra uses of REG.  Changed all
              callers.
              Use delete_address_reloads.
              (reload): Take return value of find_reloads into account.
              If a no-op set needs more than one reload, delete it.
              (reload_reg_free_before_p): RELOAD_FOR_INPUT
              can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
              for the same operand.
              (clear_reload_reg_in_use): Check for other reloads that keep a
              register in use.
              (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
              RELOAD_FOR_OPADDR_ADDR.
              Take into account when an address address reload is only needed
              for the address reload we are considering.
              (count_occurrences): Use rtx_equal_p for MEMs.
              (inc_for_reload): Return instruction that stores into RELOADREG.
              New argument two, IN, and rtx.  Changed all callers.
              (calculate_needs_all_insns, reload_as_needed):
              Don't clear after_call for a CLOBBER.
              Keep track of how many hard registers need to be copied from
              after_call, and don't clear after_call before we have seen
              that much copies, or we see a different instruction.
      
      From-SVN: r23143
      J"orn Rennecke committed
    • lex.c (setjmp.h): No longer included. · c583dd46
      Fri Oct 16 10:59:01 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
      	* lex.c (setjmp.h): No longer included.
      	* lex.h (setjmp.h): Included.
      	* parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
      	(duplicate_declaration_error_p): Renamed from
       	duplicate_declaration_error.
      	(build_array_from_name): New function prototype.
      	* parse.y (setjmp.h): No longer included.
      	(variable_declarator_id): Define action.
      	(build_array_from_name): New function.
      	(duplicate_declaration_error_p): Renamed from
       	duplicate_declaration_error.  Fixed leading comment.
      	(register_fields): Main `for' loop reorganized. Uses
       	SET_TYPE_FOR_RESOLUTION and build_array_from_name.
      	(method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
       	build_array_from_name.
      	(resolve_class): Set CLASS_LOADED_P on newly build array dimension
       	types.
      	(read_import_dir): Don't try to skip `.' and `..'.
      	(declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
       	build_array_from_name. Main `for' loop reorganized.
      	(resolve_qualified_expression_name): When building access to a
       	field, use the type where the field was found, not its own type.
      	(maybe_access_field): Use field DECL_CONTEXT if the type where the
       	field was found is null.
      	(qualify_ambiguous_name): Sweep through all successive array
       	dimensions.
      Implements the alternate form `T a[]' of array declarations. Fixes a
      bug when building access to certain fields. Fixed a compilation
      warning when lex.h is included from somewhere else than parse.y
      
      From-SVN: r23142
      Alexandre Petit-Bianco committed
    • decl.c (lookup_name_real): Handle template parameters for member temlates where… · 8e52e063
      decl.c (lookup_name_real): Handle template parameters for member temlates where said parameters have the...
      
      	* decl.c (lookup_name_real): Handle template parameters for member
      	temlates where said parameters have the same name as the
      	surrounding class.
      
      From-SVN: r23141
      Mark Mitchell committed
    • flow.c (find_basic_blocks_1): Do not delete unreachable blocks after reload has completed. · 96b106e5
              * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
              after reload has completed.
      
      From-SVN: r23140
      Jeffrey A Law committed
    • cpplib.c (cpp_get_token): Replace whitespace that occurs between a macro name… · c55ade02
      cpplib.c (cpp_get_token): Replace whitespace that occurs between a macro name and the next token with a...
      
      Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
              * cpplib.c (cpp_get_token): Replace whitespace that occurs between
              a macro name and the next token with a single blank if that whitespace
              is in a macro buffer and the next token is not '('.
      
      From-SVN: r23139
      Dave Brolley committed
    • decl.c (expand_static_init): Build cleanups before entering the anonymous… · 7cfac595
      decl.c (expand_static_init): Build cleanups before entering the anonymous function used to do them to avoid...
      
      	* decl.c (expand_static_init): Build cleanups before entering the
      	anonymous function used to do them to avoid access-checking
      	confusion.
      	* decl.c (grokfndecl): Add back call to cplus_decl_attributes
      	accidentally removed by previous change, and make DECL_RTL here.
      	* class.c (add_method): Don't make DECL_RTL here.
      
      From-SVN: r23138
      Mark Mitchell committed
    • pt.c (for_each_template_parm): Don't examine uninstantiated default arguments. · 588c2d1c
      	* pt.c (for_each_template_parm): Don't examine uninstantiated
      	default arguments.
      
      From-SVN: r23137
      Mark Mitchell committed
    • Remove old CYGNUS LOCAL comment. · cc482456
      From-SVN: r23136
      Per Bothner committed
    • cccp.c (rescan): Handle multibyte chartacters ending in backslash. · 265c5294
      Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
              * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
              (rescan): Ditto.
              (skip_if_group): Ditto.
              (skip_to_end_of_comment): Ditto.
              (macarg1): Ditto.
              (discard_comments): Ditto.
              (change_newlines): Ditto.
      
      From-SVN: r23135
      Dave Brolley committed
    • lex.c (real_yylex): Fix unaligned access of wchar_t. · cde7b1b0
      1998-10-16  Dave Brolley  <brolley@cygnus.com>
              * lex.c (real_yylex): Fix unaligned access of wchar_t.
      
      From-SVN: r23134
      Dave Brolley committed
    • c-lex.c (yylex): Fix unaligned access of wchar_t. · 1f3d9c63
      Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
              * c-lex.c (yylex): Fix unaligned access of wchar_t.
      
      From-SVN: r23133
      Dave Brolley committed
    • class.c (add_method): Fix documentation to reflect previous changes. · 6b4b3deb
      	* class.c (add_method): Fix documentation to reflect previous
      	changes.  Check for duplicate method declarations here.
      	* decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL
      	correctly; such things never match.
      	(grokfndecl): Don't look for duplicate methods here.
      	* decl2.c (check_classfn): Don't assume names are mangled.
      	Don't add bogus member function declarations to a class before the
      	class type is complete.
      	(grokfield): Reformat error message.
      	* method.c (set_mangled_name_for_decl): Don't mangle names while
      	procesing_template_decl.
      
      From-SVN: r23132
      Mark Mitchell committed
    • up · 4c37d704
      From-SVN: r23131
      Jason Merrill committed
    • New files to touch · 318b0430
      From-SVN: r23128
      Bruce Korb committed
    • The generated files · 06bbab1b
      From-SVN: r23127
      Bruce Korb committed
    • Notification of move of fixinc/ from contrib to here. · f4ed83ed
      From-SVN: r23126
      Bruce Korb committed
    • These files are being moved from the contrib/fixinc directory. · 0083c904
      They have been modified somewhat to work in the new environment.
      
      From-SVN: r23125
      Bruce Korb committed
    • typeck.c (build_indirect_ref): Complain about a pointer to data member, too. · 162bc98d
      	* typeck.c (build_indirect_ref): Complain about a pointer to data
      	member, too.
      	* typeck2.c (build_m_component_ref): Don't indirect a pointer to
      	data member.
      	* init.c (resolve_offset_ref): Don't undo the above.
      	* cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros.
      	(struct lang_decl_flags): Add `bitfield'.
      	* class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of
      	DECL_BIT_FIELD.
      	* decl2.c (grokbitfield, grok_alignof): Likewise.
      	* init.c (build_offset_ref): Likewise.
      	* typeck.c (build_component_addr, expr_sizeof): Likewise.
      	* cvt.c (build_up_reference): Don't crash if taking the address
      	returns error_mark_node.
      
      From-SVN: r23124
      Jason Merrill committed
    • cse.c (cse_basic_block): Fixup hash flushing loop so we do not accidently walk into the free list. · 925be47c
      	* cse.c (cse_basic_block): Fixup hash flushing loop so we do not
      	accidently walk into the free list.  Comment how that can happen.
      	(invalidate): Fix indentation.
      
      From-SVN: r23122
      David S. Miller committed
    • Daily bump. · 748f2a22
      From-SVN: r23121
      Jeff Law committed
    • flow.c (life_analysis_1): Do not clobber regs_ever_live after reload. · 6764d250
              * flow.c (life_analysis_1): Do not clobber regs_ever_live after
              reload.  Never perform rescans of the insn chain after reload.
              (propagate_block): Do not delete insn or create new autoinc addressing
              modes after reload.
              * jump.c (jump_optimize): Unconditionally use the code that was
              previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
              * reload1.c (reload): When reloading is finished, delete all
              REG_DEAD and REG_UNUSED notes.
              (emit_reload_insns): Delete all code that was conditional on
              PRESERVE_DEATH_INFO_REGNO_P.
              (no_longer_dead_regs): Delete variable.
              (reload_cse_delete_death_notes): Delete function.
              (reload_cse_no_longer_dead): Delete function.
              (reload_cse_regs_1): Delete all code to handle deletion of death
              notes.
              (reload_cse_noop_set_p): Likewise.
              (reload_cse_simplify_set): Likewise.
              (reload_cse_simplify_operands): Likewise.
              (reload_cse_move2add): Likewise.
              * reorg.c (used_spill_regs): Delete declaration.
              (max_label_num_after_reload): Delete declaration.
              (find_dead_or_set_registers): Don't assume that spill regs are
              dead at a CODE_LABEL.
              * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
              even after reload.
              * sched.c (sched_analyze_insn): Likewise.
              (update_flow_info): Likewise.
              * haifa-sched.c (sched_analyze_insn): Likewise.
              (update_flow_info): Likewise.
              * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
              * toplev.c (max_label_num_after_reload): Delete variable.
              (rest_of_compilation): Don't set max_label_num_after_reload.
              Call life_analysis after reload_cse_regs if optimizing.
              * config/gmicro/gmicro.h: Delete comment referring to
              PRESERVE_DEATH_INFO_REGNO_P.
              * config/i386/i386.h: Likewise.
              * config/m88k/m88k.h: Likewise.
              * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
              * config/sh/sh.h: Likewise.
      Accurate REG_DEAD notes after reload.
      
      Co-Authored-By: Jeffrey A Law <law@cygnus.com>
      
      From-SVN: r23120
      Bernd Schmidt committed
  3. 15 Oct, 1998 11 commits