Commit Graph

41492 Commits

Author SHA1 Message Date
Stephane Carrez
015a2e5904 m68hc11.md ("negsi2"): Optimize inline case.
* config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
	("neghi2"): Tighten constraints.
	("one_cmplsi2"): Optimize and simplify split.
	* config/m68hc11/larith.asm (__negsi2): Likewise for library.

From-SVN: r50847
2002-03-15 23:22:56 +01:00
Stephane Carrez
cd28557ca2 m68hc11.md ("logicalsi3_zexthi"): Fix constraints and split of AND operation to clear the upper bits.
* config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
	and split of AND operation to clear the upper bits.
	("*logicalsi3_zextqi"): Likewise.
	("*logicallhi3_zexthi_ashift8"): Likewise.
	("*logicalsi3_silshr16"): Likewise.
	("logicalsi3_silshl16"): Likewise.
	("anddi3", "iordi3", "xordi3" splits): Remove constraints.

From-SVN: r50845
2002-03-15 23:13:07 +01:00
Stephane Carrez
932657df23 m68hc11.c (m68hc11_symbolic_p): New function.
* config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
	(m68hc11_indirect_p): New function.
	(m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
	(m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
	TARGET_M6812.
	(asm_print_register): Likewise.
	* config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
	(m68hc11_indirect_p): Declare.
	* config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
	(TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
	(TARGET_SWITCHES): New option -mrelax.
	* config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
	destination.
	("iorsi3", "xorsi3"): Likewise.
	("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
	("*andhi3_mem"): New to handle destination in memory with bclr
	and a scratch register.
	("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
	("*andhi3_const"): New when operand2 is constant.
	("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
	("*andhi3_gen"): Cleanup of the old "andhi3".
	("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
	("xorqi3"): Update constraints.

From-SVN: r50843
2002-03-15 23:04:49 +01:00
Tom Tromey
60f32585da re PR libgcj/5944 (Use of uint32_t breaks libgcj bootstrap on Solaris 2.5.1)
2002-03-15  Tom Tromey  <tromey@redhat.com>
	    Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>

	Fix for PR libgcj/5944.
	* gnu/gcj/io/shs.h: Define uint8_t and uint32_t.

Co-Authored-By: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>

From-SVN: r50842
2002-03-15 21:59:12 +00:00
Stephane Carrez
fdffea1abb m68hc11.c (m68hc11_small_indexed_indirect_p): Look for reg_equiv_memory_loc when the operand is a register that does not get...
* config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
	for reg_equiv_memory_loc when the operand is a register that does
	not get a hard register (stack location).
	(tst_operand): After reload, accept all memory operand.
	(symbolic_memory_operand): Fix detection of symbolic references.
	* config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
	accept symbols and any constant.

From-SVN: r50839
2002-03-15 22:54:58 +01:00
Stephane Carrez
6272bc6859 m68hc11.c (emit_move_after_reload): Add a REG_INC note on the insn that sets the soft frame register.
* config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
	note on the insn that sets the soft frame register.
	(must_parenthesize): ix and iy are also reserved names.
	(print_operand_address): One more place where parenthesis are required
	to avoid confusion with register names.
	(m68hc11_gen_movhi): Allow push of stack pointer.
	(m68hc11_check_z_replacement): Fix handling of parallel with a
	clobber.
	(m68hc11_z_replacement): Must update the REG_INC notes to tell what
	the replacement register is.
	* config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
	and D8_REGS classes.
	(MODES_TIEABLE_P): All modes are tieable except QImode.

From-SVN: r50837
2002-03-15 22:44:49 +01:00
Stephane Carrez
1d2d9def82 larith.asm (___adddi3): Optimize saving of result.
* config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
	(___subdi3): Likewise.
	(__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
	(__map_data_section): Optimize 68hc11 case.

From-SVN: r50835
2002-03-15 22:36:27 +01:00
Stephane Carrez
a0ccf503a8 m68hc11.c (m6812_cost): Make cost of add higher than a shift to avoid adding a register with itself.
* config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
	than a shift to avoid adding a register with itself.
	(m68hc11_memory_move_cost): Take into account NO_REGS.
	(m68hc11_register_move_cost): Update and use memory move cost
	for soft registers.
	(m68hc11_address_cost): Make cost of valid offset not 0 so that
	it gives more opportunities to cse to optimize.
	* config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
	* config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.

From-SVN: r50833
2002-03-15 22:27:01 +01:00
Tom Tromey
45061554e7 Updated THANKS
From-SVN: r50832
2002-03-15 20:52:04 +00:00
Mark Mitchell
6e4ae815bd c-common.c (statement_code_p): Handle CLEANUP_STMT.
* c-common.c (statement_code_p): Handle CLEANUP_STMT.
	* c-common.def (CLEANUP_STMT): New tree node.
	* c-common.h (CLEANUP_DECL): New macro.
	(CLEANUP_EXPR): Likewise.
	* c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
	* tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
	* tree-inline.c (initialize_inlined_parameters): Clean up
	new local variables.

	* cp-tree.h (CLEANUP_DECL): Remove.
	(CLEANUP_EXPR): Likewise.
	* decl.c (destroy_local_var): Simplify.
	(maybe_build_cleanup): Tidy.
	* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
	* semantics.c (cp_expand_stmt): Likewise.
	* cp/tree.c (cp_statement_code_p): Likewise.

	* g++.dg/opt/dtor1.C: New test.

From-SVN: r50830
2002-03-15 20:08:39 +00:00
Eric Blake
08bcc159d9 For PR java/5902:
2002-03-15  Eric Blake  <ebb9@email.byu.edu>

	For PR java/5902:
	* libjava.compile/PR5902.java: Does not need to execute.
	For PR java/5913:
	* libjava.compile/PR5913.java: Ditto.

From-SVN: r50829
2002-03-15 19:17:39 +00:00
Jakub Jelinek
a42519bebd re PR bootstrap/4128 (Bootstrap on solaris2.7 fails compiling libf2c/libF77/l_gt.c)
PR bootstrap/4128
	* config/sparc/sparc.c (gen_v9_scc): Move early clobber test
	before movrXX only, use reg_overlap_mentioned_p.
	Only special case NE if just one insn can be generated.

	* gcc.c-torture/compile/20020315-1.c: New test.

From-SVN: r50826
2002-03-15 19:51:36 +01:00
Jason Merrill
1540944868 varasm.c (assemble_variable): Call resolve_unique_section before checking DECL_SECTION_NAME.
* varasm.c (assemble_variable): Call resolve_unique_section before
        checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
        of error_mark_node.

From-SVN: r50824
2002-03-15 13:44:14 -05:00
Richard Earnshaw
32135a8c0c * gcc.dg/weak-1.c: Fix scan tests.
From-SVN: r50821
2002-03-15 18:32:37 +00:00
Jason Merrill
6da794e835 re PR c++/5857 (C++ duplicate_decls shouldn't use common_type)
PR c++/5857
        * decl.c (duplicate_decls): Use merge_types instead of common_type.
        * typeck.c (common_type): Just hand off to
        type_after_usual_arithmetic_conversions and
        composite_pointer_type.
        (merge_types): New fn.
        (commonparms): Use it instead of common_type.
        (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
        (composite_pointer_type): Also handle attributes.
        * cp-tree.h: Declare merge_types.

From-SVN: r50820
2002-03-15 13:31:55 -05:00
Anthony Green
b3b77addd0 Remove useless mingw32 configury
From-SVN: r50819
2002-03-15 18:16:34 +00:00
Anthony Green
e2ea015c1c Install libgcj-config.h in a better place.
From-SVN: r50817
2002-03-15 18:03:49 +00:00
Anthony Green
512e32d289 Address mingw32 issues.
From-SVN: r50816
2002-03-15 18:01:38 +00:00
Anthony Green
8d39b4476f Fix gcj -R.
From-SVN: r50815
2002-03-15 18:00:22 +00:00
Richard Earnshaw
3a4edb4417 re PR target/5170 (Supicious code in arm.md)
PR target/5170
* arm.md (split pattern for thumb shiftable immediates): Add comment
explaining non-obvious test.

From-SVN: r50814
2002-03-15 17:06:58 +00:00
Richard Earnshaw
32defa36b0 re PR target/5712 ([ARM] bad ADR generated)
PR target/5712
* arm.md (movaddr, movaddr_insn): Delete.

From-SVN: r50809
2002-03-15 16:32:26 +00:00
Paolo Carlini
53723190aa 2002-03-15 Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/collate_members_char.cc
	(test01): compare the result of collate::compare with
	that of collate::transform + string::compare, not with
	that of collate::transform + collate::compare.
	(test01): values returned by collate::compare are
	normalized, therefore test against +-1.
	* testsuite/22_locale/collate_members_wchar_t.cc: Ditto.

From-SVN: r50808
2002-03-15 16:05:56 +00:00
Jason Merrill
190f491640 relocate tests to appropriate directories
From-SVN: r50806
2002-03-15 06:07:04 -05:00
Jason Merrill
81a60e6ca0 add comments
From-SVN: r50805
2002-03-15 05:18:21 -05:00
Jason Merrill
98ef4163bc fix comment typo
From-SVN: r50804
2002-03-15 05:17:16 -05:00
Jason Merrill
5cc90635da toplev.c (wrapup_global_declarations): Clarify variable handling.
* toplev.c (wrapup_global_declarations): Clarify variable handling.
        -fkeep-static-consts doesn't apply to comdats.

cp/
        * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
        variables.
        * decl2.c (maybe_make_one_only): Also mark the decl as needed.

From-SVN: r50802
2002-03-15 04:54:42 -05:00
GCC Administrator
0f9b56dcb2 Daily bump.
From-SVN: r50801
2002-03-15 08:17:02 +00:00
Richard Henderson
ecb0eecefb c-decl.c: Include c-pragma.h.
* c-decl.c: Include c-pragma.h.
        (start_decl, start_function): Invoke maybe_apply_pragma_weak.
        (finish_function): Tidy.
        * c-pragma.c: Include c-common.h.
        (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
        (handle_pragma_weak): Use them.
        (init_pragma): Register pending_weaks.
        * c-pragma.h (maybe_apply_pragma_weak): Declare.
        * print-tree.c (print_node): Print DECL_WEAK.
        * varasm.c (mark_weak_decls): Remove.
        (remove_from_pending_weak_list): Remove.
        (add_weak): Remove.
        (asm_emit_uninitialised): Call globalize_decl for weak commons.
        (weak_decls): Make a tree_list.
        (declare_weak): Cons weak_decls directly.
        (globalize_decl): Remove weak_decls elements directly.
        (weak_finish): Simplify weak_decls walk.  Don't weaken unused
        symbols.  Don't pretend to handle aliases.
        (init_varasm_once): Update weak_decls registry.
	* Makefile.in: Update dependencies.

        * cp/decl.c: Include c-pragma.h.
        (start_decl, start_function): Invoke maybe_apply_pragma_weak.
	* cp/Make-lang.in: Update dependencies.

	* gcc.dg/weak-1.c: New.

From-SVN: r50797
2002-03-14 23:11:14 -08:00
Richard Henderson
98d2b17e0c re PR target/5312 ([IA64] ICE in itanium_reorder at config/ia64/ia64.c:5917)
PR target/5312
        * config/ia64/ia64.c: Include tm_p.h last.
        (gen_nop_type): Remove duplicate definition.
        (cycle_end_fill_slots): Set sched_data for second L slot.
        (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
        (nop_cycles_until): Fix typos.

        * gcc.dg/20020313-1.c: New.

From-SVN: r50796
2002-03-14 22:50:26 -08:00
Hans-Peter Nilsson
a541f1aa81 20020312-2.c [__MMIX__]: No pic register.
* gcc.dg/20020312-2.c [__MMIX__]: No pic register.
	* gcc.c-torture/compile/981006-1.x: Don't use -fpic on cris-*-elf*
	cris-*-aout* mmix-*-*.
	* g++.old-deja/g++.other/local-alloc1.C: Skip on cris-*-elf*
	cris-*-aout* mmix-*-*.
	* g++.dg/debug/debug3.C: Expect warning for unsupported -fpic on
	cris-*-elf* cris-*-aout* and mmix-*-*.
	* gcc.dg/20001009-1.c: Ditto.
	* gcc.dg/20010912-1.c: Ditto.
	* gcc.dg/20020122-4.c: Ditto.
	* gcc.dg/inline-2.c: Ditto.

From-SVN: r50794
2002-03-15 05:36:43 +00:00
Jakub Jelinek
f6562b3792 re PR c++/5908 (Warning regression wrt. gcc 3.0)
PR c++/5908

From-SVN: r50793
2002-03-15 04:16:42 +01:00
Jakub Jelinek
f2f4927e3d re PR rtl-optimization/5891 (ICE compiling SPEC fp test with -funroll-loops on ia64)
PR optimization/5891
	* unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.

From-SVN: r50791
2002-03-15 04:06:26 +01:00
David Mosberger
5025a549a1 unwind-ia64.c: Handle copy_state and label_state descriptors correctly.
* config/ia64/unwind-ia64.c: Handle copy_state and label_state
	  descriptors correctly.

From-SVN: r50789
2002-03-15 01:55:49 +00:00
Michael Meissner
03e9dbc91c Add --param max-unrolled-insns=<n> support
From-SVN: r50787
2002-03-14 23:31:50 +00:00
Richard Earnshaw
1224938570 * arm.md: Fix warnings about constraints in peepholes and splits.
From-SVN: r50786
2002-03-14 22:34:00 +00:00
Jeffrey A Law
933a07215c * gcc.c-torture/compile/20020314-1.c: New test.
From-SVN: r50782
2002-03-14 14:26:17 -07:00
Zack Weinberg
f0cce04a61 cpphash.h (struct lexer_state): Remove line_extension member.
* cpphash.h (struct lexer_state): Remove line_extension member.
	* cpplib.c (dequote_string, do_linemarker): New functions.
	(linemarker_dir): New data object.
	(DIRECTIVE_TABLE): No longer need to interpret #line in
	preprocessed source.  Delete obsolete comment about return
	values of handlers.
	(end_directive, directive_diagnostics, _cpp_handle_directive):
	Don't muck with line_extension.
	(directive_diagnostics): No need to issue warnings for
	linemarkers here.
	(_cpp_handle_directive): Issue warnings for linemarkers here,
	when appropriate.  Dispatch linemarkers to do_linemarker, not
	do_line.
	(do_line): Code to handle linemarkers split out to do_linemarker.
	Convert escape sequences in filename argument, both places.

	* cppmacro.c (quote_string): Rename cpp_quote_string and
	export.  All callers changed.
	* cpplib.h (cpp_quote_string): Prototype.
	* cppmain.c (print_line): Call cpp_quote_string on to_file
	before printing it.

	* doc/cpp.texi: Document that escapes are now interpreted in
	#line and in linemarkers, and that non-printing characters are
	converted to octal escapes when linemarkers are generated.

From-SVN: r50780
2002-03-14 18:42:31 +00:00
Zack Weinberg
dcc229e5a1 cpphash.h (struct lexer_state): Remove line_extension member.
* cpphash.h (struct lexer_state): Remove line_extension member.
	* cpplib.c (dequote_string, do_linemarker): New functions.
	(linemarker_dir): New data object.
	(DIRECTIVE_TABLE): No longer need to interpret #line in
	preprocessed source.  Delete obsolete comment about return
	values of handlers.
	(end_directive, directive_diagnostics, _cpp_handle_directive):
	Don't muck with line_extension.
	(directive_diagnostics): No need to issue warnings for
	linemarkers here.
	(_cpp_handle_directive): Issue warnings for linemarkers here,
	when appropriate.  Dispatch linemarkers to do_linemarker, not
	do_line.
	(do_line): Code to handle linemarkers split out to do_linemarker.
	Convert escape sequences in filename argument, both places.

	* cppmacro.c (quote_string): Rename cpp_quote_string and
	export.  All callers changed.
	* cpplib.h (cpp_quote_string): Prototype.
	* cppmain.c (print_line): Call cpp_quote_string on to_file
	before printing it.

	* doc/cpp.texi: Document that escapes are now interpreted in
	#line and in linemarkers, and that non-printing characters are
	converted to octal escapes when linemarkers are generated.

From-SVN: r50779
2002-03-14 18:17:18 +00:00
Jan Hubicka
83a4940733 emit-rtl.c (try_split): Use delete_insns.
* emit-rtl.c (try_split): Use delete_insns.
	* recog.c (split_all_insns): Fix terminating condition.

From-SVN: r50778
2002-03-14 18:09:49 +00:00
Philipp Thomas
b07ac17fa6 fr.po: Update to latest revision.
2002-03-14  Philipp Thomas  <pthomas@suse.de>

        * fr.po: Update to latest revision.

From-SVN: r50777
2002-03-14 16:39:28 +00:00
Richard Earnshaw
2019279fa9 * gcc.c-torture/execute/20020314-1.c: New test.
From-SVN: r50772
2002-03-14 15:32:31 +00:00
Richard Earnshaw
c882c7acd5 re PR target/5828 (gcc-3.0.4 on arm : floating point registers incorrectly reloaded)
PR target/5828
* arm.c (arm_output_epilogue): Fix floating-point register save
adjustment when using a frame pointer.

Co-Authored-By: Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>

From-SVN: r50771
2002-03-14 15:09:13 +00:00
Jakub Jelinek
d3f129b340 call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
	* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.

	* g++.dg/warn/Wunused-1.C: New test.

From-SVN: r50770
2002-03-14 15:26:56 +01:00
Geoffrey Keating
6cbcc54138 Delete all lines containing "$Revision:".
* xeinfo.adb: Don't look for revision numbers.
	* xnmake.adb: Likewise.
	* xsinfo.adb: Likewise.
	* xsnames.adb: Likewise.
	* xtreeprs.adb: Likewise.

From-SVN: r50768
2002-03-14 11:00:22 +00:00
Richard Sandiford
3f26edaa19 mips.h (FP_INC, [...]): New macros.
* config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
	* config/mips/mips.c (compute_frame_size): Retrofit them here.
	(save_restore_insns, mips_expand_epilogue): And here.
	(build_mips16_call_stub): And here.
	(mips_function_value): Use the new macros to decide whether a single
	or complex float can be returned in floating-point registers.  Return
	a parallel rtx in the complex case.

From-SVN: r50766
2002-03-14 10:17:17 +00:00
Jan Hubicka
1e3881c2a0 toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup call after liveness analysis.
* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
	call after liveness analysis.

	* recog.c (split_insn): Use delete_insn_and_edges.

	* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
	instructions to have branch prediction notes.
	* ia64reorg.c (ia64_reorg): Do not rebuild CFG.

From-SVN: r50765
2002-03-14 10:10:13 +00:00
Geoffrey Keating
200ef6348c configure.in: Don't pass -Wno-long-long to a ADA compiler that doesn't support it.
* configure.in: Don't pass -Wno-long-long to a ADA compiler
	that doesn't support it.
	* configure: Regenerate.

From-SVN: r50763
2002-03-14 09:56:41 +00:00
GCC Administrator
73228d2734 Daily bump.
From-SVN: r50761
2002-03-14 08:18:32 +00:00
Jakub Jelinek
0b82d204c4 re PR target/5626 (gcc-3.1 on sparcv9 does not generate code for long jumps)
PR target/5626
	* config/sparc/sparc.md (normal_branch, inverted_branch,
	normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
	inverted_fp_branch): Adjust calls to output_cbranch.
	Set length attribute.
	(normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
	output_v9branch.  Set length attribute.
	* config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
	predicates.
	(noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
	(output_cbranch): Likewise.  Handle far branches.
	(output_v9branch): Handle far branches.
	* config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
	Adjust prototypes.
	* config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
	noov_compare64_op predicates.

From-SVN: r50753
2002-03-13 20:48:29 +01:00
Richard Sandiford
56668fb05b Fix last commit.
From-SVN: r50749
2002-03-13 17:44:22 +00:00