Commit Graph

110005 Commits

Author SHA1 Message Date
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
Tobias Burnus 4054bc52d6 trans.c (gfc_allocate_with_status): Call _gfortran_caf_register with NULL arguments for (new) stat=/errmsg= arguments.
2011-07-07  Tobias Burnus  <burnus@net-b.de>

        * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
        with NULL arguments for (new) stat=/errmsg= arguments.

2011-07-07  Tobias Burnus  <burnus@net-b.de>

        * libcaf.h (__attribute__, unlikely, likely): New macros.
        (caf_register_t): Update comment.
        (_gfortran_caf_register): Add stat, errmsg, errmsg_len arguments.
        * single.c (_gfortran_caf_register): Ditto; add error diagnostics.
        * mpi.c (_gfortran_caf_register): Ditto.
        (caf_is_finalized): New global variable.
        (_gfortran_caf_finalize): Use it.

From-SVN: r175966
2011-07-07 14:46:18 +02:00
Matthias Klose 3c3ab6c5e1 x86-64: Remove empty directory.
2011-07-07  Matthias Klose  <doko@ubuntu.com>

        * sysdep/x86-64: Remove empty directory.

From-SVN: r175965
2011-07-07 12:23:20 +00:00
Richard Guenther 51ca9593ad pr37485.c: Add -floop-block.
2011-07-07  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/graphite/pr37485.c: Add -floop-block.

From-SVN: r175963
2011-07-07 10:36:13 +00:00
Rainer Orth 891a2e4259 re PR libmudflap/49550 (Many libmudflap tests fail on Solaris 11/x86)
gcc:
	PR libmudflap/49550
	* gcc.c (MFWRAP_SPEC): Also wrap mmap64.

	libmudflap:
	PR libmudflap/49550
	* mf-runtime.c (__wrap_main) [__sun__ && __svr4__]: Don't register
	stdin, stdout, stderr.
	Register __ctype, __ctype_mask.

	* configure.ac: Check for mmap64.
	Check for rawmemchr, stpcpy, mempcpy.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* mf-hooks1.c [HAVE_MMAP64] (__mf_0fn_mmap64): New function.
	(mmap64): New wrapper function.
	* mf-impl.h (__mf_dynamic_index) [HAVE_MMAP64]: Add dyn_mmap64.
	* mf-runtime.c (__mf_dynamic) [HAVE_MMAP64]: Handle mmap64.

	* mf-hooks2.c [HAVE_GETMNTENT && HAVE_SYS_MNTTAB_H]: Implement
	getmntent wrapper.

	* mf-hooks3.c (_REENTRANT): Define.

	* testsuite/libmudflap.c/heap-scalestress.c (SCALE): Reduce to 10000.

	* testsuite/libmudflap.c/pass-stratcliff.c: Include ../config.h.
	(MIN): Define.
	Use HAVE_RAWMEMCHR, HAVE_STPCPY, HAVE_MEMPCPY as guards.

	* testsuite/libmudflap.c/pass47-frag.c: Expect __ctype warning on
	*-*-solaris2.*.

