summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* * Makefile.in (gimplify.o): Add cgraph.h.kenner2004-06-222-2/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83475 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (adjust_offset_for_component_ref): Usekenner2004-06-2272-780/+1648
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | component_ref_field_offset. * c-decl.c (build_array_declarator): Add news args for ARRAY_REF. * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list. (gimplify_decl_stmt): Call gimplify_type_sizes for type. For decl, call gimplify_one_sizepos and use statement list. (gimplify_compound_literal_expr): New arg PRE_P. Add statement to PRE_P list and return DECL. (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to gimplify_compound_literal_expr. * c-tree.h (getdecls): Deleted. * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF. (build_array_ref): Add two operands for ARRAY_REF. (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for COMPOUND_LITERAL_EXPR. * coverage.c (tree_coverage_counter_ref): Add new operands for ARRAY_REF. * emit-rtl.c (component_ref_for_mem_expr): Add new operand for COMPONENT_REF. (set_mem_attributes_minus_bitpos): Use array_ref_low_bound and array_ref_element_size. (widen_memory_access):Use component_ref_field_offset. * explow.c (update_nonlocal_goto_save_area): Add two operands for ARRAY_REF. * expr.c (array_ref_element_size, array_ref_low_bound): New functions. (component_ref_field_offset): Likewise. (get_inner_reference): Use them. (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound. * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE. (fold_read_from_constant_string): Use array_ref_low_bound. Verify that result is a character type. (build_fold_indirect_ref): Add two operands for ARRAY_REF. * function.c (expand_function_start): Likewise. * gimple-low.c (expand_var_p): Delete duplicated line. * gimplify.c: Add static decls for local functions. (cgraph.h): Now included. (create_tmp_var): Remove check for ARRAY_TYPE. (copy_if_shared_r): Look at bounds and sizes of types. (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt. (gimplify_exit_expr, shortcut_cond_expr): Likewise. (gimplify_save_expr, gimple_push_cleanup): Likewise. (gimplify_init_constructor): Likewise. WANT_VALUE now bool. If empty list with no result wanted, return GS_UNHANDLED. Add additional operands for ARRAY_REF and COMPONENT_REF. (canonicalize_component_ref): Convert to &array[L]. (gimplify_array_ref_to_plus): Use array_ref_element_size and array_ref_lower_bound. (build_addr_expr_with_type, build_addr_expr): New functions. (gimplify_compound_lval): WANT_LVALUE now bool. Major rework to allow handle_component_p and initialize and gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and COMPONENT_REF. (gimplify_array_ref): Deleted. (gimplify_self_mod_expr): WANT_VALUE now bool. (gimplify_modify_expr): Gimplify to_p and from_p later. Factor out code into gimplify_modify_expr_rhs and call twice. Move variable-size code earlier and handle PLACEHOLDER_EXPR. (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns. (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case. (gimplify_expr, case ARRAY_REF): Delete special case. Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF, IMAGPART, and REALPART the same way. (gimplify_expr, case VIEW_CONVERT_EXPR): New case. (gimplify_expr): Call gimplify_variable_sized_compare if applicable. Call alloc_stmt_list instead of build_empty_stmt. Deal with _REF that's volatile. (gimplify_type_sizes, gimplify_one_sizepos): New functions. (unshare_body, unvisit_body): New functions. (gimplify_body): Call them. * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE. * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT. * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF. * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF like ARRAY_REF. (verify_expr, case ADDR_EXPR): Use handled_component_p. * tree-dfa.c (get_virtual_var): Likewise. * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF): New cases to dump new operands; likewise for ARRAY_RANGE_REF. * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF. * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF and INDIRECT_REF. (get_base_address): Use handled_component_p. * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New. * tree-line.c (walk_tree): Walk more things for types and decls. * tree-mudflap.c (mf_build_check_statement_for): Add new operands for ARRAY_REF and COMPONENT_REF. (mx_xform_derefs_1): Clean up usage of decl sizes. * tree-nested.c (build_addr): Use handled_component_p. (walk_stmts, case CATCH_EXPR): Add missing "break". (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF. (finalize_nesting_tree_1): Likewise. (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF and process additional operands. (convert_local_reference): Likewise. * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat ARRAY_RANGE_REF similarly to ARRAY_REF. * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle like RECORD_TYPE. (dump_generic_node, case COMPONENT_REF): Print offset operand. (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF and print lower bound and element size for both. (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF. * tree-sra.c (csc_build_component_ref): Add new operand. (scalarize_call_expr): Use get_base_address. * tree-ssa-ccp.c (widen_bitfield): Clean up size handling. (maybe_fold_offset_to_array_ref): Rework to handle input having an ARRAY_REF, refine handling of lower bound, and add new operands for ARRAY_REF. (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF. (maybe_fold_stmt_indirect): Only fold *&B to B if types match. (maybe_fold_stmt_addition): Only handle constant lower bound. * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands. Look at new offset operand of COMPONENT_REF. * tree-ssa.c (set_is_used): Use handled_component_p. * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand. (stabilize_reference, case COMPONENT_REF): Likewise. (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly. (recompute_tree_invariant_for_addr_expr): Completely rework to be more precise. Also set TREE_SIDE_EFFECTS. (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here. (build2_stat, build3_stat, build4_stat): For references, propagate TREE_THIS_VOLATILE. (get_unwidened): Add new operand for COMPONENT_REF. (get_narrower): Likewise; use host_integerp for DECL_SIZE. * tree.def (COMPONENT_REF): Add new operand. (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands. * tree.h (array_ref_element_size, array_ref_low_bound): New decls. (component_ref_field_offset): Likewise. * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF. (alpha_gimplify_va_arg): Likewise. * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise. * config/iq2000/iq2000.c (iq2000_va_arg): Likewise. * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise. * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): Likewise. * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise. * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start): Likewise. (xstormy16_expand_builtin_va_arg): Likewise. * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise. * cp/call.c (build_vfield_ref): Add new operand for COMPONENT_REF. (build_new_method_call): Likewise. * cp/decl.c (local_variable_p_walkfn): Don't walk into types. * cp/decl2.c (grok_array_decl): Add new operands for ARRAY_REF. (build_anon_union_vars): Add new operand for COMPONENT_REF. * cp/init.c (buld_new): Add new operand for ARRAY_REF. * cp/method.c (do_build_copy_constructor): New op for COMPONENT_REF. (do_build_assign_ref): Likewise. * cp/parser.c (cp_parser_direct_new_declarator): Add new operands for ARRAY_REF. (cp_parser_direct_declarator): Likewise. * cp/pt.c (tsubst): Likewise. (tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand for COMPONENT_REF. * cp/semantics.c (finish_non_static_data_member): Add new operand for COMPONENT_REF. * cp/typeck.c (build_class_member_access_expr): Likewise. (build_class_member_access_expr, finish_class_member_access_expr): Likewise. (build_ptrmemfunc_access_expr): Likewise. (build_array_ref): Add new operands for ARRAY_REF. * cp/typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too. * cp/tree.c (count_trees_r, no_linkage_helper): Don't walk in types. * fortran/f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted. * fortran/trans-array.c (gfc_conv_descriptor_data): Add operand for COMPONENT_REF. (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise. (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise. (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise. * fortran/trans-common.c (create_common): Likewise. * fortran/trans-expr.c (gfc_conv_component_ref): Likewise. * fortran/trans-io.c (set_parameter_value): Likewise. (set_parameter_ref, set_string, set_flag, io_result): Likewise. (transfer_expr): Likewise. * fortran/trans-decl.c (gfc_trans_auto_character_variable): Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified. (gfc_simplify_function): New function. (gfc_generate_function-code): Properly handle nested functions. * fortran/trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF. * java/class.c (build_class_ref): Add new operand for COMPONENT_REF. (build_static_field_ref): Likewise and add new operands for ARRAY_REF. * java/constants.c (build_ref_from_constant_pool): Likewise. * java/expr.c (build_java_array_length_access): Likewise. (build_get_class, build_field_ref, build_known_method_ref): Likewise. (invoke_build_dtable, build_invokevirtual): Likewise. (build_invokeinterface, java_expand_expr): Likewise. (emit_init_test_initialization): Likewise. * java/java-gimplify.c (java_gimplify_new_array_init): Likewise. * java/parse.y (make_qualifed_name, build_array_ref): Likewise. * objc/ojbc-act.c (generate_static_references): Add additional operands to ARRAY_REF. (generate_strings, build_method_prototype_list_template): Likewise. (generate_protocol_list): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83474 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Check for srcdir/winsup rather than build directory winsup.cgf2004-06-223-2/+8
| | | | | | | * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83473 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/15750pbrook2004-06-2211-16/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | * io.c (gfc_match_inquire): Bugfix for iolength related stuff. (gfc_resolve_inquire): Resolve the iolength tag. Return SUCCESS at end of function if no failure has occured. * resolve.c (resolve_code): Resolve if iolength is encountered. * trans-io.c: (ioparm_iolength, iocall_iolength, iocall_iolength_done): New variables. (last_dt): Add IOLENGTH. (gfc_build_io_library_fndecls ): Set iolength related variables. (gfc_trans_iolength): Implement. (gfc_trans_dt_end): Treat iolength as a third form of data transfer. libgfortran/ PR fortran/15750 * inquire.c (st_inquire): Add comment * io.h (st_parameter): Add iolength. (st_iolength, st_iolength_done): Declare. * transfer.c (iolength_transfer, iolength_transfer_init, st_iolength, st_iolength_done): New functions. testsuite/ * gfortran.fortran-torture/execute/iolength_1.f90: New test. * gfortran.fortran-torture/execute/iolength_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83472 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/linker-map.gnu: Use wildcards forljrittle2004-06-222-1/+6
| | | | | | | __basic_file::sys_open(FILE*, _Ios_Openmode). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83470 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-06-221-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83467 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-06-221-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83466 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/14782danglin2004-06-213-23/+69
| | | | | | | | | | | | | | | * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing the address checks for secondary reloads for loads from and stores to floating-point registers. * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes in the address check. Move work around for ELF32 targets to GO_IF_LEGITIMATE_ADDRESS. (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be correctly aligned for DImode loads and stores. Don't allow long SFmode displacements on ELF32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83464 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-opt/16114rth2004-06-212-5/+16
| | | | | | | | | * cse.c (merge_equiv_classes): Also rehash in response to delete_reg_equiv changes. (rehash_using_reg): Don't exclude REGs from rehashing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83463 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.def (RETURN_STMT): Remove.rth2004-06-2120-118/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (RETURN_STMT_EXPR): Remove. (c_expand_return, build_return_stmt): Remove. (c_common_stmt_codes): Remove RETURN_STMT. * c-dump.c (dump_next_stmt): Remove. (c_dump_tree): Remove RETURN_STMT. * c-decl.c (finish_function): Use c_finish_return. * c-parse.in (stmt): Likewise. * c-gimplify.c (gimplify_return_stmt): Remove. (c_gimplify_expr): Remove RETURN_STMT. * c-pretty-print.c (pp_c_statement): Likewise. * c-semantics.c (build_return_stmt): Remove. * c-tree.h (c_finish_return): Declare. * c-typeck.c (c_finish_return): Rename from c_expand_return. Return void. Build RETURN_EXPR directly. * tree-dump.h (dump_next_stmt): Remove. cp/ * dump.c (cp_dump_tree): Don't use dump_next_stmt. * parser.c (cp_parser_jump_statement): Update commentary. * pt.c (tsubst_expr): Use RETURN_EXPR. * semantics.c (finish_return_stmt): Likewise. (finalize_nrv_r): Likewise. * typeck.c, typeck2.c: Update file start commentary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83461 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (start_function): Don't call make_decl_rtl. Don'tzack2004-06-212-9/+7
| | | | | | | look at TREE_ADDRESSABLE of symbol name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83460 138bc75d-0d04-0410-961f-82ee72b054a4
* * gfortran.fortran-torture/execute/select_1.f90: Rename functiontobi2004-06-213-8/+15
| | | | | | | | | to fix type error. * gfortran.fortran-torture/execute/intrinsic_associated.f90: Remove trailing spaces. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83459 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Kelley Cook <kcook@gcc.gnu.org>kcook2004-06-212-7/+19
| | | | | | | | | | | | PR target/15551 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. (allocate_stack_worker): Make unspec_volatile. (allocate_stack_worker_rex64): Likewise. (allocate_stack_worker_postreload): Likewise. (allocate_stack_worker_rex64_postreload): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83458 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix whitespace from previous checkingkcook2004-06-211-16/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83457 138bc75d-0d04-0410-961f-82ee72b054a4
* * etime.c (etime_sub): Remove array rank check;pbrook2004-06-212-3/+7
| | | | | | | Add check for sufficient space. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83456 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/15511tobi2004-06-212-11/+35
| | | | | | | | | | * scanner.c (load_line): Don't truncate preprocessor lines. Reformat error message. (preprocessor_line): Issue warning in case of malformed preprocessor line. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83455 138bc75d-0d04-0410-961f-82ee72b054a4
* New test, extracted from 15982dberlin2004-06-211-0/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83454 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Daniel Berlin <dberlin@dberlin.org>dberlin2004-06-212-168/+243
| | | | | | | | | | | | | | | | | | | | | | Fix PR optimization/15982 * tree-ssa-pre.c: Update a few comments and todos to reflect constants change. (get_value_handle): Constants now value number to themselves. (lookup): Constants lookup to themselves. (add_to_value): Adjust to always be on. (set_contains_value): Adjust for constants change. (find_leader): Ditto. (phi_translate): 'r' nodes are never ANTIC right now. (valid_in_set): Ditto. (get_expr_set): New function. (find_or_generate_expression): New function, broken out from insert_aux. (create_expression_by_pieces): Ditto, plus additional machinery to handle complex values. (compute_avail): Remove dead RETURN_EXPR handling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83453 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.c: Include insn-codes.hsteven2004-06-214-847/+861
| | | | | | | | | | * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't define here. * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG, DIRFLAG_REG): New define_constants. Use them everywhere. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83451 138bc75d-0d04-0410-961f-82ee72b054a4
* Typo fix.amylaar2004-06-211-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83445 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org>amylaar2004-06-2132-180/+394
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/sh/t-linux (MULTILIB_OPTIONS): Remove. 2004-06-21 J"orn Rennecke <joern.rennecke@superh.com> * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define. (SUPPORT_SH4_SINGLE): Likewise. (TARGET_SWITCHES): Break out switches for cpu subtargets: (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define. (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise. (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise. (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise. (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise. (TARGET_SWITCHES_SH5_32MEDIA): Likewise. (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise. (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to: (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU) (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to: (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU). (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define. (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise. * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine. (TARGET_DEFAULT): Likewise. * config/sh/t-elf: Amend comment. * config/sh/t-1e, config/sh/t-mlib-sh1: New files. * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise. * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise. * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise. * config/sh/t-mlib-sh4-single: Likewise. * config/sh/t-mlib-sh4-single-only: Likewise. * config/sh/t-mlib-sh5-32media: Likewise. * config/sh/t-mlib-sh5-32media-nofpu: Likewise. * config/sh/t-mlib-sh5-64media: Likewise. * config/sh/t-mlib-sh5-64media-nofpu: Likewise. * config/sh/t-mlib-sh5-compact: Likewise. * config/sh/t-mlib-sh5-compact-nofpu: Likewise. * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb. (MULTILIB_CPUS): Define. (MULTILIB_OPTIONS): Use MULTILIB_CPUS. (MULTILIB_MATCHES): Use some shell code to calculate it. (MULTILIB_EXCEPTIONS): Change to ml/m1. * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC. * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU. (LINK_DEFAULT_CPU_EMUL): Don't redefine. (NO_PROFILE_COUNTERS): Define to 1. * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to. (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine. (MULTILIB_MATCHES): Don't zap. (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES. * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine. (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. (MULTILIB_RAW_DIRNAMES): Define. (MULTILIB_DIRNAMES): Use it. * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*. (sh*linux configurations): Merge into: (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu, --with-multilib-list options. Support sh-superh-elf configuration. (sh*-netbsd*): Use SELECT_SH* macros. (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu". Merge sh*-*-netbsd* configurations into sh-elf configurations. * config/sh/t-netbsd-sh5, config/sh/t-le, config/sh/t-le: Delete. * config/sh/t-monolib: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83444 138bc75d-0d04-0410-961f-82ee72b054a4
* * resolve.c (resolve_symbol): Add comment in function body.tobi2004-06-212-6/+15
| | | | | | | | (check_data_variable): Change type of mark to ar_type, adapt code accordingly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83443 138bc75d-0d04-0410-961f-82ee72b054a4
* * array.c (gfc_insert_constructor): Avoid redundant call totobi2004-06-212-3/+10
| | | | | | | mpz_comp. Add 2004 to copyright years. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83442 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Andrew Haley <aph@redhat.com>aph2004-06-212-0/+10
| | | | | | | | * java-gimplify.c (java_gimplify_block): set TREE_USED on the new block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83441 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Andrew Haley <aph@redhat.com>aph2004-06-214-30/+170
| | | | | | | | | | | | | | | | | | | | * java/io/ObjectOutputStream.java: Add DEBUG statements everywhere. (dumpElementln): New method. (depth): New field. * java/io/ObjectInputStream.java (currentClassLoader): Make native. (callersClassLoader): New field. (depth): New field. (readObject): ENDBLOCKDATA is generated if the class has a write method, not if it has a read method. (readObject): Save and restore this.currentObject and this.currentObjectStreamClass around calls to callReadMethod(). * java/io/natObjectInputStream.cc (getCallersClassLoader): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83440 138bc75d-0d04-0410-961f-82ee72b054a4
* Adding self to MAINTAINERSmatthewg2004-06-211-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83439 138bc75d-0d04-0410-961f-82ee72b054a4
* * encoding.c (BITS_PER_UNIT): Define if a definition is not provided.nickc2004-06-212-1/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83438 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float needpbrook2004-06-212-3/+7
| | | | | | | not imply FPA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83434 138bc75d-0d04-0410-961f-82ee72b054a4
* * fold-const.c (operand_equal_p): Pass flags in recursive calls forsayle2004-06-213-3/+39
| | | | | | | | | | | binary and relational operations. Add support for TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83433 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Paolo Bonzini <bonzini@gnu.org>bonzini2004-06-212-0/+5
| | | | | | | * rtlanal.c (may_trap_p): Mark LTGT as trapping. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83432 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-alias-common.h (struct tree_alias_ops): Change ip andjsm282004-06-218-11/+28
| | | | | | | | | | | | | | | | | ip_partial to unsigned int. fortran: * trans.h (stmtblock_t): Change has_scope to unsigned int. java: * jcf.h (struct JCF): Change java_source, right_zip and finished to unsigned int. * lex.h (struct java_lexer): Change hit_eof, read_anything, byte_swap and use_fallback to unsigned int. * parse.h (struct _jdep): Change flag0 to unsigned int. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83430 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (verify_sequence_points): Export.rth2004-06-2115-115/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (c_expand_expr_stmt): Move to c-typeck.c. * c-common.h (c_expand_expr_stmt): Remove. (verify_sequence_points): Declare. * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. * c-parse.in (for_init_stmt, stmt): Likewise. * c-tree.h (c_finish_expr_stmt): Declare. (c_tree_expr_nonnegative_p): Remove. * c-typeck.c (c_tree_expr_nonnegative_p): Remove. (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. (emit_side_effect_warnings): New. (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. Use emit_side_effect_warnings. (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR with void initializer. (gimplify_target_expr): Handle void BIND_EXPR initializer. * tree-inline.c (estimate_num_insns_1): Fix type lookup for INIT_EXPR and MODIFY_EXPR. * objc/objc-act.c (build_module_descriptor): Use add_stmt instead of c_expand_expr_stmt. cp/ * semantics.c (finish_expr_stmt): Call verify_sequence_points. testsuite/ * gcc.dg/tree-ssa/20030714-1.c: Rename variables to avoid merging && to BIT_FIELD_REF. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83429 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-21 Paolo Bonzini <bonzini@gnu.org>bonzini2004-06-212-218/+305
| | | | | | | | | | | | | * fold-const.c (fold_cond_expr_with_comparison): New function, extracted from fold. (fold): Extract code to fold A op B ? A : C, use it to fold A op B ? C : A. Really optimize A & N ? N : 0 where N is a power of two. Avoid relying on canonicalization and recursion for foldings of COND_EXPR to happen. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83428 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/opt/placeholder1.C: New test.rsandifo2004-06-212-0/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83427 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-20 David Ayers <d.ayers@inode.at>zlaski2004-06-215-78/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * objc/objc-act.h (get_object_reference): Rename to get_protocol_reference. (super_type): Rename to objc_super_type. (selector_type): Rename to objc_selector_type. (id_type): Rename to objc_id_type. (instance_type): Rename to objc_instance_type. (protocol_type): Rename to objc_protocol_type. (IS_ID): Update reference to id_type. * objc/objc-act.c (get_object_reference): Rename to get_protocol_reference; add documentation; update references to id_type. (lookup_method_in_protocol_list): Rename class_meth to is_class; add documentation. (finish_message_expr): Rename is_class to class_tree. (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, next_sjlj_build_try_catch_finally, objc_begin_catch_clause, build_next_objc_exception_stuff, get_arg_type_list, build_objc_method_call): Update references to id_type. (synth_module_prologue, build_objc_symtab_template, build_selector_reference_decl, build_selector, build_selector_translation_table, build_typed_selector_reference, get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, synth_self_and_ucmd_args): Update references to selector_type. (build_private_template, build_ivar_reference): Update references to instance_type. (synth_module_prologue, build_protocol_reference, build_protocol_expr, start_protocol): Update references to protocol_type. (synth_module_prologue, get_arg_type_list, build_objc_method_call): Update references to super_type. * c-parse.in: (typespec_nonreserved_nonattr): Update references to get_object_reference. * objc/objc-tree.def: Add C mode identifier sequence. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83425 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-06-211-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83423 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2004-06-211-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83422 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop-invariant.c: New file.rakdver2004-06-2011-4/+1101
| | | | | | | | | | | | | | | | | | | | * Makefile.in (loop-invariant.o): New. * cfgloop.h (global_cost_for_size, init_set_costs, move_loop_invariants): Declare. * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New functions. (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New variables. * common.opt (floop-optimize2, fmove-loop-invariants): New options. * loop-init.c (loop_optimizer_init): Call init_set_costs. * passes.c (rest_of_handle_loop2): Call move_loop_invariants. (rest_of_compilation): Check flag_loop_optimize2. * toplev.c (process_options): Handle flag_loop_optimize2. * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. * doc/passes.texi (loop-invariant.c): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83419 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.rakdver2004-06-202-1/+10
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83418 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-20 Steven G. Kargl <kargls@comcast.net>tobi2004-06-202-2/+6
| | | | | | | * arith.c (gfc_range_check): correct complex underflow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83417 138bc75d-0d04-0410-961f-82ee72b054a4
* * stmt.c (warn_if_unused_value): Add locus argument.rth2004-06-205-18/+32
| | | | | | | | | * tree.h (warn_if_unused_value): Update decl. * c-typeck.c (internal_build_compound_expr): Update call. * c-gimplify.c (gimplify_expr_stmt): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83416 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-06-205-8/+17
| | | | | | | | | | | PR middle-end/16089 * builtins.c (entry_of_function): Move to ... * cfgrtl.c (entry_of_function): Here and make non-static. * integrate.c (emit_initial_value_sets): Use entry_of_function. * rtl.h (entry_of_function): Prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83415 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.sayle2004-06-202-4/+8
| | | | | | | | (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when TARGET_DECOMPOSE_LEA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83413 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/compat/struct-complex-1_x.c: Add dummy symbol.ebotcazou2004-06-205-0/+19
| | | | | | | | | * gcc.dg/compat/struct-complex-1_y.c: Likewise. * gcc.dg/compat/union-m128-1_x.c: Likewise. * gcc.dg/compat/union-m128-1_y.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83411 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (elaborate_expression, elaborate_expression_1): Argumentskenner2004-06-205-183/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | now bool instead of int. (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF. * trans.c (gnu_switch_label_stack): New function. (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the elaboration of renamed entity returns. (gnat_to_gnu, case N_Case_Statement): Add branches to end label. (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE. (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt. (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and DECL_SIZE_UNIT and simplify variable-sized case. (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. Callers changes to call gimplify_type_sizes and gimplify_one_sizepos. (gnat_stabilize_reference): Add arg to COMPONENT_REF. (build_unit_elab): Disable for now. * utils.c (mark_visited): New function. (pushdecl): Walk tree to call it for global decl. (update_pointer_to): Update all variants of pointer and ref types. Add arg to COMPONENT_REF. (convert): Likewise. Move check for converting between variants lower down. * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF. (build_allocator): Don't force type of MODIFY_EXPR. (gnat_mark_addressable, case VAR_DECL): Unconditionally call put_var_into_stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83410 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (add_decl_stmt): Move to cp-tree.h.rth2004-06-2010-37/+69
| | | | | | | | | | | | | | | | | | * c-decl.c (finish_decl): Don't use add_decl_stmt. * c-parse.in: Likewise. * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. cp/ * cp-tree.h (add_decl_stmt): Declare. * pt.c (tsubst_copy): Abort for CLEANUP_POINT_EXPR. * semantics.c (maybe_cleanup_point_expr): New. (add_decl_stmt, finish_expr_stmt, finish_return_stmt, finish_for_expr, finish_switch_cond): Use it. (finalize_nrv_r): Don't build an EXPR_STMT. Don't frob TREE_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83409 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-20 Paolo Carlini <pcarlini@suse.de>paolo2004-06-202-0/+101
| | | | | | | * testsuite/27_io/basic_istream/ignore/char/3.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83408 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.rth2004-06-2017-192/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. * c-pretty-print.c (pp_c_statement): Similarly. * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, gimplify_if_stmt): Move to cp-gimplify.c. (c_genericize, c_gimplify_expr): Don't call them. * c-semantics.c (push_cleanup): Move to cp/semantics.c. * c-typeck.c (push_cleanup): New. (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, c_finish_if_stmt): Use COND_EXPR. * tree.h (CLEANUP_EH_ONLY): Update documentation. cp/ * cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def. * cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c. (cp_gimplify_expr): Call it. (gimplify_cleanup_stmt): Move from c-gimplify.c. (cp_genericize): New. * decl.c (finish_function): Call it. * cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT. (CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h. (IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise. (cp_genericize): Declare. * cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT. * dump.c (cp_dump_tree): Likewise. * semantics.c (push_cleanup): Move from c-semantics.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83407 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-06-20 Andreas Tobler <a.tobler@schweiz.ch>andreast2004-06-203-1/+11
| | | | | | | | | * Makefile.am: Add rule for .S files to fix bootstrap on solaris and alpha. * Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83406 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (has_c_linkage): New interface.zack2004-06-2027-163/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-cppbuiltin.c: Include target.h. (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and __PRAGMA_EXTERN_PREFIX when appropriate. * c-pragma.c: Include target.h. Document clarified semantics of symbol-renaming #pragmas. (handle_pragma_redefine_extname, handle_pragma_extern_prefix) (maybe_apply_renaming_pragma): Rewrite according to clarified semantics. Always recognize, but do not necessarily execute. (init_pragma): Unconditionally register symbol-renaming pragmas. * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME and HANDLE_PRAGMA_EXTERN_PREFIX. * target.h (struct gcc_target): Add handle_pragma_redefine_extname and handle_pragma_extern_prefix flags. * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, not HANDLE_PRAGMA_REDEFINE_EXTNAME. (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, not HANDLE_PRAGMA_EXTERN_PREFIX. (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine into one section "Symbol-Renaming Pragmas"; clarify; document adjusted semantics. * builtins.c (expand_builtin): Do not issue error for a builtin with no special case code and no DECL_ASSEMBLER_NAME; just do the library call. * c-decl.c (builtin_function): Don't call make_decl_rtl. * c-objc-common.c (has_c_linkage): Stub implementation. * cgraphunit.c (cgraph_expand_function) (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. cp: * cp-lang.c (has_c_linkage): Implement. * cp-tree.h (set_mangled_name_for_decl): Don't prototype. * decl.c (duplicate_decls): Use COPY_DECL_RTL. (builtin_function_1): Don't call make_decl_rtl. (build_cp_library_fn): Don't call set_mangled_name_for_decl. (grokvardecl): Don't call mangle_decl. * except.c (nothrow_libfn_p): Look at DECL_NAME, not DECL_ASSEMBLER_NAME. * method.c (set_mangled_name_for_decl): Delete. * name-lookup.c (pushdecl): When a local extern shadows a file-scope declaration of the same object, give both DECLs the same DECL_UID. * typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE on DECL_ASSEMBLER_NAME. testsuite: * g++.dg/expr/enum1.C, g++.dg/opt/const3.C: Declare abort with extern "C". * g++.dg/other/pragma-re-1.C: Add comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83405 138bc75d-0d04-0410-961f-82ee72b054a4