1. 05 Dec, 1999 7 commits
    • optimize.c (inline_data): Remove fns_top. · 390f4e9a
      	* optimize.c (inline_data): Remove fns_top.  Add scope_stmt.  Add
      	in_target_cleanup_p.
      	(remap_decl): New function.
      	(remap_block): Likewise.
      	(copy_scope_stmt): Likewise.
      	(copy_body_r): Use remap_decl and copy_scope_stmt.
      	(copy_body): Use VARRAY_TOP_TREE.
      	(initialize_inlined_parameters): Likewise.
      	(declare_return_variable): Likewise.
      	(inlinable_function_p): Check flag_inline_trees.
      	(expand_call_inline): Handle SCOPE_STMTs and TARGET_EXPRs
      	specially.  Use VARRAY_PUSH_TREE.  Create a BLOCK for the
      	parameters of the inlined function.
      	(optimize_function): Prevent recursion into partially complete
      	functions.
      
      From-SVN: r30781
      Mark Mitchell committed
    • cp-tree.def (SCOPE_STMT): Take one operand. · 5a586e50
      	* cp-tree.def (SCOPE_STMT): Take one operand.
      	* cp-tree.h (SCOPE_STMT_BLOCK): New macro.
      	(SCOPE_NULLIFIED_P): Redefine.
      	(SCOPE_NO_CLEANUPS_P): New macro.
      	(add_scope_stmt): Change prototype.
      	* decl.c (poplevel): Tidy.  Warn about unused variables here.
      	Record SCOPE_STMT_BLOCKs.
      	(finish_function): Keep DECL_INITIAL for functions that might be
      	inlined.
      	* ir.texi: Document SCOPE_NO_CLEANUPS_P.
      	* semantics.c: Include rtl.h.
      	(add_scope_stmt): Return the new scope statement and, for an
      	end-of-scope statement, its matching begin statement.  Don't set
      	SCOPE_NULLIFIED_P.
      	(do_pushlevel): Simplify, now that we are always
      	function-at-a-time.
      	(do_poplevel): Likewise.  Record SCOPE_STMT_BLOCKs.
      	(expand_stmt): Don't call expand_start_bindings or
      	expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set.
      	* tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting
      	SCOPE_NULLIFIED_P.
      	* Makefile.in (semantics.o): Depend on RTL_H.
      
      From-SVN: r30780
      Mark Mitchell committed
    • cp-tree.def (SCOPE_STMT): Take one operand. · d9b2d9da
      	* cp-tree.def (SCOPE_STMT): Take one operand.
      	* cp-tree.h (SCOPE_STMT_BLOCK): New macro.
      	(SCOPE_NULLIFIED_P): Redefine.
      	(SCOPE_NO_CLEANUPS_P): New macro.
      	(add_scope_stmt): Change prototype.
      	* decl.c (poplevel): Tidy.  Warn about unused variables here.
      	Record SCOPE_STMT_BLOCKs.
      	(finish_function): Keep DECL_INITIAL for functions that might be
      	inlined.
      	* ir.texi: Document SCOPE_NO_CLEANUPS_P.
      	* semantics.c: Include rtl.h.
      	(add_scope_stmt): Return the new scope statement and, for an
      	end-of-scope statement, its matching begin statement.  Don't set
      	SCOPE_NULLIFIED_P.
      	(do_pushlevel): Simplify, now that we are always
      	function-at-a-time.
      	(do_poplevel): Likewise.  Record SCOPE_STMT_BLOCKs.
      	(expand_stmt): Don't call expand_start_bindings or
      	expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set.
      	* tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting
      	SCOPE_NULLIFIED_P.
      
      From-SVN: r30779
      Mark Mitchell committed
    • decl2.c (pending_statics_used): Make it a macro. · 2c0f17dc
      	* decl2.c (pending_statics_used): Make it a macro.
      	(saved_inlines_used): Likewise.
      	(finish_static_data_member_decl): Use VARRAY_PUSH_TREE.
      	(mark_inline_for_output): Likewise.
      	(ssdf_decls_used): Remove.
      	(start_static_storage_duration_function): Use VARRAY_PUSH_TREE.
      	(generate_ctor_or_dtor_function): Adjust accordingly.
      
      From-SVN: r30778
      Mark Mitchell committed
    • varray.h (varray_head_tag): Add elements_used. · a6873608
      	* varray.h (varray_head_tag): Add elements_used.
      	(VARRAY_PUSH): New macro.
      	(VARRAY_POP): Likewise.
      	(VARRAY_TOP): Likewise.
      	Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
      	types.
      	* varray.c (varray_init): Initialize elements_used.
      	* Makefile.in (BASIC_BLOCK_H): Add varray.h.
      	(INTEGRATE_H): New variable.
      	(integrate.o): Depend on INTEGRATE_H.
      	(unroll.o): Likewise.
      
      From-SVN: r30777
      Mark Mitchell committed
    • function.h (insert_block_after_note): Declare. · 4ce89364
      	* function.h (insert_block_after_note): Declare.
      	* function.c (insert_block_after_note): Split out from ...
      	(retrofit_block): ... here.
      
      From-SVN: r30776
      Mark Mitchell committed
    • * stmt.c (expand_fixup): Fix typo in comment. · 12f61228
      From-SVN: r30775
      Mark Mitchell committed
  2. 04 Dec, 1999 4 commits
    • regmove.c (copy_src_to_dest): Remove loop_depth parameter. · 1b7c4a37
      	* regmove.c (copy_src_to_dest): Remove loop_depth parameter.
      	(optimize_reg_copy_1): Remove REG_N_REFS updating code.
      	(optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
      	(regmove_optimize, fixup_match_1): Likewise.
      
      From-SVN: r30774
      Jan Hubicka committed
    • flow.c (flow_loops_dump): Add missing argument when calling flow_loop_nested_p. · b760c4b1
      	* flow.c (flow_loops_dump): Add missing argument when calling
      	flow_loop_nested_p.
      
      From-SVN: r30773
      Michael Hayes committed
    • Daily bump. · 0de2d85c
      From-SVN: r30772
      Jeff Law committed
    • c-common.c (enum attrs): Add A_NO_LIMIT_STACK. · a157febd
      * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
      (init_attributes): Add A_NO_LIMIT_STACK.
      (decl_attributes): Handle A_NO_LIMIT_STACK.
      * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
      * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
      Handle stack bounds checking.
      * flags.h (flag_stack_check): Use the word 'probe' rather than
      'check', because the flag doesn't actually cause any checking to
      be done.
      * function.c (expand_function_start): Set
      current_function_limit_stack.
      * function.h (struct function): Add limit_stack.
      (current_function_limit_stack): Define.
      * invoke.texi (Code Gen Options): Document new options.
      * rtl.h: Declare stack_limit_rtx.
      * toplev.c (stack_limit_rtx): New variable.
      (decode_f_option): Handle new options -fstack-limit-register=REG,
      -fstack-limit-symbol=IDENT, -fno-stack-limit.
      (main): Add stack_limit_rtx as GC root.
      * tree.h (DECL_NO_LIMIT_STACK): New macro.
      (struct tree_decl): New member no_limit_stack.
      
      * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
      stack_limit_rtx.
      * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
      (conditional_trap+1): Get new mnemonic correct.
      (conditional_trap+2): New pattern for DImode traps.
      
      * config/m68k/m68k.c (output_function_prologue): Handle
      stack_limit_rtx.
      * config/m68k/m68k.md (trap): New insn.
      (conditional_trap): New insn.
      * md.texi (Standard Names): Document `trap' and
      `conditional_trap'.
      * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
      so a cc0 setter doesn't get emitted at some random place in the
      function.
      
      * config/i960/i960.md (trap): New insn.
      (conditional_trap): New expander.
      (conditional_trap+1, conditional_trap+2): New insns for signed
      and unsigned cases.
      * config/i960/i960.c (i960_function_prologue): Use
      STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
      
      Co-Authored-By: Greg McGary <gkm@gnu.org>
      
      From-SVN: r30771
      Geoff Keating committed
  3. 03 Dec, 1999 7 commits
  4. 02 Dec, 1999 16 commits
  5. 01 Dec, 1999 6 commits
    • i386.md (addsi3_cc): Add "binary_operator_ok" to the condition. · d525dfdf
      	* i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
      	(addsi3_carry): Likewise.
      	(sbbsi3_cc): Add "binary_operator_ok" to the condition.
      	(sbbsi3_carry): Likewise.
      	(mulsi3): Rewrite to expander, ensure that only one operand is memory.
      	(mulhi3): Likewise.
      	(test?i_1): Ensure that only one operand is memory.
      	(conditional move patterns): likewise.
      	(shift and rotate patterns): Rewrite to expander, add
      	"binary_operator_ok" to the condition.
      
      From-SVN: r30747
      Jan Hubicka committed
    • i386.md (QImode patterns): Remove '*' before the 'r' constraints. · 7c6b971d
      	* i386.md (QImode patterns): Remove '*' before the 'r' constraints.
      	* i386.h (procesor_costs): Add movzbl_load field.
      	(HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
      	non-Q registers, accept DImode registers anywhere.
      	(Q_CLASS_P): New.
      	(MEMORY_MOVE_COST): Calculate QImode moves correctly.
      	* i386.c (*_cost): Set value for movxbl_load field.
      
      From-SVN: r30746
      Jan Hubicka committed
    • (addsi): New add to lea splitter. · 1c27d4b2
      
      	* (addsi): New add to lea splitter.
      	(ashlsi): Likewise.
      	(lea to add/shift peep2): New.
      
      From-SVN: r30745
      Jan Hubicka committed
    • elf.h (STARTFILE_SPEC): Add no-crt0. · c45fd7f9
      	* config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
      	* config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
      	* config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
      
      From-SVN: r30744
      Mark Salter committed
    • cp-tree.h (min_tree_cons): Remove. · a09ba2e0
      	* cp-tree.h (min_tree_cons): Remove.
      	(scratch_ovl_cons): Likewise.
      	* decl.c (saveable_obstack): Don't declare.
      	(duplicate_decls): Tweak error-message.
      	(initialize_local_var): Explicitly mark the definition as static.
      	(finish_function): Call permanent_allocation, just so
      	that the middle-end sees the obstacks it expects.
      	(mark_cp_function_context): Likewise.
      	* init.c (build_new): Don't use min_tree_cons.
      	* lex.c (permanent_obstack): Don't declare.
      	(current_obstack, saveable_obstack): Likewise.
      	* spew.c (current_obstack, saveable_obstack): Likewise.
      	* tree.c (current_obstack, saveable_obstack): Likewise.
      	(scratch_ovl_cons): Remove.
      	(build_min_nt): Don't mess with obstacks.
      	(build_min): Likewise.
      	(min_tree_cons): Remove
      	* typeck.c (build_component_ref): Don't use scratch_ovl_cons.
      	(build_x_function_call): Likewise.
      	(build_c_cast): Don't use min_tree_cons.
      
      From-SVN: r30743
      Mark Mitchell committed
    • Undo the last change I've checked in by accident. · eb69a686
      From-SVN: r30742
      Jan Hubicka committed