- 05 Dec, 1999 7 commits
-
-
* optimize.c (inline_data): Remove fns_top. Add scope_stmt. Add in_target_cleanup_p. (remap_decl): New function. (remap_block): Likewise. (copy_scope_stmt): Likewise. (copy_body_r): Use remap_decl and copy_scope_stmt. (copy_body): Use VARRAY_TOP_TREE. (initialize_inlined_parameters): Likewise. (declare_return_variable): Likewise. (inlinable_function_p): Check flag_inline_trees. (expand_call_inline): Handle SCOPE_STMTs and TARGET_EXPRs specially. Use VARRAY_PUSH_TREE. Create a BLOCK for the parameters of the inlined function. (optimize_function): Prevent recursion into partially complete functions. From-SVN: r30781
Mark Mitchell committed -
* cp-tree.def (SCOPE_STMT): Take one operand. * cp-tree.h (SCOPE_STMT_BLOCK): New macro. (SCOPE_NULLIFIED_P): Redefine. (SCOPE_NO_CLEANUPS_P): New macro. (add_scope_stmt): Change prototype. * decl.c (poplevel): Tidy. Warn about unused variables here. Record SCOPE_STMT_BLOCKs. (finish_function): Keep DECL_INITIAL for functions that might be inlined. * ir.texi: Document SCOPE_NO_CLEANUPS_P. * semantics.c: Include rtl.h. (add_scope_stmt): Return the new scope statement and, for an end-of-scope statement, its matching begin statement. Don't set SCOPE_NULLIFIED_P. (do_pushlevel): Simplify, now that we are always function-at-a-time. (do_poplevel): Likewise. Record SCOPE_STMT_BLOCKs. (expand_stmt): Don't call expand_start_bindings or expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set. * tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting SCOPE_NULLIFIED_P. * Makefile.in (semantics.o): Depend on RTL_H. From-SVN: r30780
Mark Mitchell committed -
* cp-tree.def (SCOPE_STMT): Take one operand. * cp-tree.h (SCOPE_STMT_BLOCK): New macro. (SCOPE_NULLIFIED_P): Redefine. (SCOPE_NO_CLEANUPS_P): New macro. (add_scope_stmt): Change prototype. * decl.c (poplevel): Tidy. Warn about unused variables here. Record SCOPE_STMT_BLOCKs. (finish_function): Keep DECL_INITIAL for functions that might be inlined. * ir.texi: Document SCOPE_NO_CLEANUPS_P. * semantics.c: Include rtl.h. (add_scope_stmt): Return the new scope statement and, for an end-of-scope statement, its matching begin statement. Don't set SCOPE_NULLIFIED_P. (do_pushlevel): Simplify, now that we are always function-at-a-time. (do_poplevel): Likewise. Record SCOPE_STMT_BLOCKs. (expand_stmt): Don't call expand_start_bindings or expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set. * tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting SCOPE_NULLIFIED_P. From-SVN: r30779
Mark Mitchell committed -
* decl2.c (pending_statics_used): Make it a macro. (saved_inlines_used): Likewise. (finish_static_data_member_decl): Use VARRAY_PUSH_TREE. (mark_inline_for_output): Likewise. (ssdf_decls_used): Remove. (start_static_storage_duration_function): Use VARRAY_PUSH_TREE. (generate_ctor_or_dtor_function): Adjust accordingly. From-SVN: r30778
Mark Mitchell committed -
* varray.h (varray_head_tag): Add elements_used. (VARRAY_PUSH): New macro. (VARRAY_POP): Likewise. (VARRAY_TOP): Likewise. Add variants of VARRAY_PUSH and VARRAY_POP for all varray element types. * varray.c (varray_init): Initialize elements_used. * Makefile.in (BASIC_BLOCK_H): Add varray.h. (INTEGRATE_H): New variable. (integrate.o): Depend on INTEGRATE_H. (unroll.o): Likewise. From-SVN: r30777
Mark Mitchell committed -
* function.h (insert_block_after_note): Declare. * function.c (insert_block_after_note): Split out from ... (retrofit_block): ... here. From-SVN: r30776
Mark Mitchell committed -
From-SVN: r30775
Mark Mitchell committed
-
- 04 Dec, 1999 4 commits
-
-
* 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
Jan Hubicka committed -
* flow.c (flow_loops_dump): Add missing argument when calling flow_loop_nested_p. From-SVN: r30773
Michael Hayes committed -
From-SVN: r30772
Jeff Law committed -
* 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
Geoff Keating committed
-
- 03 Dec, 1999 7 commits
-
-
* 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
Greg McGary committed -
* 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
Alex Samuel committed -
From-SVN: r30768
Nathan Sidwell committed -
From-SVN: r30767
Jeff Law committed -
From-SVN: r30766
Alexandre Oliva committed -
From-SVN: r30765
Mike Stump committed -
From-SVN: r30764
Anthony Green committed
-
- 02 Dec, 1999 16 commits
-
-
* 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
Bryce McKinlay committed -
* 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
J"orn Rennecke committed -
From-SVN: r30761
Gavin Romig-Koch committed -
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
Mike Karr committed -
From-SVN: r30759
Bernd Schmidt committed -
From-SVN: r30758
Bernd Schmidt committed -
From-SVN: r30757
Nick Clifton committed -
From-SVN: r30756
Nick Clifton committed -
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
Bryce McKinlay committed -
* i386.md (extend?f?f2): Force the input into a register, not the output. From-SVN: r30754
Jan Hubicka committed -
From-SVN: r30753
Jeff Law committed -
From-SVN: r30752
Richard Henderson committed -
From-SVN: r30751
Jeff Law committed -
* 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
Jakub Jelinek committed -
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
Jeffrey A Law committed -
* 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
Jeffrey A Law committed
-
- 01 Dec, 1999 6 commits
-
-
* 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
Jan Hubicka committed -
* 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
Jan Hubicka committed -
* (addsi): New add to lea splitter. (ashlsi): Likewise. (lea to add/shift peep2): New. From-SVN: r30745
Jan Hubicka committed -
* 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
Mark Salter committed -
* 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
Mark Mitchell committed -
From-SVN: r30742
Jan Hubicka committed
-