Commit Graph

27487 Commits

Author SHA1 Message Date
Jeffrey A Law 7905cfefe1 loop.c (check_dbra_loop): Make change from July 17...
* loop.c (check_dbra_loop): Make change from July 17, 2000 work
        on targets which need more than one insn for a compare/cbranch
        operation.

From-SVN: r35404
2000-07-31 22:19:47 -06:00
Jeffrey A Law 68c8d8ce93 20000731-2.c: New test.
* gcc-c-torture/execute/20000731-2.c: New test.
Fix will be applied shortly...

From-SVN: r35403
2000-07-31 22:11:57 -06:00
Jim Wilson f9f45ccb5f Adjust structure parameter passing to match ABI change.
* config/ia64/ia64.c (ia64_function_arg): Use alignment not size
	when computing offset.

From-SVN: r35401
2000-07-31 20:22:53 -07:00
Denis Chertykov 003661ddec * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
From-SVN: r35400
2000-07-31 21:16:19 -06:00
Jeffrey A Law 929a66d220 20000731-1.c: New test.
* gcc.c-torture/execute/20000731-1.c: New test.
        * gcc.c-torture/execute/20000731-1.x: Expected to fail for i?86-*-*.

From-SVN: r35399
2000-07-31 21:14:49 -06:00
Kazu Hirata 663522cbde * combine.c: Fix formatting.
From-SVN: r35398
2000-07-31 21:11:55 -06:00
Kazu Hirata c127c1274f * h8300.md: Fix formatting.
From-SVN: r35397
2000-07-31 21:05:52 -06:00
Geoff Keating 1868b43959 flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end data...
* flow.c (clear_log_links): Nuke global_live_at_start and
global_live_at_end data, since if the log_links stuff is invalid
so is global_live_at_*.

From-SVN: r35396
2000-08-01 01:27:45 +00:00
Richard Henderson 45e84bd9d1 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
From-SVN: r35395
2000-07-31 17:07:43 -07:00
Zack Weinberg 6ead1e9971 [multiple changes]
2000-07-31  Jakub Jelinek  <jakub@redhat.com>

	* cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
	(_cpp_get_token): Don't macro expand a just pasted token if it
	was pasted at no_expand_level.

	* testsuite/gcc.dg/cpp/paste7.c: New test.

2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>

	* cppmacro.c (find_param, count_params, save_expansion):
	Permit 'defined' as a macro parameter name.

From-SVN: r35394
2000-07-31 23:47:19 +00:00
Zack Weinberg ed39843b41 Oops - this went with the previous change set
From-SVN: r35393
2000-07-31 23:39:08 +00:00
Jason Merrill ab4fa7ed31 * lang-specs.h: Use %i in rule for .ii files.
From-SVN: r35392
2000-07-31 17:00:36 -04:00
Jakub Jelinek 42eb567d5c * gcc.dg/cpp/20000725-1.c: New test.
From-SVN: r35391
2000-07-31 21:51:10 +02:00
Zack Weinberg 4871239e64 Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and xcpp to cpp throughout.
* Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
	xcpp to cpp throughout.
	(native): Remove unnecessary dependency on cpp.

	* gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
	tradcpp to tradcpp0.
	(.i spec): Add missing output-file spec to cc1 command line.

	* ch/lang-specs.h, cp/lang-specs.h, f/lang-specs.h,
	objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.

From-SVN: r35389
2000-07-31 18:29:58 +00:00
Zack Weinberg 5f1240b6ba c90-digraph-1.c: Restore { dg-do run } marker.
* gcc.dg/c90-digraph-1.c: Restore { dg-do run } marker.
	* gcc.dg/noncompile/990416-1.c: Do not expect an implicit-
	declaration warning for __builtin_dwarf_reg_size.

From-SVN: r35387
2000-07-31 18:19:28 +00:00
Zack Weinberg 111458f1bf c-decl.c (mesg_implicit_function_declaration): Init to -1.
* c-decl.c (mesg_implicit_function_declaration): Init to -1.
	(implicit_decl_warning): New function.
	(implicitly_declare): Use it.
	* c-typeck.c (build_external_ref): Use implicit_decl_warning
	to complain about implicit decls of builtins.

	* c-lang.c (lang_init): Set mesg_implicit_function_declaration
	based on pedantic && flag_isoc99, if not already set.
	* c-tree.h: Declare mesg_implicit_function_declaration.
	Prototype implicit_decl_warning.

	* gcc.dg/c99-impl-decl-1.c: No longer XFAIL.

