aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
1999-12-04Daily bump.Jeff Law2-2/+2
From-SVN: r30772
1999-12-04c-common.c (enum attrs): Add A_NO_LIMIT_STACK.Geoff Keating21-7/+401
* 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-03flags.h (warn_padded, [...]): Add global var decls.Greg McGary5-25/+161
* 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-03align.C: New test.Alex Samuel4-0/+412
* 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* frame.c (fde_split): Reimplement to avoid variable sized array.Nathan Sidwell2-14/+39
From-SVN: r30768
1999-12-03Daily bump.Jeff Law2-2/+2
From-SVN: r30767
1999-12-03Fix p24939.Mike Stump3-0/+20
From-SVN: r30765
1999-12-02combine.c (try_combine): Before fixing up LOG_LINKS for the i3_subst_into_i2 ↵J"orn Rennecke2-13/+21
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* invoke.texi: Document the mips option -mno-crt0Gavin Romig-Koch2-0/+8
From-SVN: r30761
1999-12-02cccp.c (argdata): Added free_ptr member.Mike Karr2-1/+36
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-02Four new testsBernd Schmidt5-0/+80
From-SVN: r30759
1999-12-02Prevent invalid transformationsBernd Schmidt2-7/+71
From-SVN: r30758
1999-12-02remove compile time warnings about uninitilaised filedsNick Clifton2-2/+5
From-SVN: r30757
1999-12-02Pass pragma_getc and pragma_ungetc to HANDLE_PRAGMA.Nick Clifton2-2/+7
From-SVN: r30756
1999-12-02i386.md (extend?f?f2): Force the input into a register, not the output.Jan Hubicka2-3/+8
* i386.md (extend?f?f2): Force the input into a register, not the output. From-SVN: r30754
1999-12-02Daily bump.Jeff Law2-2/+2
From-SVN: r30753
1999-12-01* gcc.c-torture/execute/991201-1.c: New.Richard Henderson2-0/+43
From-SVN: r30752
1999-12-01Fix cut-n-paste error in last change.Jeff Law1-1/+0
From-SVN: r30751
1999-12-01sparc.md (movsf_const_intreg): Add constraints for regclass' sake.Jakub Jelinek2-7/+18
* 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-01combine.c (if_then_else_cond): Use const_true_rtx instead of const1_rtx for ↵Jeffrey A Law2-2/+6
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-01mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.Jeffrey A Law6-26/+701
* 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-01i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.Jan Hubicka2-62/+214
* 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-01i386.md (QImode patterns): Remove '*' before the 'r' constraints.Jan Hubicka4-21/+42
* 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(addsi): New add to lea splitter.Jan Hubicka2-1/+53
* (addsi): New add to lea splitter. (ashlsi): Likewise. (lea to add/shift peep2): New. From-SVN: r30745
1999-12-01elf.h (STARTFILE_SPEC): Add no-crt0.Mark Salter4-2/+10
* 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-01cp-tree.h (min_tree_cons): Remove.Mark Mitchell9-62/+48
* 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-01Undo the last change I've checked in by accident.Jan Hubicka1-230/+162
From-SVN: r30742
1999-12-01i386.c (ix86_expand_move): Never add clobbers to move patterns.Jan Hubicka6-357/+283
* 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-01i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns rewrite ↵Jan Hubicka2-117/+124
splitters. * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns rewrite splitters. From-SVN: r30740
1999-12-01re GNATS gcj/97 (Internal compiler error)Alexandre Petit-Bianco3-169/+185
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-01i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.Jan Hubicka2-12/+35
* i386.md (neg?f2_if): Split "r" and "f" to separate alternatives. (abs?f2_if): Likewise. From-SVN: r30738
1999-12-01Daily bump.Jeff Law2-2/+2
From-SVN: r30735
1999-12-01ggc.h (ggc_test_and_set_mark): New macro.Alex Samuel3-71/+100
* 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-11-30dwarf2out.c (scope_die_for): Only handle types.Jason Merrill2-135/+79
* 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-30calls.c (special_function_p): Remove `realloc' and add `strdup' to the list ↵Kaveh R. Ghazi2-2/+9
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-30c-lex.c (yylex): With -Wtraditional...Kaveh R. Ghazi3-1/+19
* 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-30combine.c (try_combine): Only pass SET or CLOBBER to SET_DESTFranz Sirl3-3/+15
* 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-30lcm.c (compute_laterin): Cast bb->aux to size_t not int.Richard Henderson3-4/+11
* 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-30Jakub Jelinek <jakub@redhat.com>Jakub Jelinek4-75/+220
* 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-30sparc.c (sparc_va_arg): Fix sparc64 va_arg aggregate passing for sizes <= 16 ↵Jakub Jelinek2-12/+22
bytes. * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg aggregate passing for sizes <= 16 bytes. From-SVN: r30726
1999-11-30fix typoBrendan Kehoe1-1/+1
From-SVN: r30724
1999-11-30Delete obsolete macrosBernd Schmidt11-130/+16
From-SVN: r30723
1999-11-30sparc.h (MASK_FASTER_STRUCTS, [...]): Define.Brendan Kehoe4-9/+78
* sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define. (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags. (ROUND_TYPE_ALIGN): Use better value of -mfaster-structs. * sparc.md (sparclite86x_branch, sparclite86x_shift): New function units for the sparclite86x chip. (flush): Revert October 14th change; add SImode specifically. (flushdi): Copy of flush, but DImode, to avoid genrecog warnings. * invoke.texi: Document it. From-SVN: r30722
1999-11-30Fix psimode truncation patterns to not accept MEMs that are not valid forNick Clifton4-2/+30
PSImode. From-SVN: r30721
1999-11-30flow.c (flow_nodes_print, [...]): New functions.Michael Hayes6-4/+818
* flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions. (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise. (flow_loop_exits_find, flow_loop_nodes_find): Likewise. (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise. (flow_loop_tree_node_add, flow_loops_tree_build): Likewise. (flow_loop_level_compute, low_loops_level_compute): Likewise. (flow_loops_find, flow_loop_outside_edge_p): Likewise. * basic-block.h: Protect from multiple inclusion. (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes. (struct loops, struct loop): Define structures. * sbitmap.c (sbitmap_a_subset_b_p): New function. * sbitmap.h: Protect from multiple inclusion. (sbitmap_a_subset_b_p): Add prototype. * Makefile.in (LOOP_H): New macro. (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H. From-SVN: r30720
1999-11-30Daily bump.Jeff Law2-2/+2
From-SVN: r30719
1999-11-30cppinit.c (CAT): The argument list of this macro may not contain spaces !Philippe De Muyter2-1/+6
* cppinit.c (CAT): The argument list of this macro may not contain spaces ! From-SVN: r30718
1999-11-29Move quantity tables and register equivalence chains intoDavid S. Miller2-284/+371
per-qty and per-register structure arrays respectively. From-SVN: r30717
1999-11-29* pt.c (tsubst_decl): Robustify.Mark Mitchell3-1/+18
From-SVN: r30716
1999-11-29Install proper changeRichard Kenner1-2/+3
From-SVN: r30715