From-SVN: r175961
2011-07-07 10:14:02 +00:00
Eric Botcazou 8384ac41e6 * gcc-interface/misc.c (gnat_init): Tweak previous change.
From-SVN: r175960
2011-07-07 09:50:59 +00:00
Rainer Orth fbdd5d8715 re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386-solaris*).)
gcc:
	PR target/39150
	* configure.ac (gcc_cv_as_hidden): Also accept
	x86_64-*-solaris2.1[0-9]*.
	(gcc_cv_as_cfi_directive): Likewise.
	(gcc_cv_as_comdat_group_group): Likewise.
	(set_have_as_tls): Likewise.
	* configure: Regenerate.
	* config.gcc (i[34567]86-*-solaris2*): Also handle
	x86_64-*-solaris2.1[0-9]*.
	* config.host (i[34567]86-*-solaris2*): Likewise.
	* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
	* config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
	[USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
	(TARGET_LD_EMULATION): Use it.
	* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
	(SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
	* config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
	(ASM_CPU64_DEFAULT_SPEC): Define.
	(ASM_CPU_SPEC): Use %(asm_cpu_default).
	(ASM_SPEC): Redefine.
	(DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
	* config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
	* doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*):
	Document.
	(Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
	configuration.
	(Specific, x86_64-*-solaris2.1[0-9]*): Document.

	gcc/ada:
	PR target/39150
	* gcc-interface/Makefile.in: Handle x86_64-solaris2.

	libgcc:
	PR target/39150
	* config.host (*-*-solaris2*): Handle x86_64-*-solaris2.1[0-9]*
	like i?86-*-solaris2.1[0-9]*.
	(i[34567]86-*-solaris2*): Also handle x86_64-*-solaris2.1[0-9]*.
	* configure.ac (i?86-*-solaris2*): Likewise.
	* configure: Regenerate.

	gcc/testsuite:
	PR target/39150
	* gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*.

	toplevel:
	PR target/39150
	* configure.ac (i[3456789]86-*-solaris2*): Also accept
	x86_64-*-solaris2.1[0-9]*.
	* configure: Regenerate.

	boehm-gc:
	PR target/39150
	* configure.ac (i?86-*-solaris2.[89]): Also accept
	x86_64-*-solaris2.1?.
	* configure: Regenerate.

	gnattools:
	PR target/39150
	* configure.ac (*86-*-solaris2*): Also accept
	x86_64-*-solaris2.1[0-9]*.
	* configure: Regenerate.

	libcpp:
	PR target/39150
	* configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
	like i[34567]86-*-solaris2.1[0-9]*.
	* configure: Regenerate.

	libgo:
	PR target/39150
	* config/libtool.m4: Handle x86_64-*-solaris2.1[0-9]* like
	i?86-*-solaris*.
	* configure: Regenerate.

	libjava:
	PR target/39150
	* configure.host (x86_64-*): Add -Usun to libgcj_flags.
	(x86_64-*-solaris2.1[0-9]*): New case.
	(i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*.

From-SVN: r175958
2011-07-07 09:24:16 +00:00
Rainer Orth fcf7471a39 sol2.h (ASM_SPEC): Split into ...
* config/sol2.h (ASM_SPEC): Split into ...
	(ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
	* config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
	* config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
	(ASM_SPEC): Use ASM_SPEC_BASE.
	* config/sparc/sol2.h (ASM_SPEC): Redefine.

From-SVN: r175957
2011-07-07 08:52:48 +00:00
Georg-Johann Lay 1e6a67d1bd avr.md (*reload_insi): Change predicate #1 to const_int_operand.
* config/avr/avr.md (*reload_insi): Change predicate #1 to
	const_int_operand.  Ditto for peep2 producing this insn.
	Add argument to output_reload_insisf call.
	(*movsi,*movsf): Add argument to output_movsisf call.
	(*reload_insf): New insn and new peep2 to produce it.
	* config/avr/avr-protos.h (output_movsisf): Change prototype.
	(output_reload_insisf): Change prototype.
	* config/avr/avr.c (avr_asm_len): New function.
	(output_reload_insisf): Rewrite.
	(output_movsisf): Change prototype.  output_reload_insisf for
	all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
	(adjust_insn_length): Add argument to output_movsisf and
	output_reload_insisf call.

From-SVN: r175956
2011-07-07 07:13:13 +00:00
Jason Merrill ffca9d534c re PR c++/49353 (C++ frontend should not declare function EXTERN when it forces them to stay)
PR c++/49353
	* semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL
	on kept inlines.

From-SVN: r175954
2011-07-06 22:58:33 -04:00
GCC Administrator 33319c275f Daily bump.
From-SVN: r175953
2011-07-07 00:18:32 +00:00
Bernd Schmidt d58c1a38e5 revert: simplify-rtx.c (simplify_const_binary_operation): Use the shift_truncation_mask hook instead of performing modulo by width.
Revert:
	* simplify-rtx.c (simplify_const_binary_operation): Use the
	shift_truncation_mask hook instead of performing modulo by
	width.  Compare against mode precision, not bitsize.
	* combine.c (combine_simplify_rtx, simplify_shift_const_1):
	Use shift_truncation_mask instead of constructing the value
	manually.

From-SVN: r175949
2011-07-06 23:56:28 +00:00