Commit Graph

5020 Commits

Author SHA1 Message Date
Jan Hubicka 246fd41f2d regclass.c (dump_regclass): New function.
* regclass.c (dump_regclass): New function.
	(regclass): New parameter DUMP, call DUMP_REGCLASS.
	* toplev.c (rest_of_compilation): Opent lreg dump file before regclass,
	pass rtl_dump_file to regclass.
	* rtl.h (regclass): Update prototype.

From-SVN: r30600
1999-11-21 12:33:17 +00:00
Geoff Keating 8b1cb95b76 varasm.c (output_constructor): Solve problem with long long bitfields...
* varasm.c (output_constructor): Solve problem with long long
bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).

From-SVN: r30598
1999-11-21 07:53:01 +00:00
Jan Hubicka 06a964de82 i386.md (neg, [...]): Revmap to use ix86_expand_unary_operator and ix86_unary_operator_ok.
* i386.md (neg, not and abs patterns): Revmap to use
        ix86_expand_unary_operator and ix86_unary_operator_ok.
        (add?f and sub?f expanders): Force operand 1 to register.
        * i386.c (ix86_expand_unary_operator): Rewrite.
        (ix86_unary_operator_ok): Ensure that memory operands
        match real opcode.
        (ix86_binary_operator_ok): Do not allow operand 1 to
        come into memory and operand 0 not.
        (ix86_expand_binary_operator): Ensure that
        src1 is not non-matching memory.

From-SVN: r30597
1999-11-21 01:34:22 +00:00
Jan Hubicka 1ce485ec43 i386.md (negs?2): Rewrite to expanders...
* i386.md (negs?2): Rewrite to expanders, new patterns and splitters
	to support integer registers and memory.
	(abss?2_integer): Likewise.

