2012-04-27  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/27139
	* tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.

	* gcc.dg/tree-ssa/forwprop-18.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186898 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* tree-switch-conversion.c (struct switch_conv_info): Add range_max,
	reorganize some fields and update comments.  Rename bit_test_uniq
	and bit_test_count to uniq resp. count.  Remove bit_test_bb.
	(collect_switch_conv_info): New function, collects info about a
	GIMPLE_SWITCH into a struct switch_conv_info.
	(check_range): Simplify to use pre-recorded info.  Fix think-o in
	range-branch ratio check.
	(check_process_case): Remove function.
	(check_all_empty_except_final): New function, verifies that all
	non-final basic blocks are empty.
	(process_switch): Simplify to use pre-recorded info.  Call
	collect_switch_conv_info to do that.  Assert that degenerate switch
	statements have been cleaned up.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186901 138bc75d-0d04-0410-961f-82ee72b054a4
	* cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
	place.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186902 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (is_hidden_global_store): Remove.
	* tree-ssa-sink.c (is_hidden_global_store): Likewise.
	* tree-ssa-alias.h (ref_may_alias_global_p): Declare.
	(stmt_may_clobber_global_p): Likewise.
	* tree-ssa-alias.c (ref_may_alias_global_p): New function.
	(stmt_may_clobber_global_p): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
	stmt_may_clobber_global_p.
	* tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186903 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

        PR target/53138
        * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.

testsuite:
2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

        PR target/53138
        * gcc.c-torture/execute/20120427-1.c: New testcase.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186904 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-phiopt.c (conditional_replacement): Replace PHIs
	whose arguments are -1 and 0, by negating the result of the
	conditional.

testsuite:
2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

	* gcc.c-torture/execute/20120427-2.c: New testcase.
	* gcc.dg/tree-ssa/phi-opt-10.c: New testcase.
	* gcc.dg/tree-ssa/ssa-pre-28.c: Bypass new optimization.
	* gcc.dg/tree-ssa/ssa-ifcombine-7.c: Look into ifcombine dump.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186905 138bc75d-0d04-0410-961f-82ee72b054a4
gcc
	* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
	(dwarf_tag_name): Use get_DW_TAG_name.
	(dwarf_attr_name): Use get_DW_AT_name.
	(dwarf_form_name): Use get_DW_FORM_name.
	* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
	* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
	(enum dwarf_location_atom, enum dwarf_type, enum
	dwarf_call_frame_info): Remove.
	(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
	(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
	Include dwarf2.def.
	(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
	(get_DW_OP_name, get_DW_ATE_name): Declare.
	* dwarf2.def: New file, from dwarf2.h.
libiberty
	* dwarfnames.c: New file.
	* Makefile.in (CFILES): Add dwarfnames.
	(REQUIRED_OFILES): Add dwarfnames.
	(./dwarfnames.$(objext)): New target.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186908 138bc75d-0d04-0410-961f-82ee72b054a4
Add new option, -Wliteral-suffix.

This option, which is enabled by default, causes the preprocessor to warn
when a string or character literal is followed by a ud-suffix which does
not begin with an underscore.  According to [lex.ext]p10, this is
ill-formed.

Also modifies the preprocessor to treat such ill-formed suffixes as separate
preprocessing tokens.  This is consistent with the Clang front end (see
http://llvm.org/viewvc/llvm-project?view=rev&revision=152287), and enables
backwards compatibility with code that uses formatting macros from
<inttypes.h>, as in the following code block:

  int main() {
    int64_t i64 = 123;
    printf("My int64: %"PRId64"\n", i64);
  }

Google ref b/6377711.

2012-04-27   Ollie Wild  <aaw@google.com>

	PR c++/52538
	* gcc/c-family/c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
	* gcc/c-family/c-opts.c (c_common_handle_option): Handle
	OPT_Wliteral_suffix.
	* gcc/c-family/c.opt: Add Wliteral-suffix.
	* gcc/doc/invoke.texi (Wliteral-suffix): Document new option.
	* gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.c: New test.
	* libcpp/include/cpplib.h (struct cpp_options): Add new field,
	warn_literal_suffix.
	(CPP_W_LITERAL_SUFFIX): New enum.
	* libcpp/init.c (cpp_create_reader): Default initialization of
	warn_literal_suffix.
	* libcpp/lex.c (lex_raw_string): Treat user-defined literals which
	don't begin with '_' as separate tokens and produce a warning.
	(lex_string): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186909 138bc75d-0d04-0410-961f-82ee72b054a4
runtime: Correct syscall.Setenv for systems that don't have setenv.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186911 138bc75d-0d04-0410-961f-82ee72b054a4
	PR go/52358
math: Work around bug in Solaris 9 implementation of ldexp.

The bug is that ldexp(-1, -1075) should return -0, but the
Solaris 9 implementation returns +0.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186913 138bc75d-0d04-0410-961f-82ee72b054a4
	PR go/52358
configure, runtime: Provide i386 long double math functions if needed.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186915 138bc75d-0d04-0410-961f-82ee72b054a4
	* dwarf2.h: Wrap function declarations in extern "C".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186918 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/52999
	* config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
	in constant pool.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186919 138bc75d-0d04-0410-961f-82ee72b054a4