aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2011-07-08typeck.c (cp_apply_type_quals_to_decl): Don't check COMPLETE_TYPE_P either.Jason Merrill2-6/+7
* typeck.c (cp_apply_type_quals_to_decl): Don't check COMPLETE_TYPE_P either. From-SVN: r176052
2011-07-08neon.md (vec_shr_<mode>, [...]): Disable in big-endian mode.Julian Brown4-23/+67
gcc/ * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in big-endian mode. (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>) (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>) (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>) (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>) (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>) (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>) (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q registers in big-endian mode. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_little_endian): New. (check_effective_target_vect_pack_trunc): Use above. (check_effective_target_vect_unpack): Likewise. (check_effective_target_vect_element_align): Test check_effective_target_arm_vect_no_misalign for ARM. From-SVN: r176050
2011-07-08constexpr-rom.C tweakJason Merrill1-1/+1
From-SVN: r176049
2011-07-08defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.Bernd Schmidt6-9/+44
* defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default. * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN. (REG_WORDS_BIG_ENDIAN): Document. * doc/tm.texi: Regenerate. * reload.c (operands_match_p): Take it into account. (reload_adjust_reg_for_mode): Likewise. * rtlanal.c (subreg_get_info): Likewise. From-SVN: r176048
2011-07-08genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined in terms ↵Bernd Schmidt2-1/+45
of another. * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined in terms of another. (write_attr_value): Write a cast if necessary. From-SVN: r176047
2011-07-08re PR c++/49673 ([C++0x] const variables initialised with constexpr ↵Jason Merrill6-13/+38
constructor placed in .data not .rodata) PR c++/49673 gcc/c-family/ * c-common.c (c_apply_type_quals_to_decl): Don't check TYPE_NEEDS_CONSTRUCTING. gcc/cp/ * typeck.c (cp_apply_type_quals_to_decl): Don't check TYPE_NEEDS_CONSTRUCTING. From-SVN: r176045
2011-07-08fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index folding.Richard Guenther2-7/+5
2011-07-08 Richard Guenther <rguenther@suse.de> * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index folding. From-SVN: r176044
2011-07-08fold-const.c (fold_truth_andor): Factored out truth_andor label from ↵Kai Tietz2-78/+107
fold_binary as function. 2011-07-08 Kai Tietz <ktietz@redhat.com> * fold-const.c (fold_truth_andor): Factored out truth_andor label from fold_binary as function. (fold_binary_loc): Replace truth_andor lable by function fold_truth_andor. From-SVN: r176043
2011-07-08re PR middle-end/49519 (Revision 175272 miscompiled 447.dealII in SPEC CPU 2006)Kirill Yukhin4-0/+156
Fix PR middle-end/49519. gcc/ 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com> PR middle-end/49519 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional check if address is stored in register. If so - give up. (check_sibcall_argument_overlap_1): Do not perform check of overlapping when it is call to address. gcc/tessuite/ 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com> PR middle-end/49519 * g++.dg/torture/pr49519.C: New test. From-SVN: r176042
2011-07-08avr.c (output_reload_insisf): Use 'REG_Z+1' instead of magic '31'.Georg-Johann Lay2-1/+6
* config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead of magic '31'. From-SVN: r176041
2011-07-08optabs.c (expand_binop): Tighten conditions for doubleword expansions.Bernd Schmidt4-6/+22
* optabs.c (expand_binop): Tighten conditions for doubleword expansions. (widen_bswap): Assert that mode bitsize and precision are the same. * stor-layout.c (get_best_mode): Skip modes that have lower precision than bitsize. * recog.c (simplify_while_replacing): Assert that bitsize and precision are the same. From-SVN: r176040
2011-07-08rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against a bitsize.Bernd Schmidt2-1/+4
* rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against a bitsize. From-SVN: r176039
2011-07-08optabs.c (expand_binop): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE ↵Bernd Schmidt6-45/+61
where appropriate. * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE where appropriate. (widen_leading, expand_parity, expand_ctz, expand_ffs, expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump, expand_float, expand_fix): Likewise. * expr.c (convert_move, convert_modes, expand_expr_real_2, expand_expr_real_1, reduce_to_bit_field_precision): Likewise. * cfgexpand.c (convert_debug_memory_address, expand_debug_expr): Likewise. * convert.c (convert_to_integer): Likewise. * expmed.c (expand_shift_1): Likewise. From-SVN: r176038
2011-07-08Makefile.in (LIBGCOV): Remove.Rainer Orth3-1012/+6
gcc: * Makefile.in (LIBGCOV): Remove. (libgcc.mvars): Remove LIBGCOV. * libgov.c: Move to ../libgcc. libgcc: * Makfile.in (LIBGCOV): New variable. ($(libgcov-objects)): Use $(srcdir) to refer to libgcov.c. * libgcov.c: New file. From-SVN: r176037
2011-07-08fixed-bit.c, [...]: Move to ../libgcc.Rainer Orth3-2498/+4
gcc: * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. libgcc: * fixed-bit.c, fixed-bit.h: New files. * fixed-obj.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir) to refer to fixed-bit.c. From-SVN: r176036
2011-07-08sra-12.c: Skip dump scan on avr targets.Martin Jambor2-2/+6
2011-07-08 Martin Jambor <mjambor@suse.cz> testsuite/ * gcc.dg/tree-ssa/sra-12.c: Skip dump scan on avr targets. From-SVN: r176035
2011-07-08re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2)Rainer Orth2-3/+13
PR testsuite/48727 * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. From-SVN: r176034
2011-07-08tree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big ↵Martin Jambor2-6/+19
for total scalarization. 2011-07-08 Martin Jambor <mjambor@suse.cz> * tree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big for total scalarization. From-SVN: r176033
2011-07-08re PR tree-optimization/49662 (XFAIL: gcc.dg/graphite/interchange-XX.c, PRE ↵Richard Guenther4-3/+13
confuses loop interchange) 2011-07-08 Richard Guenther <rguenther@suse.de> PR tree-optimization/49662 * gcc.dg/graphite/interchange-14.c: XFAIL. * gcc.dg/graphite/interchange-15.c: Likewise. * gcc.dg/graphite/interchange-mvt.c: Likewise. From-SVN: r176031
2011-07-08Daily bump.GCC Administrator1-1/+1
From-SVN: r176025
2011-07-07alpha-elf: Disable stabs debugging, and the mips sdb extensions.Richard Henderson2-1/+7
In particular, the mips sdb extensions accidentally implied the irix dwarf2 extensions and restrictions. Disable stabs because it's almost certainly untested for years. * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef. (DBX_DEBUGGING_INFO): Undef. From-SVN: r176021
2011-07-07Dump NOTE_INSN_CFI notes.Richard Henderson5-29/+71
* dwarf2out.c (output_cfi_directive): Export. Add FILE parameter. Handle some opcodes specially for debugging. * print-rtl.c: Include dwarf2out.h (print_rtx): Handle NOTE_INSN_CFI. * Makefile.in (print-rtl.o): Update. From-SVN: r176020
2011-07-07dwarf2: Extract cfi creation to a new pass.Richard Henderson12-107/+135
* tree-pass.h (pass_dwarf2_frame): Declare. * passes.c (init_optimization_passes): Add it. * dwarf2cfi.c (dwarf2out_frame_debug): Make static. (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue; make static, do not call add_cfis_to_fde. (dwarf2out_frame_debug_init, dwarf2cfi_function_init, dwarf2out_frame_init): Merge into... (execute_dwarf2_frame): ... here. New function. (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change saved_do_cfi_asm to a tri-state variable. (gate_dwarf2_frame, pass_dwarf2_frame): New. * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde if it has yet to be done. Don't call dwarf2cfi_function_init. * dwarf2out.h, debug.h: Update decls. * final.c (final_start_function): Don't call dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue. * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init. * toplev.c (lang_dependent_init): Likewise. From-SVN: r176019
2011-07-07dwarf2out: Convert fde_table to a VEC.Richard Henderson5-116/+101
Prepare for allocating the FDE for the current function earlier than dwarf2out_begin_prologue. * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use, FDE_TABLE_INCREMENT): Replace with... (fde_vec): ... this, a new vector. (current_fde): Remove. Replace all users with cfun->fde. (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec. (size_of_aranges, dwarf2out_finish): Likewise. (dwarf2out_alloc_current_fde): Break out from ... (dwarf2out_begin_prologue): ... here. (dwarf2out_frame_init): Remove. * dwarf2cfi.c: Update all users of current_fde. (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init. * dwarf2out.h: Update decls. (dw_fde_node): Add fde_index member. * function.h (struct function): Add fde member. From-SVN: r176018
2011-07-07dwarf2out: Emit NOTE_INSN_CFI_* both with and without cfi-asm.Bernd Schmidt5-229/+241
This patch is essentially Bernd's 006-cfilabel patch, updated for all the other changes to dwarf2out. The patch reduces the difference between the cfi-asm and non-cfi-asm code paths. We now emit the CFI notes in all cases. Later, after we're done producing the CFI insns we need, another pass over the rtl adds the necessary labels and set_loc/advance_loc CFIs. One consequence of this is that def_cfa_1 can no longer use lookup_cfa, so it just compares to an old_cfa variable instead. The major change since Bernd's patch is that all the target-specific changes are no longer necessary. * dwarf2cfi.c (add_cfi): Remove. (dwarf2out_cfi_label): Remove force argument. Only generate the label name. (add_fde_cfi): Simplify the different code paths. (add_cie_cfi): New. (old_cfa, old_cfa_remember): New. (def_cfa_1, reg_save): Remove label, add for_cie parameter. (last_reg_save_label): Remove. (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save, dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_cfa_restore, dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr): Remove label parameter. (cfi_label_required_p, add_cfis_to_fde): New. (dwarf2out_frame_debug_after_prologue): New. (dwarf2cfi_frame_init): Initialize old_cfa. (dwarf2out_frame_debug_restore_state): Likewise. * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm. (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here. * final.c (final_start_function): Call dwarf2out_frame_debug_after_prologue. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r176017
2011-07-07dwarf2out: Move insn scanning out of final.c.Bernd Schmidt7-55/+143
This patch is essentially Bernd's 005-scanfirst patch, updated for the introduction of the dwarf2cfi.c file. We introduce NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL to hold the dwarf2 info during the bulk of final. The actual construction of these notes still happens during final, right at the very beginning of the pass, via the dwarf2out_frame_debug_init hook. * dwarf2cfi.c (cfi_insn): New. (dwarf2out_cfi_label): Don't emit cfi label here. (add_fde_cfi): Create a NOTE_INSN_CFI. (dwarf2out_frame_debug): Setup cfi_insn. (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. (dwarf2out_cfi_begin_epilogue): Make static. (dwarf2out_frame_debug_restore_state): Make static. * dwarf2out.c (output_cfi_directive): Make static. (dwarf2out_emit_cfi): New. * dwarf2out.h: Update. * final.c (final): Remove CFI notes. (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. * insn-notes.def (NOTE_INSN_CFI): New. (NOTE_INSN_CFI_LABEL): New. * rtl.h (union rtunion_def): Add rt_cfi member. (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r176016
2011-07-07dwarf2out: Split CFI construction routines into a new file.Richard Henderson8-2780/+3019
Excepting changing some functions from static to extern, this patch contains code motion only. The split is not very clean at this point, but will be refined as CFI construction is turned into its own proper pass. * dwarf2cfi.c: New file. * Makefile.in (OBJS): Add it. (GTFILES): Add dwarf2cfi.c and dwarf2out.h. * gengtype.c (open_base_files): Include dwarf2out.h. * coretypes.h (enum var_init_status): Move from ... * rtl.h: ... here. * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame, dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num, expand_builtin_dwarf_sp_column, init_return_column_size, expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi, dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi, lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size, old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save, stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1, compute_barrier_args_size, dwarf2out_args_size, dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust, queued_reg_saves, reg_saved_in_data, regs_saved_in_regs, compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label, queue_reg_save, dwarf2out_flush_queued_reg_saves, clobbers_queued_reg_save, reg_saved_in, cfa_temp, dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_cfa_restore, dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr, dwarf2out_frame_debug, dwarf2out_frame_debug_init, dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, get_cfa_from_loc_descr): Move to dwarf2cfi.c. (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type, dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node, dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref, dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node, dw_loc_descr_node): Move to dwarf2out.h. (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode, mem_loc_descriptor): Export. (build_cfa_aligned_loc): Export. Take CFA as a parameter. (dwarf2out_frame_init): Extract CIE generation code to dwarf2cfi_frame_init. From-SVN: r176015
2011-07-07re PR c++/49663 ([C++0x] ICE in lookup_base)Jason Merrill6-21/+92
PR c++/49663 * pt.c (push_deduction_access_scope): Preserve processing_template_decl across push_to_top_level. And revert: * class.c (pushclass): Accept NULL argument. (popclass): Deal with popping null class. * pt.c (push_access_scope, pop_access_scope): Use them rather than push_to_top_level/pop_from_top_level. * name-lookup.c (lookup_name_real_1): Check current_class_type. From-SVN: r176013
2011-07-07re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual ↵Mikael Morin2-0/+32
argument) 2011-07-07 Mikael Morin <mikael.morin@sfr.fr> PR fortran/49648 * gfortran.dg/result_in_spec_4.f90: New test. From-SVN: r176012
2011-07-07re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual ↵Mikael Morin2-0/+8
argument) 2011-07-07 Mikael Morin <mikael.morin@sfr.fr> PR fortran/49648 * resolve.c (resolve_symbol): Force resolution of function result's array specification. From-SVN: r176011
2011-07-07re PR target/49660 (64-bit gcc doesn't enable -mv8plus with -m32 on ↵Eric Botcazou4-6/+32
Solaris/SPARC) PR target/49660 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add MASK_V8PLUS, remove commented out flag and reorder. From-SVN: r176008
2011-07-07re PR c/49644 (post-increment of promoted operand is incorrect.)Jakub Jelinek4-0/+29
PR c/49644 * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with one non-complex and one complex argument, call save_expr on both operands. * g++.dg/torture/pr49644.C: New test. From-SVN: r176006
2011-07-07re PR c/49644 (post-increment of promoted operand is incorrect.)Jakub Jelinek4-0/+30
PR c/49644 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with one non-complex and one complex argument, call c_save_expr on both operands. * gcc.c-torture/execute/pr49644.c: New test. From-SVN: r176004
2011-07-07Add ia32 and x32 effective targets.H.J. Lu2-1/+30
2011-07-07 H.J. Lu <hongjiu.lu@intel.com> * lib/target-supports.exp (check_effective_target_ia32): New. (check_effective_target_x32): Likewise. (check_effective_target_vect_cmdline_needed): Also check x32. From-SVN: r176000
2011-07-07re PR middle-end/49495 (-O3 causes error message "edge points to wrong ↵Martin Jambor2-11/+30
declaration:") 2011-07-07 Martin Jambor <mjambor@suse.cz> PR middle-end/49495 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. (verify_cgraph_node): Some functinality moved to verify_edge_corresponds_to_fndecl, call it. From-SVN: r175998
2011-07-07pr40657-2.c: Remove -march option and unneeded dg-prune-output.Janis Johnson6-10/+12
* gcc.target/arm/pr40657-2.c: Remove -march option and unneeded dg-prune-output. * gcc.target/arm/pr42235.c: Likewise. * gcc.target/arm/pr42495.c: Likewise. * gcc.target/arm/pr42574.c: Likewise. * gcc.target/arm/thumb-branch1.c: Likewise. From-SVN: r175997
2011-07-07pr39839.c: Don't specify -mthumb or -march, remove unneeded prune of ↵Janis Johnson4-9/+9
possible warning. * gcc.target/arm/pr39839.c: Don't specify -mthumb or -march, remove unneeded prune of possible warning. * gcc.target/arm/pr40956.c: Likewise. * gcc.target/arm/pr42505.c: Likewise. From-SVN: r175996
2011-07-07pr41679.c: Move from gcc.target/arm.Janis Johnson4-0/+4
* gcc.c-torture/compile/pr41679.c: Move from gcc.target/arm. * gcc.c-torture/compile/pr46883.c: Likewise. * gcc.c-torture/compile/pr46934.c: Likewise. From-SVN: r175995
2011-07-07pr41679.c: Remove test directives in preparation for move to ↵Janis Johnson4-12/+6
../../gcc.c-torture/compile. * gcc.target/arm/pr41679.c: Remove test directives in preparation for move to ../../gcc.c-torture/compile. * gcc.target/arm/pr46883.c: Likewise. * gcc.target/arm/pr46934.c: Likewise. From-SVN: r175994
2011-07-07target-supports.exp (check_effective_target_arm_dsp): New.Janis Johnson11-13/+48
* lib/target-supports.exp (check_effective_target_arm_dsp): New. * gcc.target/arm/mla-2.c: Use it instead of specific -march. * gcc.target/arm/wmul-1.c: Likewise. * gcc.target/arm/wmul-2.c: Likewise. * gcc.target/arm/wmul-3.c: Likewise. * gcc.target/arm/wmul-4.c: Likewise. * gcc.target/arm/smlaltb-1.c: Require arm_dsp, don't specify -march, add tab after scan target. * gcc.target/arm/smlaltt-1.c: Likewise. * gcc.target/arm/smlatb-1.c: Likewise. * gcc.target/arm/smlatt-1.c: Likewise. From-SVN: r175993
2011-07-07config.gcc (*local*): Remove.Joseph Myers3-21/+5
gcc: * config.gcc (*local*): Remove. * doc/install-old.texi: Don't mention local configurations. libgcc: * config.host (*local*): Remove. From-SVN: r175988
2011-07-07re PR debug/49522 (Divide by zero in validate_subreg in emit-rtl.c:695)Jakub Jelinek4-2/+76
PR debug/49522 * df-problems.c (dead_debug_reset): Remove dead_debug_uses referencing debug insns that have been reset. (dead_debug_insert_before): Don't assert reg is non-NULL, instead return immediately if it is NULL. * gcc.dg/debug/pr49522.c: New test. M gcc/ChangeLog A gcc/testsuite/gcc.dg/debug/pr49522.c M gcc/testsuite/ChangeLog M gcc/df-problems.c From-SVN: r175987
2011-07-07t-crtpic, [...]: Remove.Joseph Myers4-24/+5
* config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove. From-SVN: r175986
2011-07-07hw-doloop.c: New file.Bernd Schmidt6-668/+928
* hw-doloop.c: New file. * hw-doloop.h: New file. * Makefile.in (OBJS): Add hw-doloop.o. (hw-doloop.o): New rule. ($(obj_out_file)): Add hw-doloop.h dependency. * config/bfin/bfin.c: Include "hw-doloop.h". (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove. (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove. (hwloop_optimize): Renamed from bfin_optimize_loop. Argument type changed to hwloop_info. Return bool, true if the loop was successfully optimized. Remove code that was moved to hw-doloop.c, and adjust other parts. (hwloop_fail): New static function, containing parts that used to be in bfin_optimize_loop. (bfin_discover_loop, bfin_discover_loops, free_loops, bfin_reorder_loops): Remove. (hwloop_pattern_reg): New static function. (bfin_doloop_hooks): New variable. (bfin_reorg_loops): Remove most code, call reorg_loops. * config/bfin/bfin.md (doloop_end splitter): Also enable if loop counter is a memory_operand. From-SVN: r175985
2011-07-07Initial x32 support.H.J. Lu13-22/+156
2011-07-07 H.J. Lu <hongjiu.lu@intel.com> * config.gcc: Support --with-multilib-list for x86 Linux targets. * configure.ac: Mention x86-64 for --with-multilib-list. * configure: Regenerated. * config/i386/gnu-user64.h (SPEC_64): Support x32. (SPEC_32): Likewise. (ASM_SPEC): Likewise. (LINK_SPEC): Likewise. (TARGET_THREAD_SSP_OFFSET): Likewise. (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. (SPEC_X32): New. * config/i386/i386.h (TARGET_X32): New. (TARGET_LP64): New. (LONG_TYPE_SIZE): Likewise. (POINTER_SIZE): Likewise. (POINTERS_EXTEND_UNSIGNED): Likewise. (OPT_ARCH64): Support x32. (OPT_ARCH32): Likewise. * config/i386/i386.opt (mx32): New. * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. (GLIBC_DYNAMIC_LINKERX32): Likewise. * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. (GLIBC_DYNAMIC_LINKERX32): Likewise. * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. (BIONIC_DYNAMIC_LINKERX32): Likewise. (GNU_USER_DYNAMIC_LINKERX32): Likewise. * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. * doc/install.texi: Document --with-multilib-list for Linux/x86-64. * doc/invoke.texi: Document -mx32. From-SVN: r175984
2011-07-07pragma-align.c: Run only if target !default_packed.Georg-Johann Lay11-1/+25
* gcc.dg/pragma-align.c: Run only if target !default_packed. * gcc.dg/pr46212.c: Run only if target int32plus. * gcc.dg/torture/pr48146.c: Ditto. * gcc.dg/tree-ssa/vrp51.c: Ditto. * c-c++-common/pr44832.c: Ditto. * gcc.dg/pr49544.c: Run only if target ptr32plus. * gcc.dg/pr31490.c: Ditto. * gcc.dg/torture/builtin-math-7.c: Run only if target large_double. * gcc.dg/torture/pr45764.c: Skip for AVR. * gcc.dg/pr47893.c: Ditto. From-SVN: r175983
2011-07-07target-supports.exp (check_effective_target_arm_thumb1): New.Janis Johnson3-4/+25
* lib/target-supports.exp (check_effective_target_arm_thumb1): New. (check_effective_target_arm_thumb2): Clarify comment, add valid code. * gcc.target/arm/mla-1.c: Skip for arm_thumb1, don't specify -march, add tab to scan target. From-SVN: r175982
2011-07-07invoke.texi (mwords-little-endian): Deprecate.Richard Sandiford4-2/+13
gcc/ * doc/invoke.texi (mwords-little-endian): Deprecate. * config/arm/arm.opt (mwords-little-endian): Likewise. * config/arm/arm.c (arm_option_override): Warn about the deprecation of -mwords-little-endian. From-SVN: r175981
2011-07-07reload1.c (choose_reload_regs): Use mode sizes to check whether an old ↵Richard Sandiford4-13/+73
reload register completely defines the... gcc/ * reload1.c (choose_reload_regs): Use mode sizes to check whether an old reload register completely defines the required value. gcc/testsuite/ * gcc.target/arm/neon-modes-3.c: New test. From-SVN: r175980
2011-07-07pr37485.c (dg-options): Add -fno-loop-strip-mine -fno-loop-interchange ↵Uros Bizjak2-2/+7
-ffast-math. * gcc.dg/graphite/pr37485.c (dg-options): Add -fno-loop-strip-mine -fno-loop-interchange -ffast-math. From-SVN: r175977