1. 26 May, 2000 7 commits
  2. 25 May, 2000 33 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
    • tinfo.h (__user_type_info::contained_virtual_p): New predicate. · e2e11048
      	* tinfo.h (__user_type_info::contained_virtual_p): New
      	predicate.
      	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
      	shaped heirarchy.
      	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
      	diamond shaped heirarchy. Add early out for mixed diamond and
      	duplicate shaped heirarchy.
      
      From-SVN: r34163
      Nathan Sidwell committed
    • [multiple changes] · bf93f43b
      
      2000-05-24   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>
      
      	* config/cpu/i486: New directory.
      	* config/cpu/i486/bits: New directory.
      	* config/cpu/i486/bits/atomicity.h: New file.
      	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
      	'cmpxchgl' asm.
      	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.
      
      2000-05-24  Loren J. Rittle  <ljrittle@acm.org>
      
              * backward/alloc.h (__default_alloc_template): Only expose
                implementation-specific symbol, if it exists in the
                configuration.
              * backward/iostream.h (ends): Expose symbol.
              * backward/strstream.h: New file.
              * backward/stream.h: New file.
              * backward/ostream.h: New file.
              * backward/istream.h: New file.
              * backward/fstream.h: New file.
              * backward/complex.h: New file.
              * backward/iomanip.h: New file.
      
      	* mkcheck.in (LIB_PATH): Add -R bits.
      
      	* math/carg.c (carg): Replace __atan2 with atan2.
      
      From-SVN: r34162
      Benjamin Kosnik committed
    • alloc.h (__default_alloc_template): Only expose implementation-specific symbol,… · 1601a6a0
      alloc.h (__default_alloc_template): Only expose implementation-specific symbol, if it exists in the configuration.
      
      
      2000-05-24  Loren J. Rittle  <ljrittle@acm.org>
      
              * backward/alloc.h (__default_alloc_template): Only expose
                implementation-specific symbol, if it exists in the
                configuration.
              * backward/iostream.h (ends): Expose symbol.
              * backward/strstream.h: New file.
              * backward/stream.h: New file.
              * backward/ostream.h: New file.
              * backward/istream.h: New file.
              * backward/fstream.h: New file.
              * backward/complex.h: New file.
              * backward/iomanip.h: New file.
      
      	* mkcheck.in (LIB_PATH): Add -R bits.
      
      	* math/carg.c (carg): Replace __atan2 with atan2.
      
      From-SVN: r34161
      Loren J. Rittle committed
    • i486: New directory. · 53601625
      
      2000-05-19   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>
      
      	* config/cpu/i486: New directory.
      	* config/cpu/i486/bits: New directory.
      	* config/cpu/i486/bits/atomicity.h: New file.
      	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
      	'cmpxchgl' asm.
      	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.
      
      From-SVN: r34160
      Nathan C. Myers committed
    • Daily bump. · 3edd645e
      From-SVN: r34159
      Jeff Law committed
    • recog.c (offsettable_address_p): If mode size is zero, assume BIGGEST_ALIGNMENT. · 7bdebc3a
              * recog.c (offsettable_address_p): If mode size is zero, assume
              BIGGEST_ALIGNMENT.
      
      From-SVN: r34158
      Richard Henderson committed
    • Makefile.am (TAGS): Construct. · d94611f1
      
      2000-05-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
      
      	* Makefile.am (TAGS): Construct.
      	* Makefile.in: Rengerate.
      	* src/Makefile.am: Tweak.
      	* src/Makefile.in: Tweak.
      	* configure.in: Tweak.
      
      	* bits/c++config.h: Rename to ...
      	* bits/c++config: This.
      	* mkc++config: Adjust.
      
      From-SVN: r34157
      Benjamin Kosnik committed
    • configure.in: Check for -Wno-long-long option support and improve handling of warning CFLAGS... · ff5def20
              * configure.in: Check for -Wno-long-long option support and improve
              handling of warning CFLAGS for stages 1 and 2.
              * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
              * configure: Regenerate.
      
      From-SVN: r34156
      J. David Anglin committed
    • Fix minor goofs pointed out by Stan. · 9ea551b2
      From-SVN: r34155
      Jeff Law committed
    • Forgot to commit. · c20a2ab1
      From-SVN: r34154
      Jeff Law committed
    • gcc.texi: Remove contributor list. · 73bb9454
              * gcc.texi: Remove contributor list.  Instead include contrib.texi.
              * contrib.texi: New file.
      
      From-SVN: r34152
      Jeff Law committed
    • revert: loop.h (struct induction): Add multi_insn_incr. · 98d1cd45
      	* Back out this patch:
      	Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
                * loop.h (struct induction): Add multi_insn_incr.
                * loop.c (basic_induction_var): New multi_insn_incr argument.
                Set it if we search back through previous insns for the biv.
                (record_biv): New multi_insn_incr argument; fill in struct induction.
                (strength_reduce): Discard an iv with multiple bivs, any of
                which require multiple insns to increment.
      
      	* loop.c (check_insn_for_bivs): Remove bits copied from above patch.
      
      From-SVN: r34151
      J"orn Rennecke committed
    • rtl.h (loc_mentioned_in_p): Declare. · db7ba742
      	* rtl.h (loc_mentioned_in_p): Declare.
      	* reload.c (loc_mentioned_in_p): Moved from here...
      	* rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
      	Fix loop increment for 'E' handling.
      	* loop.c (strength_reduce): When doing biv->giv conversion,
      	take multi-insn biv increments into account.
      
      From-SVN: r34150
      J"orn Rennecke committed
    • stmt.c (expand_end_bindings): Look through NOTEs to find a BARRIER. · 04da69d3
              * stmt.c (expand_end_bindings): Look through NOTEs to find a
              BARRIER.
      
      From-SVN: r34149
      Jason Merrill committed
    • new · 392b6316
      From-SVN: r34148
      Jason Merrill committed