From-SVN: r35385
2000-07-31 18:10:31 +00:00
Jeffrey D. Oldham cdbca1727c Makefile.in (ssa.o): Updated header files in dependences.
* Makefile.in (ssa.o): Updated header files in dependences.
	* basic-block.h: Added compute_immediate_postdominators declaration.
	* config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
	definition.
	* flow.c (compute_immediate_dominators): Updated comment.
	(compute_immediate_postdominators): Added definition.
	* rtl.h (HARD_REGISTER_P): Added definition.
	* ssa.c: Include additional header files.
	(assert): Added definition.
	(ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
	include select hard registers.
	(ssa_rename_to_insert): Likewise.
	(ssa_rename_from_initialize): Likewise.
	(ssa_rename_from_lookup): Likewise.
	(original_register): Likewise.
	(ssa_rename_from_insert): Added to reimplement ssa_rename_from to
	include select hard reigsters.
	(ssa_rename_from_traverse): Likewise.
	(ssa_rename_from_free): Likewise.
	(ssa_rename_from_print): Likewise.
	(ssa_rename_from_print_1): Likewise.
	(ssa_rename_from_hash_function): Likewise.
	(ssa_rename_from_equal): Likewise.
	(ssa_rename_from_delete): Likewise.
	(simplify_to_immediate_dominators): Removed in favor of
	flow.c:compute_immediate_dominators.
	(find_evaluations_1): Modified to work with hard registers.
	(insert_phi_node): Likewise.
	(insert_phi_nodes): Likewise.
	(struct rename_set_data): Updated prev_reg comment.
	(create_delayed_rename): Modified to work with hard registers.
	(RENAME_NO_RTX): Updated comment.
	(apply_delayed_renames): Modified to work with hard registers.
	(rename_insn_1): Likewise and added handling of CLOBBER rtls.
	(rename_block): Updated to use revised ssa_rename_to interface.
	(rename_registers): Updated to use revised ssa_rename_to and
	ssa_rename_from interface.
	(convert_to_ssa): Revised to use compute_immediate_dominators and
	deal with hard registers.
	(make_regs_equivalent_over_bad_edges): Modified to work with hard
	registers.  Added check for illegal unification of hard register.
	(make_equivalent_phi_alternatives_equivalent): Modified to work
	with hard registers.
	(compute_conservative_reg_partition): Likewise.
	(coalesce_if_unconflicting): Modified to work with hard registers
	and check for conflicting hard registers.
	(mark_phi_and_copy_regs): Revised loop to work only on pseudo
	registers.
	(rename_equivalent_regs_in_insn): Modified to work with hard
	registers.
	(record_canonical_element_1): Added definition.
	(check_hard_regs_in_partition): Added definition.
	(convert_from_ssa): Added data structure deallocation and check
	for illegal hard register unification.
	(conflict_hard_regs_p): Added definition.
	* toplev.c (rest_of_compilation): Added comment.

From-SVN: r35384
2000-07-31 17:33:28 +00:00
Anthony Green ca47b73994 crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
2000-07-30  Anthony Green  <green@redhat.com>

        * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.

From-SVN: r35383
2000-07-31 17:23:25 +00:00
Jason McMullan 9d53e58583 builtins.c (expand_builtin_apply): Don't defer pop during argument setup.
* builtins.c (expand_builtin_apply): Don't defer pop during
        argument setup.

From-SVN: r35382
2000-07-31 09:37:34 -07:00
Herman A.J. ten Brugge e079dcdb68 calls.c (combine_pending_stack_adjustment_and_call): Only use preferred_unit_stack_boundary when it is > 1.
* calls.c (combine_pending_stack_adjustment_and_call): Only use
        preferred_unit_stack_boundary when it is > 1.

From-SVN: r35381
2000-07-31 08:04:41 -06:00
Joseph Myers 980d86e9b4 c-common.c (init_function_format_info): Add C99 format functions in C99 mode.
* c-common.c (init_function_format_info): Add C99 format functions
	in C99 mode.

From-SVN: r35380
2000-07-31 08:00:34 -06:00
Casper Dik 9c08f7e6be * Makefile.in: Remove naked "^L".
From-SVN: r35379
2000-07-31 07:58:51 -06:00
Kazu Hirata 64e3a41371 * local-alloc.c: Fix formatting.
From-SVN: r35378
2000-07-31 07:57:02 -06:00
Joseph Myers bbe65572cd c-decl.c (get_parm_info): Don't treat 'const void'...
* c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
	void' or 'register void' as being the special case of 'void' alone
	in a parameter list.

From-SVN: r35377
2000-07-31 07:11:39 -06:00
Joseph Myers b0c4bfae21 * gcc.dg/noncompile/voidparam-1.c: New test.
From-SVN: r35376
2000-07-31 07:10:37 -06:00
Kazu Hirata b5eaf9ba59 h8300.c (get_shift_alg): Remove the variable alg.
* h8300.c (get_shift_alg): Remove the variable alg.
        (emit_a_shift): Rearrange code to improve readability.

        * h8300.md (movsi_h8300hs): Rearrange code to improve readability.

From-SVN: r35375
2000-07-31 07:08:11 -06:00
Joseph Myers 6fffb55cd7 c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for discarding qualifiers into a plain warning.
* c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
        discarding qualifiers into a plain warning.

From-SVN: r35374
2000-07-31 07:01:23 -06:00
Jeff Law c30d43bf62 Rotate out 6 more months of ChangeLog entries.
From-SVN: r35373
2000-07-31 06:59:37 -06:00
Kazu Hirata 184ef18e6a h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all architectures and a...
* h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
        HImode on all architectures and a combination of HImode and SImode
        on H8/300H and H8/S.

From-SVN: r35372
2000-07-31 06:51:11 -06:00
Kazu Hirata 9492393e34 * h8300.c (split_adds_subs): Rearrange code for conciseness.
From-SVN: r35371
2000-07-31 06:44:28 -06:00
Jan Hubicka 91f9a498c4 i386.md (addsi to lea splitter, [...]): Fix bugs in my last checkin.
* i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
	in my last checkin.

From-SVN: r35370
2000-07-31 10:30:44 +00:00
Jan Hubicka e7adb6fbb7 recog.c (extract_insn): Set operand_mode according to operand if match_operand is VOIDmode.
* recog.c (extract_insn): Set operand_mode according to
	operand if match_operand is VOIDmode.

From-SVN: r35369
2000-07-31 08:42:26 +00:00
Jan Hubicka 22251f806b * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
From-SVN: r35368
2000-07-31 08:37:30 +00:00
Geoff Keating fbddce27a7 c-parse.in (extdefs): Call ggc_collect between external definitions.
* c-parse.in (extdefs): Call ggc_collect between external
definitions.

From-SVN: r35367
2000-07-31 08:28:01 +00:00
Jeff Law c47fef6e2e Daily bump.
From-SVN: r35366
2000-07-31 01:45:07 -06:00
Mark Mitchell 911a71a729 Allow indirect primary bases.
* 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-31 00:24:44 +00:00
Jan Hubicka abe24fb317 Fix bug in my last checkin.
From-SVN: r35359
2000-07-31 00:06:48 +00:00
Richard Henderson 5527bf14a5 Makefile.in (OBJS): Add doloop.o.
* 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-30 16:58:03 -07:00
Richard Henderson 1cf0acdd19 c90-digraph-1.c: Don't xfail.
* 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-30 16:54:59 -07:00
Richard Henderson a4cad54432 genattrtab.c (struct insn_def): Add lineno member.
* 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-30 16:38:26 -07:00
Alex Samuel 722bed0f9c mangle.c (DECL_TEMPLATE_ID_P): Remove.
* 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 23:37:04 +00:00
Richard Henderson 3a8c5c77d5 * flow.c (init_propagate_block_info): Use pc_set.
From-SVN: r35353
2000-07-30 16:05:52 -07:00
Jan Hubicka 587870645c * i386.md (*lea_general_[123]) New insns and splits.
(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-30 18:59:56 +00:00
Jan Hubicka 8acb2f2414 recog.c (general_operand, [...]): Accept any mode for VOIDmode CONSTANT_P operands.
* recog.c (general_operand, nonimmediate_operand): Accept
	any mode for VOIDmode CONSTANT_P operands.

From-SVN: r35350
2000-07-30 18:53:33 +00:00
Jan Hubicka e251e2a27f gcse.c (try_replace_reg): Use validate_replace_rtx_subexp instead of 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-30 18:44:13 +00:00
Jan Hubicka e8dc6d5074 combine.c (simplify_set, [...]): Use full mask instead of GET_MODE_MASK (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 18:40:12 +00:00
Jan Hubicka 4921989511 * combine.c (if_then_else_cond): Be sure that mode fits in HOST_WIDE_INT
From-SVN: r35347
2000-07-30 18:35:53 +00:00
Jan Hubicka 25af74a0a7 combine.c (record_promoted_value): Allow bitsize of mode to be equivalent to 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-30 18:30:05 +00:00
Jan Hubicka dbab7b72b5 function.c (assign_stack_local_1, [...]): Do not call gen_mode_alignment 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 18:26:46 +00:00
Jan Hubicka 0ca90ba6b4 * loop.c (express_from_1): Fix call of simplify_gen_binary.
From-SVN: r35344
2000-07-30 18:23:54 +00:00