1. 27 May, 2000 5 commits
    • 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 17 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
    • except.c (func_eh_entry): Add emitted field. · ce152ef8
      2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
                  Andrew Haley  <aph@cygnus.com>
      
      	* except.c  (func_eh_entry): Add emitted field.
      	(new_eh_region_entry): Set emitted field to 0;
      	(output_exception_table_entry): Only emit previously un-emitted data,
      	and send it to the eh_data section.
      	(output_exception_table): Break out common parts. Output
      	exception table for entire compilation unit to eh_data section.
      	(output_exception_table_data): Common parts of output_exception_table.
      	Send output to eh_data section.
      	(output_function_exception_table): Output exception table data for
      	a single function to eh_data section.
      	(free_exception_table): New external to free the table.
      	* except.h (free_exception_table): Add prototype.
      	(output_function_exception_table): Add prototype.
      	* final.c (final_end_function): Output function exception table
      	for IA64_UNWIND_INFO.
      	(final_scan_insn): Emit any unwind directives for an insn.
      
      	* frame-dwarf2.c: New file containing all DWARF 2 specific code
      	from frame.c.
      	* frame.c: Remove all DWARF 2 specific code.
      	* config/ia64/frame-ia64.c: New file.
      	(gthread_stuff): Make all gthread available with
      	IA64_UNWIND_INFO.
      	(dwarf_fde): Define an IA64 struct for dwarf_fde.
      	(__register_frame_info, __register_frame): Move to common area of file.
      	(__register_frame_info_table, __register_frame_table): Move to common i
      	area.
      	(__deregister_frame_info, __deregister_frame): Move to common area.
      	(__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
      	(read_uleb128): New version for ia64.
      	(get_unwind_record): Read the next IA-64 unwind record.
      	(read_R_record): Read a region header record.
      	(process_a_b_reg_code): X record helper.
      	(read_X_record): Read an X format record.
      	(read_B_record): Read a B format record.
      	(P3_record_types): List of record types matching the P3 format.
      	(P7_record_types): List of record types matching the P7 format.
      	(P8_record_types): List of record types matching the P8 format.
      	(read_P_record): Read a P format record.
      	(init_ia64_reg_loc): Set default fields for a register.
      	(init_ia64_unwind_frame): Set defaults for all register records.
      	(execute_one_ia64_descriptor): Execute one descriptor record.
      	(rse_address_add): Calculate the position of a local reg in memory.
      	(normalize_reg_loc): Turn a location descriptor into a memory address.
      	(maybe_normalize_reg_loc): Only normalize a descriptor if it falls
      	within a specified PC offset range.
      	(get_real_reg_value): Given a register location, retrieve its value.
      	(set_real_reg_value): Change the value of a register location.
      	(copy_reg_value): Copy reg values, if needed.
      	(copy_saved_reg_state): Copy all registers that need to be copied.
      	(process_state_between): Normalize all frame register records that
      	fall within the specified PC range.
      	(frame_translate): Take a processed frame description, and turn
      	everything into addresses.
      	(build_ia64_frame_state ): Find and create frame state record for a PC.
      	(get_personality): Get the personality routine for a given frame.
      	(get_except_table): Get the exception table for a given frame.
      	(record_name): Unwind record names for debugging.
      	(print_record): Print and unwind record.
      	(print_all_records): Print an entire unwind image.
      	(__ia64_backtrace): Print a backtrace.
      	(ia64_backtrace_helper): New function.
      	(__register_frame_info_aux): New function.
      	* config/ia64/crtend.asm (__do_frame_setup_aux): New function.
      
      	* frame.h (enum unw_record_type): New unwind record types.
      	(struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
      	(struct unw_r_record, unwind_record): New unwind record structs.
      	(struct unwind_info_ptr): Unwind information layout.
      	(IA64_UNW_LOC_TYPE_*): Macros for different types for location
      	descriptors.
      	(struct ia64_reg_loc): Register location description.
      	(struct ia64_frame_state): Location of all registers in a frame.
      	(struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
      	* libgcc2.c (__ia64_personality_v1): Personality routine.
      	(__calc_caller_bsp): Calculate the bsp register for the caller's
      	frame.
      	(ia64_throw_helper): Figure out who to return to and set up the
      	registers.
      	(__throw): Throw routine.
      
      	* output.h (assemble_eh_align, assemble_eh_label): New functions
      	to generate EH info where we want it.
      	(assemble_eh_integer): New function.
      	* toplev.c (compile_file): Output module level exception table for
      	non-ia64 targets.
      	(main): Set exceptions_via_longjump and flag_new_exceptions based
      	on IA64_UNWIND_INFO too.
      
      	* varasm.c (assemble_eh_label): Generate a label via
      	ASM_OUTPUT_EH_LABEL if it has been specified.
      	(assemble_eh_align): Generate an alignment directive via
      	ASM_OUTPUT_EH_ALIGN if it has been specified.
      	(assemble_eh_label): Generate an integer value via
      	ASM_OUTPUT_EH_type if they have been specified.
      	* config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
      	(ia64_init_builtins): Add __builtin_ia64_bsp
      	and __builtin_ia64_flushrs.
      	(ia64_expand_builtin): Add IA64_BUILTIN_BSP and
      	IA64_BUILTIN_FLUSHRS.
      	* config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
      	IA64_BUILTIN_FLUSHRS.
      
      	* config/ia64/ia64.md (flushrs): New insn to flush the register
      	stack.  Add to unspec list.
      
      	* config/ia64/crtbegin.asm (frame_object): Change size.
      	(__do_frame_setup_aux): New function.
      	* config/ia64/crtend.asm: call __do_frame_setup_aux.
      	* config/ia64/t-ia64 (LIB2ADDEH): Add.
      	* Makefile.in (LIB2ADDEH): Add.
      	(LIB2ADD): Use LIB2ADDEH.
      
      Co-Authored-By: Andrew Haley <aph@cygnus.com>
      
      From-SVN: r34169
      Andrew MacLeod committed
    • inclosure: Change to... · c66265e4
      
      2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>
      
      	* inclosure: Change to...
      	* mkinclosure: This.
      	Fix paths to bash.
      	* mkcshadow: Fix paths to bash.
      
      	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
      	* src/Makefile.in: Regnerate.
      	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
      	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
      	* aclocal.m4: Regenerate.
      	* mkcheck.in (INC_PATH): Tweak.
      
      	* configure.in: Enable long long by default.
      	* configure: Regenerate.
      
      	* mkcheck.in (LIB_PATH): Revert.
      
      From-SVN: r34168
      Benjamin Kosnik committed
    • inclosure: Change to... · 39e09fba
      
      2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>
      
      	* inclosure: Change to...
      	* mkinclosure: This.
      	Fix paths to bash.
      	* mkcshadow: Fix paths to bash.
      
      	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
      	* src/Makefile.in: Regnerate.
      	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
      	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
      	* aclocal.m4: Regenerate.
      	* mkcheck.in (INC_PATH): Tweak.
      
      	* configure.in: Enable long long by default.
      	* configure: Regenerate.
      
      	* mkcheck.in (LIB_PATH): Revert.
      
      From-SVN: r34167
      Benjamin Kosnik committed
    • inclosure: Change to... · 5b80666b
      
      2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>
      
      	* inclosure: Change to...
      	* mkinclosure: This.
      	Fix paths to bash.
      	* mkcshadow: Fix paths to bash.
      
      	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
      	* src/Makefile.in: Regnerate.
      	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
      	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
      	* aclocal.m4: Regenerate.
      
      	* configure.in: Enable long long by default.
      	* configure: Regenerate.
      
      	* mkcheck.in (LIB_PATH): Revert.
      
      From-SVN: r34166
      Benjamin Kosnik committed
    • cxxabi.h (__pbase_type_info): Define, based on __pointer_type_info. · e65d7eac
      	* inc/cxxabi.h (__pbase_type_info): Define, based on
      	__pointer_type_info.
      	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
      	(__pointer_to_member_type_info): Likewise.
      	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
      	(__pointer_to_member_type_info::__is_pointer_p): Remove.
      	(__pointer_type_info::__do_catch): Rename to ...
      	(__pbase_type_info::__do_catch): ... here. Adjust.
      	(__pbase_type_info::__pointer_catch): Implement.
      	(__pointer_type_info::__pointer_catch): Adjust.
      	(__pointer_to_member_type_info::__pointer_catch): Adjust.
      
      From-SVN: r34165
      Nathan Sidwell committed
    • catch11.C: New test. · bebc2c61
      	* g++.old-deja/g++.eh/catch11.C: New test.
      	* g++.old-deja/g++.eh/catch12.C: New test.
      
      From-SVN: r34164
      Nathan Sidwell committed