1. 27 May, 2000 11 commits
    • * Make-lang.in (cplib2.ready): Eradicate. · 0e7f0e65
      From-SVN: r34210
      Zack Weinberg committed
    • alpha.c (hard_fp_register_operand): Mind the mode. · d2c6a1b6
              * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
              (hard_int_register_operand): New.
              * config/alpha/alpha-protos.h: Declare it.
              * config/alpha/alpha.h (PREDICATE_CODES): Update.
              * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
              as needed; use peep2_reg_dead_p instead of dead_or_set_p.
      
      From-SVN: r34209
      Richard Henderson committed
    • Makefile.in (recog.o): Don't depend on resource.h. · 23280139
      	* Makefile.in (recog.o): Don't depend on resource.h.
      	* recog.c: Don't include resource.h.
      	(recog_last_allowed_insn): Remove.
      	(recog_next_insn): Remove.
      	(struct peep2_insn_data): New.
      	(peep2_insn_data, peep2_current): New.
      	(peep2_next_insn): New.
      	(peep2_regno_dead_p, peep2_reg_dead_p): New.
      	(peep2_find_free_register): New.
      	(peephole2_optimize): Track life information by insn as we go.
      	* recog.h: Update declarations.
      	* resource.c (find_free_register, reg_dead_p): Remove.
      	* resource.h: Remove their declarations.
      	* toplev.c: Include hard-reg-set.h before recog.h.
      
      	* genconfig.c (max_insns_per_peep2): New.
      	(gen_peephole2): New.
      	(main): Call it.
      	* genemit.c (output_peephole2_scratches): Generate calls to
      	peep2_find_free_register; adjust surrounding code.
      	(main): Have insn-emit.c include hard-reg-set.h before recog.h.
      	* genrecog.c (change_state): Don't track last_insn.
      	(write_action): Write into *_pmatch_len before accepting.
      	(write_tree): Adjust peephole2_insns and subroutines to match.
      
      	* config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
      
      From-SVN: r34208
      Richard Henderson committed
    • function.c (thread_prologue_epilogue_insns): Don't move the line note at the head of the chain. · 30196c1f
              * function.c (thread_prologue_epilogue_insns): Don't move the
              line note at the head of the chain.  Only force a lineno note
              before the end of block 0.
      
      From-SVN: r34207
      Richard Henderson committed
    • gensupport.c (collect_insn_data): Record the maximum number of alternatives, not the last seen. · 892ecf92
              * gensupport.c (collect_insn_data): Record the maximum number
              of alternatives, not the last seen.
      
      From-SVN: r34206
      Richard Henderson committed
    • genoutput.c: Don't include errors.h. · d96a2fcd
              * genoutput.c: Don't include errors.h.
              (struct data): Add lineno member.
              (have_error): New.
              (scan_operands): Use message_with_line instead of error.
              (validate_insn_alternatives): Likewise.
              (gen_insn): Accept and store the pattern's line number.
              (gen_peephole, gen_expand, gen_split): Likewise.
              (main): Don't set progname.  Pass line_no to gen_foo.
      
      From-SVN: r34205
      Richard Henderson committed
    • d30v.c (d30v_print_operand): Handle ':'. · 5401747e
              * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
              * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
              * config/d30v/d30v.md (attr predicable): New.
              (all insn patterns): Mark non-predicable patterns; use %: on the rest.
              (andsi3*): Unify into one pattern.
              (iorsi3*, xorsi3*): Likewise.
              (peephole2 patterns): Use peep2_reg_dead_p; verify not a
              conditional return.
              (old cond_exec patterns): Remove.
              (define_cond_exec): New.
      
      From-SVN: r34204
      Richard Henderson committed
    • tree.h (TREE_CODE_LENGTH): New macro. · 8d5e6e25
      	* tree.h (TREE_CODE_LENGTH): New macro.
      	* c-common.c (c_find_base_decl): Use it.
      	* expr.c (safe_from_p): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* tree.c (make_node, copy_node, get_identifier): Likewie.
      	(first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
      	(build, build_nt, build_parse_node, simple_cst_equal): Likewise.
      	* fold-const.c (make_range): Likewise.
      	(fold): Likewise; also use first_rtl_op.
      	* c-iterate.c (collect_iterators): Use first_rtl_op.
      	* calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
      	Use IS_EXPR_CODE_CLASS.
      	(preexpand_calls): Likewise.
      	* ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
      	and TREE_CODE_LENGTH.
      	* stmt.c (warn_if_unused_value): If no operands, no unused value.
      	* ch/lang.c (deep_const_expr): Use first_rtl_op.
      	* ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH.
      	* cp/method.c (mangle_expression): Use TREE_CODE_LENGTH.
      	* cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
      	(built_min, cp_tree_equal): Likewise.
      
      From-SVN: r34203
      Richard Kenner committed
    • Daily bump. · 0777f60c
      From-SVN: r34202
      Jeff Law committed
    • rs6000.md (movsi_internal1): Use '%a1' rather than '%1(%*)'. · aee86b38
      * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
      than '%1(%*)'.
      (movdi_internal64): Likewise.
      
      From-SVN: r34201
      Geoff Keating committed
    • rs6000.md: Correct order of operands for DImode boolean patterns. · 1d328b19
      * config/rs6000/rs6000.md: Correct order of operands for DImode
      boolean patterns.
      
      * config/rs6000/rs6000.c (boolean_or_operator): New function.
      * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
      * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
      * config/rs6000/rs6000.md: Use boolean_or_operator instead of
      boolean_operator for the boolean patterns without NOTs.
      
      * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
      from reg_or_u_cint_operand.  Change comment and behaviour.
      (logical_operand): Clean up, add assertion.
      (non_logical_cint_operand): Also check for
      reg_or_logical_cint_operand.
      * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
      * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
      in the expander.
      (xorsi3): Likewise.
      (iordi3): Likewise.
      (xordi3): Likewise.
      
      From-SVN: r34200
      Geoff Keating committed
  2. 26 May, 2000 18 commits
  3. 25 May, 2000 11 commits
    • * recog.c (peephole2_optimize): Use INSN_P. · 88741818
      From-SVN: r34180
      Mark Mitchell committed
    • ifcvt.c (seq_contains_jump): New. · 4e4017cb
              * ifcvt.c (seq_contains_jump): New.
              (noce_try_store_flag_constants): Use it to fail conversion.
              (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
      
      From-SVN: r34179
      Richard Henderson committed
    • except.h (can_throw): Declare it. · 0519ce30
      	* except.h (can_throw): Declare it.
      	* except.c (can_throw): Give it external linkage.
      	* resource.c (find_dead_or_set_registers): Use can_throw.
      
      From-SVN: r34178
      Mark Mitchell committed
    • Finish implementation of VTTs. · 3ec6bad3
      	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
      	CPTI_VTT_PARM_IDENTIFIER.
      	(vtt_parm_identifier): New macro.
      	(vtt_parm_type): Likewise.
      	(BINFO_SUBVTT_INDEX): Likewise.
      	(BINFO_VPTR_INDEX): Likewise.
      	(struct lang_decl): Add vtt_parm.
      	(DECL_VTT_PARM): New macro.
      	(DECL_USE_VTT_PARM): Likewise.
      	(DECL_NEEDS_VTT_PARM_P): Likewise.
      	(get_vtt_name): Declare.
      	(build_artifical_parm): Likewise.
      	(fixup_all_virtual_upcast_offsets): Likewise.
      	(expand_indirect_vtbls_init): Remove.
      	* call.c (build_new_method_call): Pass the vtt to subobject
      	constructors and destructors.
      	* class.c (get_vtt_name): Give it external linkage.
      	(build_clone): Handle the magic VTT parameters for clones.
      	(clone_function_decl): Fix typo in comment.
      	(build_vtt): Keep track of the indices in the VTTs where various
      	entities are stored.
      	(build_vtt_inits): Likewise.
      	(dfs_build_vtt_inits): Likewise.
      	(build_ctor_vtbl_group): Tweak type of construction vtables.
      	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
      	primary bases, when building construction vtables.
      	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
      	(initialize_predefined_identifiers): Add vtt_parm_identifier.
      	(init_decl_processing): Initialize vtt_parm_type.
      	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
      	(lang_mark_tree): Make vtt_parm.
      	* decl2.c (build_artificial_parm): New function.
      	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
      	(grokclassfn): Use build_artificial_parm.
      	* init.c (initialize_vtbl_ptrs): Call
      	fixup_all_virtual_upcast_offsets directly.
      	(perform_member_init): Use the complete subobject destructor for
      	member cleanups.
      	(build_vtbl_address): New function.
      	(expand_virtual_init): Handle VTTs.
      	* optimize (maybe_clone_body): Likewise.
      	* search.c (fixup_all_virtual_upcast_offsets): Give it external
      	linkage.
      	(expand_indirect_vtbls_init): Remove.
      	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
      	* tree.c (make_binfo): Make them bigger.
      
      From-SVN: r34177
      Mark Mitchell committed
    • combine.c (try_combine): Use any_condjump_p... · 7f1c097d
              * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
              and pc_set at the place of simplejump_p and condjump_p.
              * cse.c (record_jump_equiv): Likewise.
              * emit-rtl.c (emit): Likewise.
              * explow.c (find_next_ref): Likewise.
              * flow.c (tidy_fallthru_edge): Likewise.
              (init_propagate_block_info): Likewise.
              * gcse.c (delete_null_pointer_checks): Likewise.
              * ifcvt.c (cond_exec_get_condition, noce_get_condition,
              dead_or_predicable): Likewise.
              * integrate.c (copy_insn_list): Likewise.
              * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
              for_each_insn_in_loop, check_dbra_loop, get_condition,
              insert_bct, load_mems): Likewise.
              * resource.c (find_dead_or_set_registers): Likewise.
              * sibcalls.c (simplejump_p): Likewise.
              * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
      
      From-SVN: r34175
      Jan Hubicka committed
    • rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move to STRING case. · acad7ed3
              * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
              to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
              when unaligned.
              * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
              (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
              (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
              * rs6000.md: Name various internal patterns.
      
      From-SVN: r34174
      David Edelsohn committed
    • Early checkin of footer.html to trigger web checkout. · 1098da33
      From-SVN: r34173
      Phil Edwards committed
    • * g++.old-deja/g++.abi/ptrflags.C: Use __pbase_type_info. · bfc22107
      From-SVN: r34172
      Nathan Sidwell committed
    • Jan Hubicka <jh@suse.cz> · 742dff15
              * jump.c (invert_exp_1): Remove first argument, use pc_set
              to get the expression.
              (redirect_exp): Make static; redirect only the pc_set expression,
              remove first argument.
              (invert_exp): Remove first argument, make static.
              (jump_optimize): Use any_condjump_p, any_uncondjump_p and
              any_onlyjump at most places where we originaly did condjump_p
              and simplejump_p.
              (jump_back_p, follow_jumps, thread_jumps): Likewise.
              (delete_barrier_succesors): Use pc_set.
              (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
              calls of invert_exp and redirect_exp.
              * rtl.h (redirect_exp, invert_exp): Remove.
              * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
      
      From-SVN: r34171
      Jan Hubicka committed