From-SVN: r30596
1999-11-21 00:04:15 +00:00
Jan Hubicka 8fcaaa8099 i386.h (enum reg_class): Add FLOAT_INT_REGS.
* i386.h (enum reg_class): Add FLOAT_INT_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
	and GENERAL_REGS.
	* i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
	(movsf): Likewise; unify 4th and 5th alternative.
	(pushdf): Likewise.
	(movdf_1): Likewise; rename to movdf_integer.
	(pushxf): Likewise; rename to pushxf_integer; fix output template;
	remove redundant splitter.
	(movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
	(movdf_nointeger): New.
	(movxf_nointeger): New.
	(pushxf_nointeger): New.

From-SVN: r30594
1999-11-19 20:50:36 +00:00
Jan Hubicka f97d9ec377 i386.md (extend?f?f): Split to expander and pattern, refuse two memory operands in patterns.
* i386.md (extend?f?f): Split to expander and pattern, refuse two
	memory operands in patterns.
	(fop*): Refuse two memory operands.

From-SVN: r30593
1999-11-19 20:27:08 +00:00
Jan Hubicka c37d59c3e7 i386.md (ashrsi3_31): Allow cltd when optimizing for size even on !TARGET_USE_CLTD CPUs.
* i386.md (ashrsi3_31): Allow cltd when optimizing for size even
	on !TARGET_USE_CLTD CPUs.

From-SVN: r30592
1999-11-19 20:12:14 +00:00
Diego Novillo 14592a41e8 rtl.texi (mem): Add documentation for alias-set argument to RTX `mem'.
* rtl.texi (mem): Add documentation for alias-set argument
	to RTX `mem'.

From-SVN: r30589
1999-11-19 12:23:37 -05:00
Nathan Sidwell 535233a89f extend.texi: Document C++ restricted pointers and references.
* extend.texi: Document C++ restricted pointers and references.

	* cp-tree.h (grok_method_quals): Return this pointer qualifiers.
	* decl.c (grokdeclarator): Adjust calls to grok_method_quals.
	* decl2.c (grok_method_quals): Accept `restrict' as applying to
	the object pointer. Return such qualifiers.
	(grokclassfn): Apply this pointer qualifiers. Cleanup unused
	variables.

From-SVN: r30587
1999-11-19 13:03:00 +00:00
Bernd Schmidt 73d65336b7 addr_affects_sp_p now unconditional
From-SVN: r30586
1999-11-19 11:36:25 +00:00
Jan Hubicka 96e7ae40d8 i386.h (struct_processor_costs): New fileds int_load, int_store, fp_move, fp_load and fp_store
* i386.h (struct_processor_costs): New fileds int_load, int_store, fp_move,
	fp_load and fp_store
	(REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
	fp->int moves
	(MEMORY_MOVE_COST): New macro.
	* i386.c (386_cost): Define new fields.
	(i486_cost): Likewise.
	(pentium_cost): Likewise.
	(pentiumpro_cost): Likewise.
	(k6_cost): Likewise.

From-SVN: r30585
1999-11-19 09:12:18 +00:00
Greg McGary b71733d53f m68kelf.h: Suppress '/* within comment' warning.
* config/m68k/m68kelf.h: Suppress '/* within comment' warning.

* config/m68k/m68k.h (MASK_PCREL): Don't use same value as
MASK_ALIGN_INT.

* config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
(TARGET_STRICT_ALIGNMENT): New macro.
(TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
(STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
* invoke.texi (M680x0 Options): Document -mstrict-align.

Co-Authored-By: Geoff Keating <geoffk@cygnus.com>

From-SVN: r30579
1999-11-19 00:23:01 +00:00
Jan Hubicka 2450a05729 i386-protos.h (split_xf, [...]): Remove.
* i386-protos.h (split_xf, ix86_split_movdi): Remove.
        (ix86_split_long_move): Declare.
        * i386.c (split_xf, ix86_split_movdi): Remove.
        (ix86_split_to_parts, ix86_split_long_move): New.
        * i386.md (dimode move splitters): Use ix86_split_long_move.
        (dfmode move splitters): Likewise.
        (xfmode move splitters): Likewise.
        (movsf_1): Allow F->r.
        (movdf_1, movxf_1): Allow F->ro.

Co-Authored-By: Richard Henderson <rth@cygnus.com>

From-SVN: r30578
1999-11-18 11:10:44 -08:00
Mark Mitchell 1e4ceb6f9e except.h (struct eh_entry): Add goto_entry_p.
* except.h (struct eh_entry): Add goto_entry_p.
	(eh_region_from_symbol): Remove prototype.
	* except.c (find_func_region_from_symbol): New function.
	(emit_cleanup_handler): Likewise.
	(eh_region_from_symbol): Make it static.
	(add_new_handler): Verify the argument.
	(find_func_region): Update comment.
	(expand_eh_region_end): Expand handlers here, rater than waiting
	until expand_leftover_cleanups or start_all_catch.
	(expand_leftover_cleanups): Don't expand here.
	(expand_start_all_catch): Or here.
	(expand_rethrow): Check the return value from find_func_region.
	* function.c (expand_function_end): Emit the catch_clauses.

From-SVN: r30576
1999-11-18 17:50:56 +00:00
Gavin Romig-Koch 0e6b2107ca * integrate.c (expand_inline_function): Add necessary check for NULL.
From-SVN: r30575
1999-11-18 15:12:51 +00:00
Nick Clifton bb51178fb1 Fix command line parsing to report unrecognised options.
From-SVN: r30574
1999-11-18 11:01:34 +00:00
Michael Gschwind 5a42589324 basic-block.h (update_life_extent): Remove trailing comma on enumeration type list.
* basic-block.h (update_life_extent): Remove trailing comma on
        enumeration type list.

From-SVN: r30572
1999-11-18 01:00:50 -07:00
Herman A.J. ten Brugge dfb2c079b1 * varasm.c (output_constructor) Solved problem with long long
bitfields. Corrected calculating this_time and shift. Also
        corrected calculating mask when BITS_PER_UNIT == 32 (c4x).

From-SVN: r30571
1999-11-18 00:57:32 -07:00
Jeffrey A Law 9aa137f325 flow.c (split_edge): Take looping structure into account when determining where to put the new block...
* flow.c (split_edge): Take looping structure into account when
	determining where to put the new block note.

From-SVN: r30567
1999-11-17 23:45:55 -07:00
Jeff Holcomb d7160de971 Makefile.in (ggc-none.o): Provide host specific version if needed.
* Makefile.in (ggc-none.o): Provide host specific version if
        needed.

From-SVN: r30564
1999-11-17 20:52:39 -07:00
Richard Henderson e7a59e04e7 cse.c (delete_trivially_dead_insns): Identify no-op insns containing subregs too.
* cse.c (delete_trivially_dead_insns): Identify no-op insns
        containing subregs too.

From-SVN: r30563
1999-11-17 16:52:07 -08:00
Diego Novillo 919509ceea invoke.texi: Add documentation for -muninit-const-in-rodata.
* invoke.texi: Add documentation for -muninit-const-in-rodata.
	* config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
	(TARGET_UNINIT_CONST_IN_RODATA): Define.
	(text_section): Add switches -munint-const-in-rodata and
	-mno-uninit-const-in-rodata.
	(ASM_OUTPUT_COMMON): Remove.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
	const objects should be placed in read-only data. Otherwise declare
	them in common.

From-SVN: r30562
1999-11-17 19:41:13 -05:00
Richard Henderson d49256bbdf * jump.c (jump_optimize_1): Revert last change.
From-SVN: r30561
1999-11-17 16:39:00 -08:00
Richard Henderson bc6c134e71 jump.c (jump_optimize_1): Don't try to duplicate the loop exit test if optimizing for size.
* jump.c (jump_optimize_1): Don't try to duplicate the loop exit
        test if optimizing for size.

From-SVN: r30559
1999-11-17 15:28:50 -08:00
Mark Mitchell fc99263b01 Makefile.in (toplev.o): Depend on except.h.
* Makefile.in (toplev.o): Depend on except.h.
	(dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.

From-SVN: r30556
1999-11-17 18:13:01 +00:00
Jan Hubicka 40745eecaf i386.md (divmodsi4): Rewrite to expander.
Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
	* i386.md (divmodsi4): Rewrite to expander.
	(*divmodsi4_nocltd): New.
	(*divmodsi4_cltd): New.
	(divmodsi4 splitter): Handle the case when input comes in edx.
	(udivmodhi4): Do not use constraints in exander.
	(ashrsi3_31): Conditionize by TARGET_USE_CLTD.

From-SVN: r30555
1999-11-17 17:39:18 +00:00
Jason Merrill 75e3fbdfe8 dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1 for the common case.
* dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
	for the common case.

From-SVN: r30554
1999-11-17 12:29:36 -05:00
Jakub Jelinek 4dc07bd7c1 explow.c (hard_function_value): Add outgoing argument.
* explow.c (hard_function_value): Add outgoing argument.
        * expr.h (hard_function_value): Declare it.
        * calls.c (expand_call, emit_library_call_value): Update callers.
        * function.c (aggregate_value_p): Ditto.
        (diddle_return_value): Must look at the outgoing registers
        on archs with register windows.

From-SVN: r30550
1999-11-16 09:43:40 -08:00
Richard Henderson 63408827c4 ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long for printing.
* ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
        for printing.
        * ggc.h (struct ggc_statistics): Rearrange elements for better
        packing on 64-bit hosts.
        * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
        (compute_nearerout): Likewise.

From-SVN: r30547
1999-11-15 20:55:19 -08:00
Richard Henderson 1344f8d5d0 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
From-SVN: r30546
1999-11-15 20:51:28 -08:00
Richard Henderson d4b15af97b alpha.c (alpha_build_va_list): Use make_lang_type and initialize TYPE_NAME for the va_list record.
* alpha.c (alpha_build_va_list): Use make_lang_type and
        initialize TYPE_NAME for the va_list record.

From-SVN: r30545
1999-11-15 20:47:55 -08:00
Geoff Keating a38d360d6b rs6000.c (first_reg_to_save): Save PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
* config/rs6000/rs6000.c (first_reg_to_save): Save
PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.

From-SVN: r30542
1999-11-16 03:40:16 +00:00
Jason Merrill 348bb3c7ed dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table notion of nesting to find the DIE for a type...
* dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
        notion of nesting to find the DIE for a type or function.
        DIEs can go in limbo even if we got a context_die.
        (push_decl_scope): Our context doesn't need to be in decl_scope_table.
        (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
        for local type.
        (gen_decl_die): Ignore NAMESPACE_DECLs for now.
        (gen_type_die): Writing out the context doesn't cause member class
        template instantiations to be written out as well.

From-SVN: r30540
1999-11-15 19:13:51 -05:00
Richard Henderson 290ad3550b rs6000.h (ASM_OUTPUT_DEF): New.
* rs6000.h (ASM_OUTPUT_DEF): New.
        Based on proposed addition from David Edelsohn.

From-SVN: r30539
1999-11-15 15:40:14 -08:00
Robert Lipe 86765ca02c SVR5 Byteorder fixes
Co-Authored-By: Bruce Korb <autogen@linuxbox.com>

From-SVN: r30538
1999-11-15 14:47:53 +00:00
David O'Brien e1459ff820 configure.in: Handle libgcc2 threads support on FreeBSD platforms.
* configure.in: Handle libgcc2 threads support on FreeBSD platforms.
        * configure: Rebuilt.
        * config/t-freebsd-thread: New file.

From-SVN: r30537
1999-11-15 02:11:42 -07:00
Jeffrey A Law 329e1d019a i386.c (ix86_decompose_address): Verify the base is a REG before trying to examine its register number.
* i386.c (ix86_decompose_address): Verify the base is a REG
        before trying to examine its register number.

From-SVN: r30536
1999-11-15 02:06:12 -07:00
Jeffrey A Law 6b8cf0c57c basic-block.h: Remove all #defines and prototypes related to integer lists.
* basic-block.h: Remove all #defines and prototypes related to
        integer lists.
        (free_bb_mem, compute_preds_succs): Remove prototype.
        * rtl.h (free_bb_mem): Remove prototype.
        * flow.c (alloc_int_list_node); Remove function.
        (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
        (compute_preds_succs, free_bb_mem): Likewise.
        * gcse.c (gcse_main): Do not call free_bb_mem anymore.
        * toplev.c (rest_of_compilation): Likewise.
        * haifa-sched.c (build_control_flow): Use flow generated edge
        list to build the haifa specific edge list.
        (find_rgns): Use new CFG data structures instead of pred/succ lists.
        (schedule_insns): Do not build pred/succ lists anymore.  Instead
        build the edge table.

From-SVN: r30531
1999-11-15 01:12:29 -07:00
Jeffrey A Law 38e90e6c3b basic-block.h (dump_bb_data): Remove declaration.
* basic-block.h (dump_bb_data): Remove declaration.
        * flow.c (dump_bb_data): Remove function.
        * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
        (sbitmap_union_of_predsucc): Likewise.

From-SVN: r30530
1999-11-15 00:01:22 -07:00
Jeffrey A Law b71a2ff8fc gcse.c (delete_null_pointer_checks_1): Kill unused s_preds argument.
* gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
        argument.  All callers changed.
        (delete_null_pointer_checks_1): No longer need to compute the
        pred/succ lists.

From-SVN: r30529
1999-11-14 23:18:36 -07:00
Jeffrey A Law 89e606c966 gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
* gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
        All callers changed.
        (pre_expr_reaches_here_p_work): Likewise.
        (pre_edge_insert): No longer call pre_expr_reaches_here_p.
        * lcm.c (compute_laterin): Fix initialization of LATER.
        (compute_nearerout): Similarly for NEARER.

From-SVN: r30528
1999-11-14 23:12:50 -07:00
Bernd Schmidt ef835bb0c3 Delete two unused functions
From-SVN: r30526
1999-11-14 11:45:55 +00:00
Jeffrey A Law 2cfcc23e7f function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as needed.
* function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
        needed.

From-SVN: r30519
1999-11-12 20:54:56 -07:00
Michael Hayes 3db377a9b3 defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro definition in do while (0).
* defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
 	definition in do while (0).

From-SVN: r30516
1999-11-13 03:22:26 +00:00
Jim Wilson 2f985ca642 Fix another gcc2 merge problem: fix switch statement ISO C conformancs bug
Fix another gcc2 merge problem: fix switch statement ISO C conformancs bug
	* stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.

From-SVN: r30515
1999-11-12 17:04:19 -08:00
Richard Henderson 1953b2a3b1 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
From-SVN: r30513
1999-11-12 12:44:13 -08:00
Vladimir Makarov bcf783f48c i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
	(FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
	(ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
	(INITIAL_FRAME_POINTER_OFFSET): Remove it.

	* i960.c (i960_function_prologue): Don't allocate space for g8-g11
 	saved on the stack.  Output more accurate stack frame statistics
	into assembler file.

From-SVN: r30511
1999-11-12 20:26:29 +00:00
Zack Weinberg 8ad1aa564d genextract.c (record_insn_name): New function.
1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>

	* genextract.c (record_insn_name): New function.
	(get_insn_name): No longer a stub.
	(main): Call record_insn_name for each insn.  After each label
	written, print the insn name in a comment.

From-SVN: r30509
1999-11-12 19:48:14 +00:00
Kaveh R. Ghazi 4dc94be730 output.h (const_section, [...]): Add prototypes.
* output.h (const_section, init_section, fini_section): Add
        prototypes.

        * alpha/elf.h (const_section): Delete declaration.

        * svr4.h (const_section): Likewise.

From-SVN: r30506
1999-11-12 18:47:03 +00:00
Mark Mitchell d26f8097a3 tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
* tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
	* tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
	(unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
	expressions.
	* stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
	variable-sized array bounds.

From-SVN: r30503
1999-11-12 16:52:08 +00:00