summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* 2009-08-12 Andrey Belevantsev <abel@ispras.ru>abel2009-08-121-0/+6
| | | | | | | | | | | | | | PR rtl-optimization/41033 * alias.c (nonoverlapping_component_refs_p): Punt if strict aliasing is disabled. 2009-08-12 Richard Guenther <rguenther@suse.de> PR rtl-optimization/41033 * gcc.dg/pr41033.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150680 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,nemet2009-08-111-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | si_mask_operand, and_load_operand, low_bitmask_operand, and_reg_operand, and_operand): New predicates. * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints. * config/mips/mips.c (and_operands_ok): New function. * config/mips/mips-protos.h (and_operands_ok): Declare it. * config/mips/mips.md (move_type): Add ext_ins and logical. (type): Handle them. (and<mode>3): Use and_reg_operand as the second operand's predicate. (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and shift_shift. Remove commutative constraint modifier. (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and shift_shift. (*clear_upper32_dext): Remove define_insn_and_split. (*clear_upper32): Turn this define_insn_and_split ... (splitter for ANDing register with 0xffff_ffff): .. into this. testsuite/ * gcc.target/mips/ext-5.c: New test. * gcc.target/mips/ext-6.c: New test. * gcc.target/mips/ext-7.c: New test. * gcc.target/mips/ext-8.c: New test. * gcc.target/mips/extend-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150657 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (try_widen_shift_mode): Factor out code to check if annemet2009-08-111-0/+7
| | | | | | | | | integer constant is a low-order bitmask from here ... * rtlanal.c (low_bitmask_len): ... to here. * rtl.h (low_bitmask_len): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150656 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/8603uros2009-08-111-14/+19
| | | | | | | | | | | * config/alpha/alpha.md (addsi3): Remove expander. (addsi3): Rename from *addsi3_internal insn pattern. (subsi3): Remove expander. (subsi3): Rename from *subsi3_internal insn pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150654 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE andrupp2009-08-111-0/+5
| | | | | | | | FWRITE_UNLOCKED. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150653 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensurerupp2009-08-111-0/+12
| | | | | | | | | | | | | that records that fit in 64 bits are returned by immediate value, as required by OpenVMS Calling Standard. (function_value): Adjust for above modification. (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use virtual_incoming_args_rtx as base object, not next_arg. * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150652 138bc75d-0d04-0410-961f-82ee72b054a4
* * reload.c (find_reloads_subreg_address): Check the originaluweigand2009-08-111-0/+6
| | | | | | | | req_equiv_mem address to detect the case where an address is not valid in the outer mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150649 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-11 Richard Guenther <rguenther@suse.de>guerby2009-08-111-0/+6
| | | | | | | | | | PR bootstrap/40788 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150648 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Removerupp2009-08-111-0/+5
| | | | | | | | (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150647 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_sa_size): Force procedure type torupp2009-08-111-0/+19
| | | | | | | | | | | | | | | | | | | | | PT_STACK when frame_pointer_needed on OpenVMS. (alpha_pv_save_size, alpha_using_fp): Remove. (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE with proper processing for PT_NULL. (alpha_vms_initial_elimination_offset): New function. Support for INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL. (alpha_sa_size): Force procedure type to PT_STACK when frame_pointer_needed on OpenVMS. * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype. (alpha_using_fp): Likewise. (alpha_vms_can_eliminate): Add prototype. (alpha_vms_initial_elimination_offset): Likewise. * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150646 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (common_object_handler): New function.rupp2009-08-111-0/+16
| | | | | | | | | | | | | | | | | | (vms_attribute_table): Declare a single attribute "common_object". (vms_output_aligned_decl_common): New global function. (SECTION_VMS_OVERLAY): Delete. (SECTION_VMS_GLOBAL): Likewise. (SECTION_VMS_INITIALIZE): Likewise. (vms_asm_named_section): Remove support for above flags. (vms_section_type_flags): Delete. (TARGET_SECTION_TYPE_FLAGS): Likewise. * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New. * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150645 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/41015kkojima2009-08-101-0/+6
| | | | | | | | | * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list. (sub_ddmmss): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150635 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-10 Andreas Tobler <a.tobler@schweiz.org>andreast2009-08-101-0/+6
| | | | | | | | | PR bootstrap/41018 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright year. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150632 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/37053uweigand2009-08-101-0/+6
| | | | | | | | * reload1.c (reload_as_needed): Use cancel_changes to completely undo a failed replacement attempt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150626 138bc75d-0d04-0410-961f-82ee72b054a4
* * Moved ChangeLog entry to the correct ChangeLognvachhar2009-08-101-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150625 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-10 Richard Guenther <rguenther@suse.de>rguenth2009-08-101-0/+7
| | | | | | | | | | | | | PR middle-end/41006 * tree-ssa.c (useless_type_conversion_p_1): Fold into ... (useless_type_conversion_p): ... here. Require pointer targets to be compatible. * gcc.c-torture/compile/pr41006-1.c: New testcase. * gcc.c-torture/compile/pr41006-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150621 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-10 Dodji Seketeli <dodji@redhat.com>dodji2009-08-101-0/+6
| | | | | | | | | | | | | | | | gcc/ChangeLog: PR c++/40866 * tree-inline.c (copy_statement_list): The resulting copy shouldn't loose the original type of the statement list. gcc/testsuite/ChangeLog: PR c++/40866 * g++.dg/expr/stmt-expr-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150615 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c: Include libfuncs.hrupp2009-08-101-0/+17
| | | | | | | | | | | | | | | | | | | | (avms_asm_output_extern): New function. (alpha_init_libfuncs): Init some decc libfuncs. * config/alpha/alpha-protos.h (avms_asm_output_external): Declare. * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define. (DO_CRTL_NAMES): Define. (LIB_SPEC): Remove. * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef. (LONG_TYPE_SIZE): Define. (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1 (SUBTARGET_SWITCHES): Define malloc64 switch. (TARGET_DEFAULT): Default MASK_MALLOC64 set. (MASK_RETURN_ADDR): Define. doc/invoke.texi (mmalloc64): Document switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150614 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (struct machine_function): New flag for VMS,rupp2009-08-101-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | uses_condition_handler. (alpha_expand_builtin_establish_vms_condition_handler): New expander. (alpha_expand_builtin_revert_vms_condition_handler): New expander. (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values. (code_for_builtin): New insn codes for the new alpha_builtins. (alpha_init_builtins): Register the new functions as BUILT_IN_MD. (alpha_sa_size): Account for uses_condition_handler. (alpha_expand_prologue): Likewise. (alpha_start_function): Likewise. (alpha_expand_epilogue): Likewise. * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin establish/revert expanders. * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define. * config/alpha/alpha.md (builtin_establish_vms_condition_handler): New expander, resorting to the alpha.c associated function. (builtin_revert_vms_condition_handler): Likewise. * config/alpha/vms-gcc_shell_handler.c: New file. Implements __gcc_shell_handler, the static VMS condition handler used as an indirection wrapper to the current dynamically established handler. * config/alpha/vms-unwind.h: Complete rewrite. * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c * config/alpha/vms.h (MD_UNWIND_SUPPORT): git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150612 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_links): Add 'target' field.rupp2009-08-101-0/+11
| | | | | | | | | | | | | (alpha_need_linkage): Handle aliases. Return function symbol. (alpha_use_linkage): Rename 'linkage' argument to 'func'. Use ultimate alias target for the linkage name. * config/alpha/alpha.md (movmemdi): Use the symbol returned by alpha_need_linkage for the function symbol. (setmemdi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150611 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.rupp2009-08-101-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define. (ASM_WEAKEN_LABEL): Define. (CRT_CALL_STATIC_FUNCTION): Define. (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o. (ENDFILE_SPEC): Define. (INIT_SECTION_ASM_OP): Define. * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove. * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o crtend.o crtendS.o. (MULTILIB_OSDIRNAMES): Define. (shlib_version): Define. (SHLIB_EXT): Define. (SHLIB_OBJS): Define. (SHLIB_NAME): Define. (SHLIB_MULTILIB): Define. (SHLIB_INSTALL): Define. (SHLIB_SYMVEC): Define. (SHLIB_SYMVECX2): Define. (SHLIB_LINK): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150610 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_initialize_trampoline):rupp2009-08-101-0/+12
| | | | | | | | | | | | | | | Initialize VMS trampoline IAW ABI for bounded procedure calls. (alpha_start_function): Emit transfer address on nested functions for VMS trampoline call. * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm since no longer used. * config/alpha/vms-tramp.asm: Remove. * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined since now only data initialized at runtime. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150609 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.rupp2009-08-101-0/+10
| | | | | | | | | | | | | (LINK_GCC_C_SEQUENCE_SPEC): Define. (MD_EXEC_PREFIX): Remove, no longer used. (MD_STARTFILE_PREFIX): Likewise. (INCLUDE_DEFAULTS): Likewise. * config/alpha/t-vms: (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150608 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-09 Richard Guenther <rguenther@suse.de>rguenth2009-08-091-0/+9
| | | | | | | | | | | | | | PR tree-optimization/41016 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug. (operand_precision): Remove. (integral_operand_p): Likewise. (recognize_single_bit_test): Adjust. * gcc.c-torture/compile/pr41016.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150595 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2009-08-091-0/+12
| | | | | | | | | | | | | | | | | | * c-common.c (c_fully_fold_internal): Issue a warning if a binary operation overflows. Likewise non-cast unary arithmetic. If one arm of a conditional expression is always taken, inhibit evaluation warnings for the other arm. Likewise inhibit evaluation warnings for the second && or || operand if the first operand is enough to determine the result. * c-typeck.c (build_conditional_expr): Apply the same inhibition rules here. (build_binary_op): Prevent duplicate evaluation warnings. gcc/testsuite/ * gcc.dg/overflow-warn-8.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150594 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2009-08-091-0/+9
| | | | | | | | | | | | * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source and destination have different modes, Use promote_mode to determine the signedness of the conversion. Assert that the promoted source mode matches the destination mode. Don't pass the destination and destination mode to expand_expr if the source mode is different. Simplify conversion logic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150592 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/41008irar2009-08-091-0/+6
| | | | | | | | | * tree-vect-loop.c (vect_is_simple_reduction): Get operands from condition only in case it's a comparison. Adjust checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150591 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.bernds2009-08-091-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it. * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer. (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE. (dump_cand): Handle them. (struct iv_cand): New members COST_STEP and AINC_USE. (stmt_after_increment): Likewise. (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All callers changed. Use gimple_uid comparison instead of scanning. (add_candidate_1): When looking for identical candidates, take AINC_USE into account. Set it for new candidates. (force_expr_to_var_cost): Cast target_spill_cost to int. (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC. All callers changed. Check for availability of autoinc addressing modes, both in general for a given mode, and in the specific use case. (get_computation_cost_at): New argument CAN_AUTOINC. All callers changed. (get_computation_cost): Likewise. (autoinc_possible_for_pair, set_autoinc_for_original_candidates, add_autoinc_candidates): New static functions. (add_candidate): Call add_autoinc_candidates for candidates based on a USE_ADDRESS use. (find_iv_candidates): Call set_autoinc_for_original_candidates. (determine_use_iv_cost_address): If we have an autoinc candidate at the matching use, verify autoinc is possible and subtract the cost of the candidate's step from the cost. (determine_iv_cost): Record the cost of the increment in the COST_STEP member of the candidate. (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks. testsuite/ * gcc.target/bfin/loop-autoinc.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150588 138bc75d-0d04-0410-961f-82ee72b054a4
* * config.build (ia64-hp-*vms*): New target.rupp2009-08-091-0/+12
| | | | | | | | | | | | | | | | | | (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify with ia64-hp-*vms*. * config.gcc (ia64-hp-*vms*): New target. (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify with ia64-hp-*vms*. * config.host (ia64-hp-*vms*): New target. (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify with ia64-hp-*vms*. * libgcc/config.host (ia64-hp-*vms*): New target. (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify with ia64-hp-*vms*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150587 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-08 Richard Guenther <rguenther@suse.de>rguenth2009-08-081-0/+5
| | | | | | | | | | PR tree-optimization/40991 * tree-ssa-pre.c (eliminate): Delay purging EH edges. * g++.dg/torture/pr40991.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150580 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2009-08-081-0/+7
| | | | | | | | | | * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from mode check. Do truncations in an integer mode. (force_to_mode): Handle subregs for all mode types. Only do arithmetic simplifications on integer modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150578 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-07 Richard Guenther <rguenther@suse.de>rguenth2009-08-071-0/+7
| | | | | | | | | | | | PR tree-optimization/40999 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs. (maybe_fold_reference): Lookup constant initializers. (fold_gimple_assign): Likewise. * gfortran.dg/pr40999.f: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150572 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-07 Richard Guenther <rguenther@suse.de>rguenth2009-08-071-0/+5
| | | | | | | | * tree-ssa.c (useless_type_conversion_p_1): Only for types that require structural equality defer to the langhook. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150559 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-07 Martin Jambor <mjambor@suse.cz>jamborm2009-08-071-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed comments. (struct ipa_pass_through_data): New type. (struct ipa_ancestor_jf_data): New type. (union jump_func_value): Removed field formal_id, added fields pass_through and ancestor. (struct ipa_param_call_note): Changed type of formal_id to int from unsigned. * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with operations jump functions and ancestor jump functions. (compute_complex_pass_through): New function. (compute_scalar_jump_functions): Call compute_complex_pass_through, reflect changes in the jump function strucutre. (update_jump_functions_after_inlining): Ignore complex pass-through and ancestor jump functions. * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and polynomial pass-through with operation jump functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150554 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2out.c (output_fde): When doing hot/cold partitioning, usejakub2009-08-071-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fde->dw_fde_begin as begin label instead of hot/cold label. Use LLSDAC label instead of LLSDA for second section lsda. (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC label instead of LLSDA if it is true. (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust callers. * except.c (add_call_site, dw2_size_of_call_site_table): Add SECTION argument. Use it as index into crtl->eh.call_site_record array. (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument, use it to determine how to print table entries instead of using #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold label instead of normal begin label as base. (sjlj_assign_call_site_values): Adjust add_call_site caller. (convert_to_eh_region_ranges): When doing hot/cold partitioning, ensure no EH range spans between sections and that landing pads are always in the corresponding section. (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust for crtl->eh.call_site_record being an array rather than scalar. (output_one_function_exception_table): New function, copied from output_function_exception_table. Adjust dw2_size_of_call_site_table, dw2_output_call_site_table callers. For SECOND section use *C suffixed labels. (output_function_exception_table): Call output_one_function_exception_table and, when doing hot/cold partitioning, also another time for the second section. * opts.c: Include except.h. (decode_options): Allow -freorder-blocks-and-partition with exceptions, unless SJLJ or TARGET_UNWIND_INFO. * Makefile.in (opts.o): Depend on $(EXCEPT_H). * function.h (struct rtl_eh): Change call_site_record from scalar into array of 2 elements. * g++.dg/tree-prof/partition1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150553 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-07 Martin Jambor <mjambor@suse.cz>jamborm2009-08-071-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * ipa-prop.c (count_formal_params_1): New function. (ipa_get_vector_of_formal_parms): New function. (get_vector_of_formal_parm_types): New function. (ipa_modify_formal_parameters): New function. (ipa_modify_call_arguments): New function. (index_in_adjustments_multiple_times_p): New function. (ipa_combine_adjustments): New function. (ipa_dump_param_adjustments): New function. * ipa-prop.h (struct ipa_parm_adjustment): New type. (ipa_get_vector_of_formal_parms): Declare. (ipa_modify_formal_parameters): Declare. (ipa_modify_call_arguments): Declare. (ipa_combine_adjustments): Declare. (ipa_dump_param_adjustments): Declare. (build_ref_for_offset): Declare. * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies. * tree-sra.c: Include ipa-prop.c. (build_ref_for_offset): Make public. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150551 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-06 Thomas Schwinge <tschwinge@gnu.org>tschwinge2009-08-061-0/+5
| | | | | | | | | * gcc/doc/extend.texi (__builtin_extract_return_address) (__builtin_frob_return_address): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150546 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.kazu2009-08-061-0/+6
| | | | | | | | (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1 implementation on ARMv6-M. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150545 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/extend.texi (pcs): Document new attribute for ARM.rearnsha2009-08-061-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150531 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c (pcs_attribute_args): Comment out unsupported attributerearnsha2009-08-061-0/+5
| | | | | | variants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150530 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c (arm_handle_pcs_attribute): Pass the entire name object torearnsha2009-08-061-0/+5
| | | | | | warning (). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150528 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c (arm_handle_pcs_attribute): Use %qE in warning.rearnsha2009-08-061-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150527 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge ARM/hard_vfp_branch to trunkrearnsha2009-08-061-0/+136
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150525 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/40957uros2009-08-061-0/+11
| | | | | | | | | | | | | | | | | | * config/i386/i386.c (standard_sse_mode_p): Remove. (standard_sse_constant_p): Return 2 for integer mode vector_all_ones_operand when SSE2 is enabled. (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd. (ix86_expand_vector_move): Do not check for negative values from standard_sse_constant_p. testsuite/ChangeLog: PR target/40957 * gcc.target/i386/pr40957: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150520 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-06 Richard Guenther <rguenther@suse.de>rguenth2009-08-061-0/+17
| | | | | | | | | | | | | | | | | | | | * tree-ssa.c (useless_type_conversion_p_1): Make function and array type comparisons frontend independent. * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill out array reference lower bound and element size operands. (ao_ref_init_from_vn_reference): Properly compute the offset for ARRAY_RANGE_REF. (vn_reference_fold_indirect): Fill out array reference lower bound and element size operands. * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate a non gimple valued reference operand which can happen for array reference lower bound or element size. (create_component_ref_by_pieces_1): Properly generate the element size operand for array references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150519 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-06 Richard Guenther <rguenther@suse.de>rguenth2009-08-061-0/+14
| | | | | | | | | | | | | | | | | | | PR tree-optimization/40964 * tree.c (iterative_hash_host_wide_int): Export. * tree.h (iterative_hash_host_wide_int): Declare. * tree-ssa-structalias.c (heapvar_map): New struct. (heapvar_map_eq): New function. (heapvar_map_hash): Likewise. (heapvar_lookup): Adjust. (heapvar_insert): Likewise. (make_constraint_from_heapvar): Allow multiple heap variables per decl at different offsets. (init_alias_heapvars): Adjust. * gcc.c-torture/compile/pr40964.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150518 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-04 David Daney <ddaney@caviumnetworks.com>daney2009-08-061-0/+6
| | | | | | | | | * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro. * mips_output_sync_loop (mips_output_sync_loop): Only emit trailing sync if TARGET_SYNC_AFTER_SC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150513 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-05 David Daney <ddaney@caviumnetworks.com>daney2009-08-061-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc/config/mips/sync.md (sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>, sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12, sync_old_nand_12, sync_new_nand_12, sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, sync_new_nand<mode>, sync_lock_test_and_set<mode>, test_and_set_12): Rewrite calls to mips_output_sync_loop. * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make the prototype declaration match the definition. * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync instructions explicitly. Add barrier_before and operands parameters. * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12, MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Remove sync instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150512 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-05 Andrew Pinski <pinskia@gmail.com>pinskia2009-08-051-0/+4
| | | | | | | * tree-ssa-alias.c: Fix intervals to use [) syntax. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150496 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/40906uros2009-08-051-0/+7
| | | | | | | | | | | | | | | | * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part source operand. testsuite/ChangeLog: PR target/40906 * gcc.target/i386/pr40906-1.c: New test. * gcc.target/i386/pr40906-2.c: Ditto. * gcc.target/i386/pr40906-3.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150486 138bc75d-0d04-0410-961f-82ee72b054a4