aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2000-07-31Allow indirect primary bases.Mark Mitchell6-277/+376
* cp-tree.h (struct lang_type): Remove vfield_parent. Add primary_base. (CLASSTYPE_VFIELD_PARENT): Remove. (CLASSTYPE_PRIMARY_BINFO): Reimplement. (BINFO_PRIMARY_BINFO): Remove. (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. (BINFO_VBASE_PRIMARY_P): Likewise. (BINFO_PRIMARY_BASE_OF): New macro. (BINFO_INDIRECT_PRIMARY_P): Likewise. (get_primary_binfo): New function. * decl.c (lang_mark_tree): Make lang_type::primary_base. * class.c (vcall_offset_data_s): Rename to ... (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, and add ctor_vtbl_p. (get_derived_offset): Use get_primary_binfo. (dfs_mark_primary_bases): Adjust handling of virtual primary bases. (mark_primary_bases): Likewise. (set_primary_base): Take a binfo, not an integer, as a representation of the primary base. (indirect_primary_base_p): Remove. (determine_primary_base): Adjust for indirect primary bases. (dfs_find_final_overrider): Fix typo in coment. (update_vtable_entry_for_fn): Use get_primary_binfo. (layout_nonempty_base_or_field): Tweak. (build_base_fields): Adjust for new primary base semantics. (dfs_propagate_binfo_offsets): Remove. (propagate_binfo_offsets): Rewrite. (dfs_set_offset_for_shared_vbases): Remove. (layout_virtual_bases): Don't use it. (layout_class_type): Set CLASSTYPE_SIZE correctly under the new ABI. (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not CLASSTYPE_VFIELD_PARENT. (dfs_get_primary_binfo): New function. (get_primary_binfo): Likewise. (dump_class_hierarchy_r): Tweak printing of primary bases. (build_vtbl_initializer): Fix typo in comments. Use vtbl_init_data. (build_vcall_and_vbase_vtbl_entries): Likewise. (build_vbaes_offset_vtbl_entries): Likewise. (dfs_build_vcall_offset_vtbl_entries): Adjust setting of BV_VCALL_INDEX to handle indirect primary bases. (build_vcall_offset_vtbl_entries): Use vtbl_init_data. (build_rtti_vtbl_entries): Likewise. * search.c (get_shared_vbase_if_not_primary): Tweak. (find_vbase_instance): Likewise. (binfo_for_vtable): Simplify. * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. (make_binfo): Make it have 11 entries. From-SVN: r35360
2000-07-31Fix bug in my last checkin.Jan Hubicka1-3/+5
From-SVN: r35359
2000-07-30Makefile.in (OBJS): Add doloop.o.Richard Henderson19-512/+1246
* Makefile.in (OBJS): Add doloop.o. * doloop.c: New file. * final.c (insn_current_reference_address): Return 0 before final. * flags.h (flag_branch_on_count_reg): Fix typos in commentary. * jump.c (any_uncondjump_p): Likewise. * loop.c (indirect_jump_in_function): Make static. (strength_reduce): Call doloop_optimize. (insert_bct, instrument_loop_bct): Remove. * loop.h (doloop_optimize): Prototype. * recog.c (split_all_insns): Split all INSN_P. * toplev.c (flag_branch_on_count_reg): Default on. * config/c4x/c4x.c (c4x_optimization_options): Don't set flag_branch_on_count_reg. * config/i386/i386.c (override_options): Likewise. * config/rs6000/rs6000.c (optimization_options): Likewise. * config/i386/i386.md (decrement_and_branch_on_count): Remove. (doloop_end): New. (dbra_ge): Remove, as well as all it's splitters. * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove. (doloop_end): New. * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare. (ia64_register_move_cost): Declare. * config/ia64/ia64.c (ar_lc_reg_operand): New. (struct ia64_frame_info): Add ar_size. (ia64_compute_frame_size): Set it. (save_restore_insns): Save and restore ar.lc. (ia64_register_move_cost): New, moved from header file. Handle application registers. (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers. (emit_insn_group_barriers): Special case doloop_end_internal. (ia64_epilogue_uses): Mark ar.lc live at end. * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers. (AR_EC_REGNUM, AR_PFS_REGNUM): New registers. (FIRST_PSEUDO_REGISTER): Make room. (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New. (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. (REG_ALLOC_ORDER): Update. (HARD_REGNO_MODE_OK): Update. (REGISTER_NAMES): Update. (enum reg_class): Add AR_M_REGS and AR_I_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. (REGNO_REG_CLASS): Update. (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10. (REGISTER_MOVE_COST): Move out of line. (PREDICATE_CODES): Update. * config/ia64/ia64.md (movdi patterns): Handle ar register classes. (addsi3_plus1_alt, adddi3_plus1_alt): New. (shladd_elim splitter): Allow constants in the predicate. (doloop_end, doloop_end_internal): New. From-SVN: r35358
2000-07-30c90-digraph-1.c: Don't xfail.Richard Henderson4-3/+8
* gcc.dg/c90-digraph-1.c: Don't xfail. * gcc.dg/compare2.c (case 10): Xfail. * gcc.dg/noncompile/redecl-1.c: Fix expected error message. From-SVN: r35357
2000-07-30genattrtab.c (struct insn_def): Add lineno member.Richard Henderson1-89/+189
* genattrtab.c (struct insn_def): Add lineno member. (struct insn_ent): Likewise. (struct attr_desc): Likewise. (struct delay_desc): Likewise. (struct function_unit_op): Likewise. (struct function_unit): Likewise. (check_attr_value): Use message_with_line. (check_defs): Likewise. (expand_units): Likewise. (check_attr_test): Take a lineno argument. (gen_attr): Likewise. (gen_insn): Likewise. (gen_delay): Likewise. (gen_unit): Likewise. (main): Give it to them. (convert_set_attr_alternative): Take an insn_def argument instead of num_alt and insn_index. (convert_set_attr): Likewise. (write_test_expr): Protect INSN_ADDRESSES load with INSN_ADDRESSES_SET_P. From-SVN: r35356
2000-07-30mangle.c (DECL_TEMPLATE_ID_P): Remove.Alex Samuel2-65/+131
* mangle.c (DECL_TEMPLATE_ID_P): Remove. (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when ascertaining primaryness. (G): Remove template_args. (decl_is_template_id): New function. (write_encoding): Use decl_is_template_id. (write_name): Likewise. Handle type_decls. Get main variant of type decls. (write_nested_name): Likewise. (write_prefix): Likewise. (write_template_prefix): Likewise. (write_special_name_constructor): Remove defunct production from comment. (write_bare_function_type): Remove comment about absent parameter. (write_template_template_arg): Add missing grammar production to comment. From-SVN: r35355
2000-07-30* flow.c (init_propagate_block_info): Use pc_set.Richard Henderson2-3/+8
From-SVN: r35353
2000-07-30* i386.md (*lea_general_[123]) New insns and splits.Jan Hubicka2-22/+347
(addsi3 to lea splitter): Handle other modes too. (shlsi3 to lea splitter): Likewise. (addhi_1_lea, shlhi_1_lea): New patterns. (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL. From-SVN: r35351
2000-07-30recog.c (general_operand, [...]): Accept any mode for VOIDmode CONSTANT_P ↵Jan Hubicka2-2/+9
operands. * recog.c (general_operand, nonimmediate_operand): Accept any mode for VOIDmode CONSTANT_P operands. From-SVN: r35350
2000-07-30gcse.c (try_replace_reg): Use validate_replace_rtx_subexp instead of ↵Jan Hubicka4-1/+23
replace_rtx. * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp instead of replace_rtx. * recog.c (validate_replace_rtx_subexp): New function. * recog.h (validate_replace_rtx_subexp): Declare. From-SVN: r35349
2000-07-30combine.c (simplify_set, [...]): Use full mask instead of GET_MODE_MASK ↵Jan Hubicka2-6/+12
(mode) as force_to_mode argument. * combine.c (simplify_set, make_extraction, make_compound_operation make_field_assignment): Use full mask instead of GET_MODE_MASK (mode) as force_to_mode argument. From-SVN: r35348
2000-07-30* combine.c (if_then_else_cond): Be sure that mode fits in HOST_WIDE_INTJan Hubicka2-5/+12
From-SVN: r35347
2000-07-30combine.c (record_promoted_value): Allow bitsize of mode to be equivalent to ↵Jan Hubicka2-1/+6
HOST_BITS_PER_WISE_INT. * combine.c (record_promoted_value): Allow bitsize of mode to be equivalent to HOST_BITS_PER_WISE_INT. From-SVN: r35346
2000-07-30function.c (assign_stack_local_1, [...]): Do not call gen_mode_alignment ↵Jan Hubicka2-2/+9
when mode is BLKmode. * function.c (assign_stack_local_1, assign_stack_temp_for_type): Do not call gen_mode_alignment when mode is BLKmode. From-SVN: r35345
2000-07-30* loop.c (express_from_1): Fix call of simplify_gen_binary.Jan Hubicka2-1/+5
From-SVN: r35344
2000-07-30simplify-rtx.c (simplify_relational_operation): Verify that mode == VOIDmode ↵Jan Hubicka3-3/+23
implies both operands to be VOIDmode. * simplify-rtx.c (simplify_relational_operation): Verify that mode == VOIDmode implies both operands to be VOIDmode. (simplify_ternary_operation): Compute properly the mode of comparison. * combine.c (combine_simplify_rtx): Likewise. From-SVN: r35343
2000-07-30basic-block.h (struct loops): New field rc_order.Michael Hayes3-12/+49
* basic-block.h (struct loops): New field rc_order. * flow.c (flow_loops_cfg_dump): Dump rc_order if computed. (flow_loops_free): Free rc_order. (flow_depth_first_order_compute): New parameter rc_order. (flow_loops_find): Allocate rc_order and swap usage with dfs_order. From-SVN: r35342
2000-07-30c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.Herman A.J. ten Brugge5-224/+202
* config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue. (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise. (nodb_call, return_from_epilogue): Likewise. (return_from_interrupt_epilogue, prologue, epilogue): Likewise. * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add. * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add. (c4x_expand_prologue, c4x_expand_epilogue): Likewise. (c4x_valid_type_attribute_p): Likewise. * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL. Co-Authored-By: Michael Hayes <m.hayes@elec.canterbury.ac.nz> From-SVN: r35341
2000-07-30c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant and ↵Michael Hayes3-162/+382
loadhi_big_constant if applicable. * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant and loadhi_big_constant if applicable. * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak and add new splitter.s From-SVN: r35339
2000-07-30* config/c4x/c4x.c (c4x_rptb_insert): Make more robust.Michael Hayes2-7/+23
From-SVN: r35338
2000-07-30* config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.Michael Hayes2-1/+5
From-SVN: r35337
2000-07-30* config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.Michael Hayes2-7/+17
From-SVN: r35336
2000-07-30* config/c4x/libgcc.S: (divqf3): Improve accuracy.Michael Hayes2-10/+19
From-SVN: r35335
2000-07-30Daily bump.Jeff Law2-2/+2
From-SVN: r35334
2000-07-30Added to test Objective-C strings.Ovidiu Predescu2-0/+16
From-SVN: r35333
2000-07-29Revert previous checkin.Mark Mitchell3-22/+19
From-SVN: r35331
2000-07-29Makefile.in: Generate objc parser along with the C parser.Mark Mitchell3-19/+43
* Makefile.in: Generate objc parser along with the C parser. * objc/Make-lang.in: Remove generation of objc parser. From-SVN: r35330
2000-07-29configure.in (mips*-*-linux*): Use mips*el to check for little endian MIPS, ↵Andreas Jaeger4-111/+121
add tmake_file. * configure.in (mips*-*-linux*): Use mips*el to check for little endian MIPS, add tmake_file. * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux. (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1. Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>. From-SVN: r35328
2000-07-29Daily bump.Jeff Law2-2/+2
From-SVN: r35327
2000-07-28ia64.c (ia64_print_operand): Fix typos.Richard Henderson2-3/+8
* config/ia64/ia64.c (ia64_print_operand): Fix typos. Sign extend mode size before negating. From-SVN: r35324
2000-07-28cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.Richard Henderson22-331/+670
* cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY. (cse_insn): Likewise. (addr_affects_sp_p): Likewise. * expr.c (move_by_pieces): Likewise. (clear_by_pieces): Likewise. * gcse.c (oprs_unchanged_p): Likewise. * haifa-sched.c (sched_analyze_2): Likewise. * recog.c (offsettable_address_p): Likewise. * regclass.c (record_address_regs): Likewise. * reload.c (find_reusable_reload): Likewise. (push_reload): Likewise. (operands_match_p): Likewise. (decompose): Likewise. (find_reloads_address_1): Likewise. (find_inc_amount): Likewise. * reload1.c (elimination_effects): Likewise. * resource.c (mark_set_resources): Likewise. * flow.c (attempt_auto_inc): New function; mostly broken out of find_auto_inc. (find_auto_inc): Split into two functions and enhanced to generate POST_MODIFY. * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment. * rtl.h (count_all_occurrences): Declare. (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not defined. * rtlanal.c (count_all_occurrences): New function. * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP, HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document. * config/ia64/ia64-protos.h (destination_operand): Declare. * config/ia64/ia64.c (destination_operand): New function. (ia64_print_operand): Handle POST_MODIFY. (rtx_needs_barrier): Likewise. * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1. (HAVE_POST_MODIFY_REG): Define to 1. (MAX_REGS_PER_ADDRESS): Change to 2. (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too. (LEGITIMATE_ADDRESS_REG): New helper macro. (LEGITIMATE_ADDRESS_DISP): Likewise. (PREDICATE_CODES): Add entry for destination_operand. * config/ia64/ia64.md (all mov patterns): Use destination_operand predicate for operand 0. From-SVN: r35321
2000-07-28* emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.Richard Henderson1-0/+1
From-SVN: r35320
2000-07-28dwarf2out.c: Indent #error directive.Kaveh R. Ghazi5-7/+23
* dwarf2out.c: Indent #error directive. * gbl-ctors.h: Fix typo in comment. (__do_global_ctors): Prototype. * gcse.c (record_one_set, pre_delete): Remove unused variables. * rs6000.c (rs6000_maybe_dead): Delete unused prototype. (print_operand): Initialize variable `t'. From-SVN: r35319
2000-07-28removed constraints in expander.Aldy Hernandez2-11/+20
split =rf constraints into =r,f From-SVN: r35318
2000-07-28install.texi (--enable-nls): Change the description of the NLS related ↵Philipp Thomas3-11/+24
configure options to match the... 2000-07-28 Philipp Thomas <pthomas@suse.de> * install.texi (--enable-nls): Change the description of the NLS related configure options to match the current state. (--with-included-gettext): Likewise. (--enable-maintainer-mode): New description added. * extend.texi (-fstrict-prototype): Add missing '.'. From-SVN: r35317
2000-07-28Daily bump.Jeff Law2-2/+2
From-SVN: r35314
2000-07-28class.c (make_class_data): Create vtable for abstract classes.Tom Tromey2-6/+22
2000-07-27 Tom Tromey <tromey@cygnus.com> Anthony Green <green@cygnus.com> Alexandre Petit-Bianco <apbianco@cygnus.com> * class.c (make_class_data): Create vtable for abstract classes. (get_dispatch_table): Changed to cope with abstract classes. Co-Authored-By: Alexandre Petit-Bianco <apbianco@cygnus.com> Co-Authored-By: Anthony Green <green@cygnus.com> From-SVN: r35313
2000-07-28newJason Merrill2-0/+32
From-SVN: r35312
2000-07-28decl.c (duplicate_decls): If common_type produces a non-typedef type for a ↵Jason Merrill5-16/+28
typedef, just use the old type. * decl.c (duplicate_decls): If common_type produces a non-typedef type for a typedef, just use the old type. * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use TYPE_PTRMEMFUNC_P. * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. From-SVN: r35311
2000-07-27Fix dwarf2out abort found while compiling PlumHall on IA-64.Jim Wilson2-1/+10
* dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if DECL_INITIAL (decl) == NULL_TREE. From-SVN: r35310
2000-07-28Makefile.in (INSN_ATTR_H): New macro.Alexandre Oliva16-109/+181
* Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies on insn-attr.h with it. * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length. * insn-addr.h: New header. (insn_addresses_): Renamed from insn_addresses. (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE, INSN_ADDRESSES_NEW): New macros. * genattrtab.c (write_test_expr): Use new macros. * final.c (insn_addresses, init_insn_lengths): Likewise. (align_fuzz, shorten_branches): Likewise. (final): Likewise. Do not reject new insns if their addresses have been added to INSN_ADDRESSES. * config/arm/arm.c, config/avr/avr.c: Use new macros. * config/h8300/h8300.c, config/i370/i370.c: Likewise. * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise. * config/sparc/sparc.c, config/sparc/sparc.md: Likewise. * config/sh/sh.c: Likewise. (output_branchy_insn): Use INSN_ADDRESSES_NEW. From-SVN: r35307
2000-07-28* Makefile.in (bootstrap): Move -BstageN/ back to the beginning.Alexandre Oliva2-7/+11
From-SVN: r35305
2000-07-28gcc.c (struct prefix_list): Add member priority.Andrew Cagney2-54/+78
* gcc.c (struct prefix_list): Add member priority. (enum path_prefix_priority): Declare. (add_prefix): Replace ``first'' with ``priority''. Append new entry but keep list in priority order. (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or PREFIX_PRIORITY_LAST to add_prefix. (process_command): Move include kludge - foo/stageN - to before foo/include. From-SVN: r35304
2000-07-27[multiple changes]Alexandre Petit-Bianco3-17735/+25
2000-07-27 Tom Tromey <tromey@cygnus.com> * parse.y (patch_method_invocation): Don't reverse the argument list when dealing with anonymous class constructors. Fixed typo in comment. 2000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (build_alias_initializer_parameter_list): Reverse crafted list when building aliases for anonymous class constructors. (http://gcc.gnu.org/ml/gcc-patches/2000-07/msg01146.html) From-SVN: r35303
2000-07-27cp-tree.h (function_depth): Declare.Mark Mitchell5-2/+104
* cp-tree.h (function_depth): Declare. (verify_stmt_tree): Likewise. (find_tree): Likewise. * decl.c (function_depth): Give it external linkage. * optimize.c (optimize_function): Increment and decrement it. * tree.c (verify_stmt_tree_r): New function. (verify_stmt_tree): Likewise. (find_tree_r): Likewise. (find_tree): Likewise. From-SVN: r35301
2000-07-27c-decl.c (finish_function): Don't treat 'main' specially unless flag_hosted.Joseph Myers2-1/+9
* c-decl.c (finish_function): Don't treat 'main' specially unless flag_hosted. In C99 mode, return 0 from 'main' unless DEFAULT_MAIN_RETURN is otherwise defined. From-SVN: r35300
2000-07-27* gcc.dg/c99-main-1.c: New test.Joseph Myers2-0/+13
From-SVN: r35299
2000-07-27dwarf2out.c (gen_typedef_die): Abort if we get identical TREE_TYPE and ↵Jason Merrill4-10/+25
DECL_ORIGINAL_TYPE on a typedef. * dwarf2out.c (gen_typedef_die): Abort if we get identical TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef. * typeck.c (common_type): If we're just returning one of our arguments, don't strip typedef types. From-SVN: r35297
2000-07-27Put phi nodes after NOTE_INSN_BASIC_BLOCK.Mark Mitchell6-59/+72
* rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. (get_prev_bb_note): Likewise. (remove_scope_notes): Likewise. * flow.c (commit_one_edge_insertion): Likewise. (merge_blocks_nomove): Likewise. (verify_flow_info): Likewise. * gcse.c (insert_insn_end_bb): Likewise. * reg-stack.c (emit_swap_insn): Likewise. * ssa.c (first_insn_after_basic_block_note): New function. (insert_phi_node): Use it. (rename_block): Likewise. (eliminate_phi): Likewise. (make_regs_equivalent_over_bad_edges): Likewise. (make_equivalent_phi_alternatives_equivalent): Likewise. (for_each_successor_phi): Likewise. (convert_from_ssa): Modify phi-node deletion algorithm. From-SVN: r35296
2000-07-27fini.c (main): Avoid automatic aggregate initialization.Kaveh R. Ghazi3-2/+10
* fini.c (main): Avoid automatic aggregate initialization. * proj.h: Indent #error directive. From-SVN: r35294