Commit Graph

110166 Commits

Author SHA1 Message Date
Kirill Yukhin 6c3cb698c5 re PR middle-end/49519 (Revision 175272 miscompiled 447.dealII in SPEC CPU 2006)
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-08 06:12:03 -07:00
Georg-Johann Lay 7d8d6d7359 avr.c (output_reload_insisf): Use 'REG_Z+1' instead of magic '31'.
* config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
	of magic '31'.

From-SVN: r176041
2011-07-08 13:09:07 +00:00
Bernd Schmidt 0d44736e75 optabs.c (expand_binop): Tighten conditions for doubleword expansions.
* 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-08 13:03:38 +00:00
Bernd Schmidt 86cdf39313 rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against a bitsize.
* rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
	a bitsize.

From-SVN: r176039
2011-07-08 13:01:07 +00:00
Bernd Schmidt 69660a7091 optabs.c (expand_binop): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE 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-08 12:57:50 +00:00
Rainer Orth 2c50b2c366 Makefile.in (LIBGCOV): Remove.
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-08 11:43:54 +00:00
Rainer Orth a039d7c2f1 fixed-bit.c, [...]: Move to ../libgcc.
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-08 11:18:38 +00:00
Martin Jambor c0d8ec2b23 sra-12.c: Skip dump scan on avr targets.
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-08 12:25:55 +02:00
Rainer Orth 6a6e71449b re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2)
PR testsuite/48727
	* g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*.

From-SVN: r176034
2011-07-08 10:20:36 +00:00
Martin Jambor e923ef4132 tree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big 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-08 12:16:51 +02:00
Rainer Orth 00fc1bf6c7 configure.host (abi_baseline_subdir_switch): Describe.
* configure.host (abi_baseline_subdir_switch): Describe.
	Provide default.
	(*-*-solaris2.[89], *-*-solaris2.1[0-9]): Override.
	* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Substitute
	baseline_subdir_switch.
	* testsuite/Makefile.am (site.exp): Emit it.
	(baseline_subdir): Use it.
	* testsuite/libstdc++-abi/abi.exp: Use it.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r176032
