aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2000-05-26decl2.c (grokclassfn): Set DECL_LANGUAGE here.Mark Mitchell4-3/+25
* decl2.c (grokclassfn): Set DECL_LANGUAGE here. * method.c (implicitly_declare_fn): Not here. From-SVN: r34194
2000-05-26flow.c (find_label_refs): New function.Richard Earnshaw2-5/+61
* flow.c (find_label_refs): New function. (find_basic_blocks_1): Call it for each alternative of a call placeholder. From-SVN: r34193
2000-05-26ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC of get_pc.Richard Earnshaw2-1/+6
* ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC of get_pc. From-SVN: r34192
2000-05-26cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...Nathan Sidwell4-18/+37
* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... (CPTI_PTMD_DESC_TYPE): ... here. (ptmd_desc_type_node): Rename to ... (ptm_desc_type_node): ... here. * decl.c: Likewise. * rtti.c (ptmd_initializer): Rename to ... (ptm_initializer): ... here. (sythesize_tinfo_var): Adjust. Deal with pointer to member function. (create_tinfo_types): Adjust. From-SVN: r34190
2000-05-26Daily bump.Jeff Law2-2/+2
From-SVN: r34189
2000-05-26alpha.c (alpha_comparison_operator): Don't be so strict about DImode.Richard Henderson3-23/+164
* config/alpha/alpha.c (alpha_comparison_operator): Don't be so strict about DImode. (alpha_swapped_comparison_operator): Likewise. * config/alpha/alpha.md (*setne_internal): Name it. Allow any integer output mode. (*setcc_internal): Likewise. (*setcc_swapped_internal): Likewise. (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them. (*mov[qhs]icc_internal): New. (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New. From-SVN: r34188
2000-05-26vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.J. David Anglin2-1/+5
2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca> * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified. From-SVN: r34187
2000-05-25bb-reorder.c (reorder_block_def): Reorder elements for size.Richard Henderson4-549/+586
* bb-reorder.c (reorder_block_def): Reorder elements for size. Remove add_jump; add next; replace flags with visited. (rbd_init): Remove. (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove. (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove. (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove. (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove. (RBI): New. (reorder_index, reorder_last_visited): Remove. (skip_insns_after_block): Rewrite to use a switch. (get_common_dest): Remove. (chain_reorder_blocks): Remove. (record_effective_endpoints): Split out from reorder_basic_blocks. (make_reorder_chain): Likewise. Loop until all blocks are placed. (make_reorder_chain_1): Renamed from old make_reorder_chain. Only construct the reorder chain, do not move insns. Try harder to tail recurse. (label_for_bb, emit_jump_to_block_after): New. (fixup_reorder_chain): Use them. Do bulk block movement. Examine and adjust the jump insns appropriately. Fixup basic_block_info. (verify_insn_chain): Always define. (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko in allocation size. (make_new_scope): Don't write zeros to calloc'd space. (build_scope_forest): Rely on xrealloc to DTRT. (reorder_basic_blocks): Don't build loop nest. Don't fail if profile_arc_flag. Streamline EH test. * flow.c (redirect_edge_succ, redirect_edge_pred): New. * basic-block.h: Declare them. From-SVN: r34186
2000-05-26* gcc.c-torture/compile/20000523-1.c: New test.Alexandre Oliva2-0/+9
From-SVN: r34185
2000-05-26emit-rtl.c (reset_used_decls): New function.Alexandre Oliva2-1/+27
* emit-rtl.c (reset_used_decls): New function. (unshare_all_rtl_again): Call it. From-SVN: r34184
2000-05-26cpplex.c (maybe_macroexpand): Warn about function-like macros used in ↵Zack Weinberg3-0/+25
non-function context, if -Wtraditional. * cpplex.c (maybe_macroexpand): Warn about function-like macros used in non-function context, if -Wtraditional. From-SVN: r34183
2000-05-26re GNATS gcj/162 (gcj does not initialize interfaces according to spec)Tom Tromey3-4/+7
* parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC when trying to see if field's class should be initialized. Always initialize field's declaring class, not qualified class. For PR gcj/162. From-SVN: r34182
2000-05-26re GNATS gcj/235 (source parser dies when Primitive.TYPE is used in an array ↵Tom Tromey3-2/+8
declaration) * parse.y (array_constructor_check_entry): Pass `wfl_value', not `wfl_operator', to maybe_build_primttype_type_ref. Fixes PR gcj/235. From-SVN: r34181
2000-05-25* recog.c (peephole2_optimize): Use INSN_P.Mark Mitchell2-1/+5
From-SVN: r34180
2000-05-25ifcvt.c (seq_contains_jump): New.Richard Henderson2-0/+37
* 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
2000-05-25except.h (can_throw): Declare it.Mark Mitchell4-4/+20
* 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
2000-05-25Finish implementation of VTTs.Mark Mitchell13-70/+403
* 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
2000-05-25* flow.c (mark_set_1): Don't record conditionally dead memory.Richard Henderson2-0/+6
From-SVN: r34176
2000-05-25combine.c (try_combine): Use any_condjump_p...Jan Hubicka14-54/+80
* 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
2000-05-25rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move to STRING case.David Edelsohn4-21/+44
* 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
2000-05-25* g++.old-deja/g++.abi/ptrflags.C: Use __pbase_type_info.Nathan Sidwell2-2/+6
From-SVN: r34172
2000-05-25Jan Hubicka <jh@suse.cz>Jan Hubicka4-102/+125
* 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
2000-05-25* stmt.c (expand_end_bindings): Fix thinko last change.Richard Henderson2-1/+5
From-SVN: r34170
2000-05-25except.c (func_eh_entry): Add emitted field.Andrew MacLeod19-663/+3022
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
2000-05-25cxxabi.h (__pbase_type_info): Define, based on __pointer_type_info.Nathan Sidwell3-66/+105
* 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
2000-05-25catch11.C: New test.Nathan Sidwell3-0/+131
* g++.old-deja/g++.eh/catch11.C: New test. * g++.old-deja/g++.eh/catch12.C: New test. From-SVN: r34164
2000-05-25tinfo.h (__user_type_info::contained_virtual_p): New predicate.Nathan Sidwell3-2/+24
* 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
2000-05-25Daily bump.Jeff Law2-2/+2
From-SVN: r34159
2000-05-24recog.c (offsettable_address_p): If mode size is zero, assume BIGGEST_ALIGNMENT.Richard Henderson2-2/+15
* recog.c (offsettable_address_p): If mode size is zero, assume BIGGEST_ALIGNMENT. From-SVN: r34158
2000-05-24configure.in: Check for -Wno-long-long option support and improve handling ↵J. David Anglin4-198/+237
of warning CFLAGS... * 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
2000-05-24Fix minor goofs pointed out by Stan.Jeff Law1-6/+5
From-SVN: r34155
2000-05-24Forgot to commit.Jeff Law1-0/+5
From-SVN: r34154
2000-05-25* loop.c (basic_induction_var): Avoid double recording of an increment.J"orn Rennecke2-1/+11
From-SVN: r34153
2000-05-24gcc.texi: Remove contributor list.Jeff Law2-184/+681
* gcc.texi: Remove contributor list. Instead include contrib.texi. * contrib.texi: New file. From-SVN: r34152
2000-05-25revert: loop.h (struct induction): Add multi_insn_incr.J"orn Rennecke3-53/+30
* 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
2000-05-25rtl.h (loc_mentioned_in_p): Declare.J"orn Rennecke5-31/+51
* 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
2000-05-24stmt.c (expand_end_bindings): Look through NOTEs to find a BARRIER.Jason Merrill2-2/+13
* stmt.c (expand_end_bindings): Look through NOTEs to find a BARRIER. From-SVN: r34149
2000-05-24newJason Merrill1-0/+14
From-SVN: r34148
2000-05-24cp-tree.h (build_delete): Change prototype.Mark Mitchell6-115/+96
* cp-tree.h (build_delete): Change prototype. (build_vec_delete): Likewise. * call.c (build_scoped_method_call): Use special_function_kind values to indicate the kind of destruction to be done. (build_method_call): Likewise. * decl.c (finish_destructor_body): Likewise. (maybe_build_cleanup_1): Likewise. Rename to ... (maybe_build_cleanup): ... this. * decl2.c (delete_sanity): Use special_function_kind values to indicate the kind of destruction to be done. (build_cleanup): Likewise. * init.c (perform_member_init): Likewise. (build_vec_delete_1): Likewise. (build_dtor_call): Simplify. (build_delete): Use special_function_kind values to indicate the kind of destruction to be done. (build_vbase_delete): Likewise. (build_vec_delete): Likewise. From-SVN: r34147
2000-05-24calls.c (expand_call): Handle cleanups in tail-recursion arguments ↵Mark Mitchell3-3/+33
analagously to cleanups in sibling... * calls.c (expand_call): Handle cleanups in tail-recursion arguments analagously to cleanups in sibling calls. From-SVN: r34143
2000-05-24simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.Kaveh R. Ghazi2-10/+15
* simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND. All callers changed. From-SVN: r34141
2000-05-24expr.c (expand_assignment, [...]): Set in_check_memory_usage while emitting ↵Alexandre Oliva2-0/+18
chkr_check_addr libcall. * expr.c (expand_assignment, store_expr, expand_expr, expand_expr_unaligned): Set in_check_memory_usage while emitting chkr_check_addr libcall. From-SVN: r34140
2000-05-24Make g++ struct packing attribute sensitive to -fpack-struct, as per docnDonald Lindsay2-0/+6
From-SVN: r34139
2000-05-24ignore test if targets 'long long' is less than 64 bitsNick Clifton1-0/+3
From-SVN: r34138
2000-05-24new test caseNick Clifton2-0/+23
From-SVN: r34136
2000-05-24(extract_muldiv): When constructing a multiplier/divisor...Nick Clifton2-0/+10
(extract_muldiv): When constructing a multiplier/divisor, do not expect const_binop to correctly determine if overflow has occured, so check explicitly. From-SVN: r34135
2000-05-24init.c (sort_member_init): Fix typo in error message generation code.Mark Mitchell2-1/+7
* init.c (sort_member_init): Fix typo in error message generation code. From-SVN: r34134
2000-05-24Document the c_fix typesBruce Korb1-42/+75
From-SVN: r34133
2000-05-24Update new-abi upcast algorithm.Nathan Sidwell3-57/+64
* inc/cxxabi.h (__class_type_info::__do_upcast): Change prototype and meaning of return value. (__si_class_type_info::__do_upcast): Likewise. (__vmi_class_type_info::__do_upcast): Likewise. * tinfo.cc (__class_type_info::__upcast_result): Replace whole2dst with part2dst. Adjust ctor. (__class_type_info::__do_upcast): Adjust call of worker function. (__class_type_info::__do_upcast): Adjust. (__si_class_type_info::__do_upcast): Adjust. Use parent's __do_upcast. (__vmi_class_type_info::__do_upcast): Likewise. Fix private virtual base in diamond heirarchy bug. From-SVN: r34132
2000-05-24c-decl.c (build_enumerator): Don't modify the value's type, convert it.Alexandre Oliva2-2/+6
* c-decl.c (build_enumerator): Don't modify the value's type, convert it. From-SVN: r34131