Commit Graph

25502 Commits

Author SHA1 Message Date
Mark Mitchell
12f6122895 * stmt.c (expand_fixup): Fix typo in comment.
From-SVN: r30775
1999-12-05 00:10:31 +00:00
Jan Hubicka
1b7c4a3727 regmove.c (copy_src_to_dest): Remove loop_depth parameter.
* regmove.c (copy_src_to_dest): Remove loop_depth parameter.
	(optimize_reg_copy_1): Remove REG_N_REFS updating code.
	(optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
	(regmove_optimize, fixup_match_1): Likewise.

From-SVN: r30774
1999-12-04 13:21:53 +00:00
Michael Hayes
b760c4b147 flow.c (flow_loops_dump): Add missing argument when calling flow_loop_nested_p.
* flow.c (flow_loops_dump): Add missing argument when calling
	flow_loop_nested_p.

From-SVN: r30773
1999-12-04 11:07:07 +00:00
Jeff Law
0de2d85cac Daily bump.
From-SVN: r30772
1999-12-04 01:45:08 -07:00
Geoff Keating
a157febd0c c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
* c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
(init_attributes): Add A_NO_LIMIT_STACK.
(decl_attributes): Handle A_NO_LIMIT_STACK.
* c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
* explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
Handle stack bounds checking.
* flags.h (flag_stack_check): Use the word 'probe' rather than
'check', because the flag doesn't actually cause any checking to
be done.
* function.c (expand_function_start): Set
current_function_limit_stack.
* function.h (struct function): Add limit_stack.
(current_function_limit_stack): Define.
* invoke.texi (Code Gen Options): Document new options.
* rtl.h: Declare stack_limit_rtx.
* toplev.c (stack_limit_rtx): New variable.
(decode_f_option): Handle new options -fstack-limit-register=REG,
-fstack-limit-symbol=IDENT, -fno-stack-limit.
(main): Add stack_limit_rtx as GC root.
* tree.h (DECL_NO_LIMIT_STACK): New macro.
(struct tree_decl): New member no_limit_stack.

* config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
stack_limit_rtx.
* config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
(conditional_trap+1): Get new mnemonic correct.
(conditional_trap+2): New pattern for DImode traps.

* config/m68k/m68k.c (output_function_prologue): Handle
stack_limit_rtx.
* config/m68k/m68k.md (trap): New insn.
(conditional_trap): New insn.
* md.texi (Standard Names): Document `trap' and
`conditional_trap'.
* optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
so a cc0 setter doesn't get emitted at some random place in the
function.

* config/i960/i960.md (trap): New insn.
(conditional_trap): New expander.
(conditional_trap+1, conditional_trap+2): New insns for signed
and unsigned cases.
* config/i960/i960.c (i960_function_prologue): Use
STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.

Co-Authored-By: Greg McGary <gkm@gnu.org>

From-SVN: r30771
1999-12-04 03:00:04 +00:00
Greg McGary
3c12fcc278 flags.h (warn_padded, [...]): Add global var decls.
* flags.h (warn_padded, warn_packed): Add global var decls.
* toplev.c (warn_padded, warn_packed): Add global var defns.
(W_options): Add warnings `-Wpacked' and `-Wpadded'.
* stor-layout.c (layout_record): Add local variable `type'
to hold often-used TREE_TYPE (field).  Add local variable
`unpacked_align' to hold alignment that would be in force
if no `packed' attribute were present.  Warn if `packed' attribute
is unnecessary, or even harmful.  Warn when gcc inserts padding
to satisfy alignment requirements of members.  Use NULL_TREE
when checking whether var_size is set.
* invoke.texi: Document new flags.

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

From-SVN: r30770
1999-12-03 19:02:20 +00:00
Alex Samuel
7337695dc2 align.C: New test.
* g++.old-deja/g++.abi/align.C: New test.
	* g++.old-deja/g++.abi/aggregates.C: Likewise.
	* g++.old-deja/g++.abi/bitfields.C: Likewise.

From-SVN: r30769
1999-12-03 16:45:53 +00:00
Nathan Sidwell
ba54039439 * frame.c (fde_split): Reimplement to avoid variable sized array.
From-SVN: r30768
1999-12-03 11:58:27 +00:00
Jeff Law
f7b6c6b528 Daily bump.
From-SVN: r30767
1999-12-03 01:45:06 -07:00
Alexandre Oliva
eeda916a18 * config.guess, config.sub: Update from autoconf.
From-SVN: r30766
1999-12-03 04:17:09 +00:00
Mike Stump
2fbfe9b812 Fix p24939.
From-SVN: r30765
1999-12-03 03:31:44 +00:00
Anthony Green
38a7fbac35 Updated the thanks list.
From-SVN: r30764
1999-12-03 03:00:39 +00:00
Bryce McKinlay
aa620e4294 natString.cc (equalsIgnoreCase): return false if anotherString is null.
* java/lang/natString.cc (equalsIgnoreCase): return false if
        anotherString is null.
        * java/lang/Boolean.java (valueOf): return FALSE if argument is
        null.

From-SVN: r30763
1999-12-02 19:59:30 +00:00
J"orn Rennecke
e6770d3c8c combine.c (try_combine): Before fixing up LOG_LINKS for the i3_subst_into_i2 case...
* combine.c (try_combine): Before fixing up LOG_LINKS for the
	i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.

From-SVN: r30762
1999-12-02 19:09:23 +00:00
Gavin Romig-Koch
63357d93b3 * invoke.texi: Document the mips option -mno-crt0
From-SVN: r30761
1999-12-02 18:52:01 +00:00
Mike Karr
0e5732f2b5 cccp.c (argdata): Added free_ptr member.
1999-12-02  Mike Karr  <mkarr@mathworks.com>

	* cccp.c (argdata): Added free_ptr member.
	(macroexpand): Initialize free_ptr of each argument. When an
	argument's buffers are freed, if the argument's free_ptr corresponds
	to a buffer on the input stack, then return the free_ptr to that stack
	frame, otherwise, free it.
	(macarg): If an argument begins and ends on the same input stack level,
	then transfer the free_ptr of that buffer to the argument in case
	the stack is popped during the processing of a subsequent argument.

From-SVN: r30760
1999-12-02 11:31:58 -05:00
Bernd Schmidt
bc622faec9 Four new tests
From-SVN: r30759
1999-12-02 12:37:50 +00:00
Bernd Schmidt
8571e492c8 Prevent invalid transformations
From-SVN: r30758
1999-12-02 11:27:31 +00:00
Nick Clifton
574531f245 remove compile time warnings about uninitilaised fileds
From-SVN: r30757
1999-12-02 10:53:39 +00:00
Nick Clifton
94f9afc2ec Pass pragma_getc and pragma_ungetc to HANDLE_PRAGMA.
From-SVN: r30756
1999-12-02 10:18:36 +00:00
Bryce McKinlay
c390b4a687 ServerSocket.java (ServerSocket): Bind to any interface if bindAddr is null.
1999-12-02  Bryce McKinlay  <bryce@albatross.co.nz>

        * libjava/java/net/ServerSocket.java (ServerSocket): Bind to any
        interface if bindAddr is null.

From-SVN: r30755
1999-12-02 10:09:24 +00:00
Jan Hubicka
34289d575d i386.md (extend?f?f2): Force the input into a register, not the output.
* i386.md (extend?f?f2): Force the input into a register, not
        the output.

From-SVN: r30754
1999-12-02 02:17:30 -07:00
Jeff Law
d343f71534 Daily bump.
From-SVN: r30753
1999-12-02 01:45:06 -07:00
Richard Henderson
d1923ab77f * gcc.c-torture/execute/991201-1.c: New.
From-SVN: r30752
1999-12-01 22:30:09 -08:00
Jeff Law
78ac7c8132 Fix cut-n-paste error in last change.
From-SVN: r30751
1999-12-01 18:44:52 -07:00
Jakub Jelinek
119a467780 sparc.md (movsf_const_intreg): Add constraints for regclass' sake.
* config/sparc/sparc.md (movsf_const_intreg): Add constraints for
	regclass' sake.
	(movdf_const_intreg_sp32): Likewise. Prefer the memory load
	alternative because setting up 64bit constant is usually costly,
	especially when reload is in progress or completed.
	(movdf_const_intreg_sp64): Likewise.
	(movdf_const_intreg split): Fix building up constants when
	HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.

From-SVN: r30750
1999-12-01 16:38:56 -08:00
Jeffrey A Law
e8758a3a01 combine.c (if_then_else_cond): Use const_true_rtx instead of const1_rtx for return values in EQ/NE comparison...
* combine.c (if_then_else_cond): Use const_true_rtx instead of
	const1_rtx for return values in EQ/NE comparison against (const_int 0)
	case.

From-SVN: r30749
1999-12-01 17:36:31 -07:00
Jeffrey A Law
705ac34f06 mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
* mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
        (asm_file_start): Emit .am33 into assembly file when compiling for
        the AM33.
        (print_operand_address): Handle POST_INC addresses.
        (can_use_return_insn, initial_offset): Check AM33 registers too.
        (expand_prologue): Check & save AM33 registers too.
        (expand_epilogue): Similarly.
        wise.
        (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
        (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
        (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
        (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
        (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
        (HAVE_POST_INCREMENT): Define.
        (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
        (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
        * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
        (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
        (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
        (zero_extend to SI from QI/HI): Likewise.
        (sign_extend to SI from QI/HI): Likewise.
        (mulsidi3, umulsidi3): New patterns for the AM33.
        (tstsi with zero extension from QI/HI): Add AM33 variants.
        (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
        (return_internal_regs, store_movm): Handle new AM33 registers.
        * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
        (LIBGCC, INSTALL_LIBGCC): Likewise.
        * invoke.texi: Document new flags.

From-SVN: r30748
1999-12-01 17:21:59 -07:00
Jan Hubicka
d525dfdf29 i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
* i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
	(addsi3_carry): Likewise.
	(sbbsi3_cc): Add "binary_operator_ok" to the condition.
	(sbbsi3_carry): Likewise.
	(mulsi3): Rewrite to expander, ensure that only one operand is memory.
	(mulhi3): Likewise.
	(test?i_1): Ensure that only one operand is memory.
	(conditional move patterns): likewise.
	(shift and rotate patterns): Rewrite to expander, add
	"binary_operator_ok" to the condition.

From-SVN: r30747
1999-12-01 23:48:05 +00:00
Jan Hubicka
7c6b971dcc i386.md (QImode patterns): Remove '*' before the 'r' constraints.
* i386.md (QImode patterns): Remove '*' before the 'r' constraints.
	* i386.h (procesor_costs): Add movzbl_load field.
	(HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
	non-Q registers, accept DImode registers anywhere.
	(Q_CLASS_P): New.
	(MEMORY_MOVE_COST): Calculate QImode moves correctly.
	* i386.c (*_cost): Set value for movxbl_load field.

From-SVN: r30746
1999-12-01 22:49:12 +00:00
Jan Hubicka
1c27d4b20f (addsi): New add to lea splitter.
* (addsi): New add to lea splitter.
	(ashlsi): Likewise.
	(lea to add/shift peep2): New.

From-SVN: r30745
1999-12-01 22:35:15 +00:00
Mark Salter
c45fd7f9b2 elf.h (STARTFILE_SPEC): Add no-crt0.
* config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
	* config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
	* config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.

From-SVN: r30744
1999-12-01 19:50:46 +00:00
Mark Mitchell
a09ba2e041 cp-tree.h (min_tree_cons): Remove.
* cp-tree.h (min_tree_cons): Remove.
	(scratch_ovl_cons): Likewise.
	* decl.c (saveable_obstack): Don't declare.
	(duplicate_decls): Tweak error-message.
	(initialize_local_var): Explicitly mark the definition as static.
	(finish_function): Call permanent_allocation, just so
	that the middle-end sees the obstacks it expects.
	(mark_cp_function_context): Likewise.
	* init.c (build_new): Don't use min_tree_cons.
	* lex.c (permanent_obstack): Don't declare.
	(current_obstack, saveable_obstack): Likewise.
	* spew.c (current_obstack, saveable_obstack): Likewise.
	* tree.c (current_obstack, saveable_obstack): Likewise.
	(scratch_ovl_cons): Remove.
	(build_min_nt): Don't mess with obstacks.
	(build_min): Likewise.
	(min_tree_cons): Remove
	* typeck.c (build_component_ref): Don't use scratch_ovl_cons.
	(build_x_function_call): Likewise.
	(build_c_cast): Don't use min_tree_cons.

From-SVN: r30743
1999-12-01 18:09:09 +00:00
Jan Hubicka
eb69a68672 Undo the last change I've checked in by accident.
From-SVN: r30742
1999-12-01 17:27:17 +00:00
Jan Hubicka
591702deff i386.c (ix86_expand_move): Never add clobbers to move patterns.
* i386.c (ix86_expand_move): Never add clobbers to move patterns.
	* i386.md (movsi_xor): New.
	(movsi_or): New.
	(movsi_1, movhi_1, movqi_1): Remove.
	(movsi_2): Rename to movsi_1.
	(movhi_2): Rename to movhi_1.
	(movqi_2): Rename to movqi_1.
	(movdi_1): Remove; remove splitter.
	(movdi_2): Rename to movdi_1.
	(divmodsi4 splitter): Do not emit clobbers for move patterns.
	(long move peep2): Do not create QI or HI mode mov0s
	(mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.

From-SVN: r30741
1999-12-01 16:50:46 +00:00
Jan Hubicka
8f7661f2b8 i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns rewrite splitters.
* i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns
	rewrite splitters.

From-SVN: r30740
1999-12-01 13:38:50 +00:00
Alexandre Petit-Bianco
b5b8a0e779 re GNATS gcj/97 (Internal compiler error)
Thu Nov 11 01:57:14 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (lookup_method_invoke): Use lang_printable_name to
 	reliably build the type name during error report. Fixes PR gcj/97.

From-SVN: r30739
1999-12-01 05:06:10 -08:00
Jan Hubicka
e20440c1dd i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
* i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
	(abs?f2_if): Likewise.

From-SVN: r30738
1999-12-01 12:04:11 +00:00
Jason Molenda
2c290989c7 re PR other/4 (Test PR)
1999-12-01  Jason Molenda  (jsm@bugshack.cygnus.com)

	* ChangeLog:  Dummy commit to make sure the logging is working
	right.
	Oh, and test the PR system.  PR other/4.

From-SVN: r30737
1999-12-01 03:54:08 -08:00
Jeff Law
2f3655cf1c Daily bump.
From-SVN: r30735
1999-12-01 01:45:07 -07:00
Alex Samuel
52a921766e ggc.h (ggc_test_and_set_mark): New macro.
* ggc.h (ggc_test_and_set_mark): New macro.
	(ggc_mark_rtx): Use ggc_test_and_set_mark.
	(ggc_mark_tree): Likewise.
	(ggc_mark_rtvec): Likewise.
	* ggc-common.c (ggc_mark_rtx_children): Reduce recursion.

From-SVN: r30734
1999-12-01 08:13:54 +00:00
Jason Merrill
777ad4c21f dwarf2out.c (scope_die_for): Only handle types.
* dwarf2out.c (scope_die_for): Only handle types.  Only search for
        containing types.
        (decl_scope_table): Just an array of trees now.
        (push_decl_scope): Simplify.
        (dwarf2out_init): Adjust.
        (local_scope_p): New fn.
        (gen_inlined_enumeration_type_die): Don't call scope_die_for.
        (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
        (gen_typedef_die): Likewise.
        (gen_lexical_block_die): Don't call push/pop_decl_scope.
        (gen_inlined_subroutine_die): Likewise.
        (gen_abstract_function): Set current_function_decl temporarily.
        (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
        Handle block extern declarations.  Don't call push/pop_decl_scope.
        (gen_decl_die): Fix logic for block externs.

From-SVN: r30733
1999-11-30 20:48:02 -05:00
Kaveh R. Ghazi
d94656872d ansidecl.h (ATTRIBUTE_MALLOC): New macro.
* ansidecl.h (ATTRIBUTE_MALLOC): New macro.

        * libiberty.h (buildargv, dupargv, concat, choose_temp_base,
        make_temp_file, xmalloc, xcalloc, xstrdup, xmemdup): Add
        ATTRIBUTE_MALLOC.
        (xatexit): Remove __GNUC__ check, add ATTRIBUTE_NORETURN.

From-SVN: r30732
1999-11-30 23:56:52 +00:00
Kaveh R. Ghazi
8251469698 calls.c (special_function_p): Remove realloc' and add strdup' to the list of functions which have attribute...
* calls.c (special_function_p): Remove `realloc' and add `strdup'
        to the list of functions which have attribute malloc by default.

From-SVN: r30731
1999-11-30 23:55:26 +00:00
Kaveh R. Ghazi
48776cde06 c-lex.c (yylex): With -Wtraditional...
* c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
	integer constant does not match the traditional type, limit the
	warnings to cases where the base of the type is ten.

	* invoke.texi (-Wtraditional): Document it.

From-SVN: r30730
1999-11-30 23:26:37 +00:00
Franz Sirl
481c7efae8 combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
* combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
        * rs6000.md: Only access a CONST_INT with INTVAL

From-SVN: r30729
1999-11-30 15:19:06 -08:00
Richard Henderson
e5b7ca327d lcm.c (compute_laterin): Cast bb->aux to size_t not int.
* lcm.c (compute_laterin): Cast bb->aux to size_t not int.
        (compute_nearerout): Likewise.
        * ggc-page.c (ggc_page_print_statistics): Explicitly cast
        size_t to unsigned long for formatting.

From-SVN: r30728
1999-11-30 14:28:43 -08:00
Jakub Jelinek
e48addeebc Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
        Allow the user to override call-used/fixed state of %g2-5
        registers from the command line (with the exception of %g4 for
        embedded model).
        (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
        there is a higher chance of having a leaf function.
        (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
        for ARCH64 which has %ccr register.
        * config/sparc/sparc.md (return_losum_si, return_losum_di): New
        patterns.
        * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
        insn accept into delay slot any insn which does not use %[ol]
        registers.  Accept some LO_SUM and shift left by 1 for the normal
        restore case.
        (output_function_epilogue): Likewise.
        (epilogue_renumber): Added argument which inhibits any renumbering
        and just tests if the rtx does not use any %[ol] registers.
        (output_return): Reflect above change.

From-SVN: r30727
1999-11-30 14:18:21 -08:00
Jakub Jelinek
f34e52f774 sparc.c (sparc_va_arg): Fix sparc64 va_arg aggregate passing for sizes <= 16 bytes.
* config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
        aggregate passing for sizes <= 16 bytes.

From-SVN: r30726
1999-11-30 14:06:50 -08:00
Tom Tromey
4cb74b7695 re GNATS libgcj/98 (pthread_mutex_init in libjava/posix-threads.cc)
* posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex to get
	mutex to initialize.  Initialize `count' if required.
	Fixes PR libgcj/98.

From-SVN: r30725
1999-11-30 18:53:15 +00:00