2011-07-08 08:49:57 +00:00
Richard Guenther e3fe54189f re PR tree-optimization/49662 (XFAIL: gcc.dg/graphite/interchange-XX.c, PRE 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-08 08:42:31 +00:00
GCC Administrator 02af27fbc0 Daily bump.
From-SVN: r176025
2011-07-08 00:17:49 +00:00
Richard Henderson b709e18930 alpha-elf: Disable stabs debugging, and the mips sdb extensions.
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-07 17:14:19 -07:00
Richard Henderson 2867fa7cbd Dump NOTE_INSN_CFI notes.
* 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-07 17:13:02 -07:00
Richard Henderson 7644b3c7f0 dwarf2: Extract cfi creation to a new pass.
* 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-07 17:05:57 -07:00
Richard Henderson a518b99616 dwarf2out: Convert fde_table to a VEC.
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-07 16:57:26 -07:00
Bernd Schmidt 89e25f9584 dwarf2out: Emit NOTE_INSN_CFI_* both with and without cfi-asm.
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-07 16:51:16 -07:00
Bernd Schmidt bc5612ed56 dwarf2out: Move insn scanning out of final.c.
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-07 16:42:41 -07:00
Richard Henderson 647a156710 dwarf2out: Split CFI construction routines into a new file.
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-07 16:35:22 -07:00
Jason Merrill 0771d9d750 re PR c++/49663 ([C++0x] ICE in lookup_base)
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-07 17:53:58 -04:00
Mikael Morin ceeb79a48e re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual 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-07 21:03:25 +00:00
Mikael Morin e3d748dd0e re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual 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-07 20:58:16 +00:00
Eric Botcazou b286d9ed5f re PR target/49660 (64-bit gcc doesn't enable -mv8plus with -m32 on 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-07 20:36:59 +00:00
Jakub Jelinek e834d8486a re PR c/49644 (post-increment of promoted operand is incorrect.)
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-07 21:41:55 +02:00
Jakub Jelinek c4603e7ce0 re PR c/49644 (post-increment of promoted operand is incorrect.)
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-07 21:11:27 +02:00
H.J. Lu 489319d5aa Add ia32 and x32 effective targets.
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-07 11:11:18 -07:00
Matthias Klose 9b5cfeea5f libtool-version: Bump soversion.
2011-07-07  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

From-SVN: r175999
2011-07-07 18:10:16 +00:00
Martin Jambor 81361831c0 re PR middle-end/49495 (-O3 causes error message "edge points to wrong 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-07 20:08:00 +02:00
Janis Johnson 1797adbd71 pr40657-2.c: Remove -march option and unneeded dg-prune-output.
* 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-07 17:50:13 +00:00
Janis Johnson 040629afcb pr39839.c: Don't specify -mthumb or -march, remove unneeded prune of 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-07 17:49:18 +00:00
Janis Johnson 2c3fb7f30a pr41679.c: Move from gcc.target/arm.
* 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-07 17:48:03 +00:00
Janis Johnson a0fb5ebd16 pr41679.c: Remove test directives in preparation for move to ../../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-07 17:45:36 +00:00
Janis Johnson 09411ce3e6 target-supports.exp (check_effective_target_arm_dsp): New.
* 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-07 17:44:14 +00:00
Joseph Myers 1e4b2746e0 config.gcc (*local*): Remove.
gcc:
	* config.gcc (*local*): Remove.
	* doc/install-old.texi: Don't mention local configurations.

libgcc:
	* config.host (*local*): Remove.

From-SVN: r175988
2011-07-07 17:33:18 +01:00
Jakub Jelinek d7ff1e110e re PR debug/49522 (Divide by zero in validate_subreg in emit-rtl.c:695)
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-07 18:05:55 +02:00
Joseph Myers 2492731a82 t-crtpic, [...]: Remove.
* config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa:
	Remove.

From-SVN: r175986
2011-07-07 16:47:14 +01:00
Bernd Schmidt 9d9c740d1e hw-doloop.c: New file.
* 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-07 15:42:41 +00:00
H.J. Lu f0ea75811a Initial x32 support.
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-07 08:38:34 -07:00
Georg-Johann Lay 5c318df527 pragma-align.c: Run only if target !default_packed.
* 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-07 15:13:01 +00:00
Janis Johnson 7122998a4a target-supports.exp (check_effective_target_arm_thumb1): New.
* 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-07 15:07:57 +00:00
Richard Sandiford 38460025c7 invoke.texi (mwords-little-endian): Deprecate.
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-07 15:07:02 +00:00
Richard Sandiford 3f125532e6 reload1.c (choose_reload_regs): Use mode sizes to check whether an old 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-07 15:05:42 +00:00
Uros Bizjak 30af957b3f pr37485.c (dg-options): Add -fno-loop-strip-mine -fno-loop-interchange -ffast-math.
* gcc.dg/graphite/pr37485.c (dg-options): Add -fno-loop-strip-mine
	-fno-loop-interchange -ffast-math.

From-SVN: r175977
2011-07-07 16:32:24 +02:00
Richard Guenther bbc210abb5 fold-const.c (fold_unary_loc): Do not strip sign-changes for NEGATE_EXPR.
2011-07-07  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_unary_loc): Do not strip sign-changes
	for NEGATE_EXPR.

	* gcc.dg/ftrapv-3.c: New testcase.

From-SVN: r175976
2011-07-07 14:21:21 +00:00
Richard Guenther 29c5134ac9 tree-vrp.c (simplify_conversion_using_ranges): New function.
2011-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_conversion_using_ranges): New function.
	(simplify_stmt_using_ranges): Call it.

	* gcc.dg/tree-ssa/vrp58.c: New testcase.
	* gcc.dg/tree-ssa/scev-cast.c: Adjust.

From-SVN: r175975
2011-07-07 14:20:16 +00:00
Kai Tietz 0816a42a1f tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2011-07-07  Kai Tietz  <ktietz@redhat.com>

        * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
        (lookup_logical_inverted_value): Likewise.
        (simplify_bitwise_binary_1): Likewise.
        (simplify_bitwise_binary): Use simplify_bitwise_binary_1.

2011-07-07  Kai Tietz  <ktietz@redhat.com>

        * gcc.dg/binop-notxor1.c: New test.
        * gcc.dg/binop-notand4a.c: New test.
        * gcc.dg/binop-notxor2.c: New test.
        * gcc.dg/binop-notand3a.c: New test.
        * gcc.dg/binop-notand2a.c: New test.
        * gcc.dg/binop-notand6a.c: New test.
        * gcc.dg/binop-notor1.c: New test.
        * gcc.dg/binop-notand1a.c: New test.
        * gcc.dg/binop-notand5a.c: New test.
        * gcc.dg/binop-notor2.c: New test.

From-SVN: r175974
2011-07-07 16:16:44 +02:00
Joseph Myers 3ce9f09055 gcc.c (%[Spec]): Don't document.
* gcc.c (%[Spec]): Don't document.
	(struct spec_list): Update comment.
	(do_spec_1): Don't handle %[Spec].
	* doc/invoke.texi (%[@var{name}]): Remove documentation of spec.

From-SVN: r175970
2011-07-07 14:24:21 +01:00
Joseph Myers 41dfca871e common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't default based on TARGET_ASM_NAMED_SECTION.
* common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
	default based on TARGET_ASM_NAMED_SECTION.
	* common/common-target.def (have_named_sections): Default to true.
	* common/config/default-common.c: Don't include tm.h.
	* common/config/picochip/picochip-common.c
	(TARGET_HAVE_NAMED_SECTIONS): Don't define.
	* common/config/m32c/m32c-common.c: Remove.
	* config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
	* config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.

From-SVN: r175969
2011-07-07 14:22:44 +01:00
Jakub Jelinek 19c44640eb re PR middle-end/49640 (Internal compiler in C99 code (using variable-length arrays) and OpenMP)
PR middle-end/49640
	* gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
	operands and last COMPONENT_REF operand call gimplify_expr on it
	if non-NULL.

	* gcc.dg/gomp/pr49640.c: New test.

From-SVN: r175967
2011-07-07 14:49:17 +02:00