]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years agogcc/
olegendo [Fri, 6 May 2016 09:41:57 +0000 (09:41 +0000)] 
gcc/
PR target/54089
* config/sh/sh.md (*rotcr): Add another variant.

gcc/testsuite/
PR target/54089
* gcc.target/sh/pr54089-1.c (test_24): Add new sub-test.

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

9 years ago PR ada/70969
ebotcazou [Fri, 6 May 2016 09:11:38 +0000 (09:11 +0000)] 
PR ada/70969
* system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All.
* system-linux-armeb.ads: Likewise.
* system-linux-mips64el.ads: Likewise.
* system-linux-mips.ads: Likewise.
* system-linux-mipsel.ads: Likewise.
* system-linux-ppc64.ads: Likewise.
* system-linux-sparcv9.ads: Likewise.
* system-rtems.ads: Likewise.

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

9 years ago2016-05-06 Richard Biener <rguenther@suse.de>
rguenth [Fri, 6 May 2016 07:44:22 +0000 (07:44 +0000)] 
2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

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

9 years ago2016-05-06 Richard Biener <rguenther@suse.de>
rguenth [Fri, 6 May 2016 07:38:27 +0000 (07:38 +0000)] 
2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70941
* fold-const.c (split_tree): Always convert to the original type
before negating.

* gcc.dg/torture/pr70941.c: New testcase.

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

9 years ago2016-05-06 Richard Biener <rguenther@suse.de>
rguenth [Fri, 6 May 2016 07:27:33 +0000 (07:27 +0000)] 
2016-05-06  Richard Biener  <rguenther@suse.de>

* fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
(fwprop_addr): Likewise.

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

9 years agoDaily bump.
gccadmin [Fri, 6 May 2016 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago PR target/70873
uros [Thu, 5 May 2016 22:48:29 +0000 (22:48 +0000)] 
PR target/70873
* config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
New prototype.
* config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
* config/i386/i386.md (push mem splitter): Use find_constant_src in
the splitter condition.
(FP load splitter): Use ix86_standard_x87sse_constant_load_p in
the splitter condition.
(FP float_extend load splitter): Ditto.

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

9 years ago * config/i386/i386.md (peehole2 patterns): Change true_regnum
uros [Thu, 5 May 2016 20:33:42 +0000 (20:33 +0000)] 
* config/i386/i386.md (peehole2 patterns): Change true_regnum
to REGNUM in all peephole2 patterns.
(post-reload splitters): Change true_regnum to REGNUM in
post-reload splitters.
(zero_extend splitters): Use general_reg_operand and
nonimmediate_gr_operand predicates.

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

9 years agoEnable dg-reqire-sharedlib on Solaris
ro [Thu, 5 May 2016 19:54:42 +0000 (19:54 +0000)] 
Enable dg-reqire-sharedlib on Solaris

* testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.

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

9 years ago gcc/testsuite
amker [Thu, 5 May 2016 16:20:54 +0000 (16:20 +0000)] 
gcc/testsuite
PR tree-optimization/57206
* gcc.dg/vect/pr57206.c: New test.

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

9 years agoDeclare isnanf in gcc.dg/ipa/inline-8.c
ro [Thu, 5 May 2016 14:29:47 +0000 (14:29 +0000)] 
Declare isnanf in gcc.dg/ipa/inline-8.c

* gcc.dg/ipa/inline-8.c (isnanf): Declare.

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

9 years ago * decl.c: Update comment.
jason [Thu, 5 May 2016 13:33:35 +0000 (13:33 +0000)] 
* decl.c: Update comment.

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

9 years ago * openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause
jakub [Thu, 5 May 2016 13:31:02 +0000 (13:31 +0000)] 
* openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause
parsing is done in a big switch based on gfc_peek_ascii_char and
individual clauses under their first letters are sorted too.

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

9 years ago * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
jakub [Thu, 5 May 2016 13:29:54 +0000 (13:29 +0000)] 
* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
v constraint instead of x.

* gcc.target/i386/avx512f-vfmadd-1.c: New test.

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

9 years ago * c-parser.c (c_parser_switch_statement): Add IF_P argument,
jakub [Thu, 5 May 2016 13:26:59 +0000 (13:26 +0000)] 
* c-parser.c (c_parser_switch_statement): Add IF_P argument,
parse it through to c_parser_c99_block_statement.
(c_parser_statement_after_labels): Adjust c_parser_switch_statement
caller.

* parser.c (cp_parser_selection_statement): For RID_SWITCH,
pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.

* c-c++-common/Wdangling-else-4.c: New test.

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

9 years agoAdd dg-require-filesystem-ts directive to test
redi [Thu, 5 May 2016 10:03:56 +0000 (10:03 +0000)] 
Add dg-require-filesystem-ts directive to test

* testsuite/experimental/filesystem/path/native/string.cc: Add
dg-require-filesystem-ts directive.

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

9 years agoDaily bump.
gccadmin [Thu, 5 May 2016 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago[RS6000] TARGET_RELOCATABLE
amodra [Thu, 5 May 2016 00:07:27 +0000 (00:07 +0000)] 
[RS6000] TARGET_RELOCATABLE

For ABI_V4, -mrelocatable and -fPIC both generate position independent
code, with some extra "fixup" output for -mrelocatable.  The
similarity of these two options has led to the situation where the
sysv4.h SUBTARGET_OVERRIDE_OPTIONS sets flag_pic on seeing
-mrelocatable, and sets TARGET_RELOCATABLE on seeing -fPIC.  That
prevents LTO from properly optimizing position dependent executables,
because the mutual dependence of the flags and the fact that LTO
streaming records the state of rs6000_isa_flags, result in flag_pic
being set when it shouldn't be.

So, don't set TARGET_RELOCATABLE when -fPIC.  Places that currently
test TARGET_RELOCATABLE can instead test
TARGET_RELOCATABLE || (DEFAULT_ABI == ABI_V4 && flag_pic > 1)
or since TARGET_RELOCATABLE can only be enabled when ABI_V4,
DEFAULT_ABI == ABI_V4 && (TARGET_RELOCATABLE || flag_pic > 1).

Also, since flag_pic is set by -mrelocatable, a number of places that
currently test TARGET_RELOCATABLE can be simplified.  I also made
-mrelocatable set TARGET_NO_FP_IN_TOC, allowing TARGET_RELOCATABLE to
be removed from ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.  Reducing occurrences
of TARGET_RELOCATABLE is a good thing.

PR target/68662
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
TARGET_NO_FP_IN_TOC for -mrelocatable.
(MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
TARGET_RELOCATABLE test.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Likewise.
(rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
(rs6000_stack_info): Likewise.
(rs6000_elf_asm_out_constructor): Likewise.
(rs6000_elf_asm_out_destructor): Likewise.
(rs6000_elf_declare_function_name): Likewise.
* config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
* config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
Don't define.

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

9 years ago[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx
amodra [Thu, 5 May 2016 00:01:26 +0000 (00:01 +0000)] 
[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx

Modify SETs rather than using replace_rtx on the whole insn.
Removes fragile hacks preventing USE and CLOBBER being modified.

* config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.

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

9 years ago[RS6000] out-of-line exit register restore funcs
amodra [Wed, 4 May 2016 21:32:27 +0000 (21:32 +0000)] 
[RS6000] out-of-line exit register restore funcs

* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
out-of-line gpr restore for one or two regs if that would add
a save of lr.

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

9 years ago PR target/70873
uros [Wed, 4 May 2016 21:13:13 +0000 (21:13 +0000)] 
PR target/70873
* config/i386/i386.md
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
Change to post-epilogue_completed late splitter.  Use sse_reg_operand
as operand 0 predicate.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
Ditto.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
Ditto.  Emit the pattern using RTX.

(TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
(TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
Ditto.
(TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
sse_reg_operand as operand 0 predicate.

(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
instead of gen_rtx_REG.
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
Ditto.

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

9 years agoshrink-wrap: Remove complicated simple_return manipulations
segher [Wed, 4 May 2016 20:57:08 +0000 (20:57 +0000)] 
shrink-wrap: Remove complicated simple_return manipulations

Now that cfgcleanup knows how to optimize with return statements, the
epilogue insertion code doesn't have to deal with it itself anymore.

* function.c (emit_use_return_register_into_block): Delete.
(gen_return_pattern): Delete.
(emit_return_into_block): Delete.
(active_insn_between): Delete.
(convert_jumps_to_returns): Delete.
(emit_return_for_exit): Delete.
(thread_prologue_and_epilogue_insns): Delete all code dealing with
simple_return for shrink-wrapped blocks.
* shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
end of blocks that need one.
(get_unconverted_simple_return): Delete.
(convert_to_simple_return): Delete.
* shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
(convert_to_simple_return): Ditto.

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

9 years agocfgcleanup: Fold jumps and conditional branches with returns
segher [Wed, 4 May 2016 20:54:47 +0000 (20:54 +0000)] 
cfgcleanup: Fold jumps and conditional branches with returns

This patch makes cfgcleanup optimize jumps to returns.  There are three
cases this handles:

-- A jump to a return; this is simplified to just that return.
-- A conditional branch to a return; simplified to a conditional return.
-- A conditional branch that falls through to a return.  This is simplified
   to a conditional return (with the condition inverted), falling through
   to a jump to the original destination.  That jump can then be optimized
   further, as usual.

This handles all cases the current function.c does, and a few it misses.

* cfgcleanup.c (bb_is_just_return): New function.
(try_optimize_cfg): Simplify jumps to return, branches to return,
and branches around return.

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

9 years agocfgcleanup: Bugfix in try_simplify_condjump
segher [Wed, 4 May 2016 20:50:12 +0000 (20:50 +0000)] 
cfgcleanup: Bugfix in try_simplify_condjump

If the jump_block here contains just a return, we will crash later
in invert_jump.  Don't allow that case.

* cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
branch to a return.

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

9 years ago PR c++/70906
jakub [Wed, 4 May 2016 20:44:40 +0000 (20:44 +0000)] 
PR c++/70906
PR c++/70933
* tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
* tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
assert flags & OEP_HASH_CHECK, instead of asserting it
never happens.  Handle TARGET_EXPR.
* fold-const.c (operand_equal_p): For hash verification,
or in OEP_HASH_CHECK into flags.

* g++.dg/opt/pr70906.C: New test.
* g++.dg/opt/pr70933.C: New test.

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

9 years ago * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
ebotcazou [Wed, 4 May 2016 20:22:42 +0000 (20:22 +0000)] 
* tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
comment.
(compute_samebase_partition_bases): Fix typo.

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

9 years ago * config/i386/sse.md (vec_interleave_highv8sf,
jakub [Wed, 4 May 2016 19:56:20 +0000 (19:56 +0000)] 
* config/i386/sse.md (vec_interleave_highv8sf,
vec_interleave_lowv8sf, vec_interleave_highv4df,
vec_interleave_lowv4df): Remove constraints from expanders.

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

9 years ago * s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
ebotcazou [Wed, 4 May 2016 19:14:05 +0000 (19:14 +0000)] 
* s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
instead of __getpagesize.

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

9 years ago * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
jakub [Wed, 4 May 2016 17:02:57 +0000 (17:02 +0000)] 
* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.

* gcc.target/i386/avx512vl-vmovq-1.c: New test.

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

9 years ago * tree-inline.c (expand_call_inline): Fix path dealing with
hubicka [Wed, 4 May 2016 16:42:12 +0000 (16:42 +0000)] 
* tree-inline.c (expand_call_inline): Fix path dealing with
making lhs of call statement undefined.

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

9 years ago * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
hubicka [Wed, 4 May 2016 16:36:51 +0000 (16:36 +0000)] 
* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
Check availability on NODE, too.
* cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
(cgraph_node::call_for_symbol_and_aliases): Likewise.
(varpool_node::call_for_symbol_and_aliase): Likewise.
* ipa-pure-const.c (add_new_function): Analyze all bodies.
(propagate_pure_const): Propagate across interposable functions, too.
(skip_function_for_local_pure_const): Do not skip interposable bodies
with aliases.
(pass_local_pure_const::execute): Update.

* gcc.dg/ipa/pure-const-3.c: New testcase.

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

9 years ago * c.opt (Wdangling-else): New option.
mpolacek [Wed, 4 May 2016 16:00:33 +0000 (16:00 +0000)] 
* c.opt (Wdangling-else): New option.

* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
OPT_Wdangling_else.

* parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
with OPT_Wdangling_else.

* doc/invoke.texi: Document -Wdangling-else.

* c-c++-common/Wdangling-else-1.c: New test.
* c-c++-common/Wdangling-else-2.c: New test.
* c-c++-common/Wdangling-else-3.c: New test.

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

9 years ago2016-05-04 Kwok Cheung Yeung <kcy@codesourcery.com>
clm [Wed, 4 May 2016 14:56:19 +0000 (14:56 +0000)] 
2016-05-04  Kwok Cheung Yeung  <kcy@codesourcery.com>

* gcc.target/mips/mips16-attributes.c: Skip if -mmicromips
flag is present.

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

9 years ago PR c/48778
mpolacek [Wed, 4 May 2016 13:46:15 +0000 (13:46 +0000)] 
PR c/48778
* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
for macro expansions.

* gcc.dg/Waddress-2.c: New test.

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

9 years ago2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Wed, 4 May 2016 13:33:58 +0000 (13:33 +0000)] 
2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Error out when conflicting multilib is detected.  Do not
    loop over multilibs since no combination is legal.

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

9 years ago[RS6000] Correct PIC_OFFSET_TABLE_REGNUM
amodra [Wed, 4 May 2016 13:23:58 +0000 (13:23 +0000)] 
[RS6000] Correct PIC_OFFSET_TABLE_REGNUM

Leaving this as r30 results in pic_offset_table_rtx of (reg 30)
for -m64, which is completely bogus.  Various rtl analysis predicate
functions treat pic_offset_table_rtx specially..

* config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.

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

9 years ago[RS6000] Simplify sysv4.h TARGET_TOC
amodra [Wed, 4 May 2016 13:21:01 +0000 (13:21 +0000)] 
[RS6000] Simplify sysv4.h TARGET_TOC

We can use the TARGET_* defines here.  There isn't any reason to use
the underlying variable and masks.  Also, TARGET_RELOCATABLE implies
TARGET_MINIMAL_TOC, so there is no need to test TARGET_RELOCATABLE.

* config/rs6000/sysv4.h (TARGET_TOC): Simplify.

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

9 years ago[RS6000] Align .toc section
amodra [Wed, 4 May 2016 13:17:51 +0000 (13:17 +0000)] 
[RS6000] Align .toc section

Lack of any .toc section alignment causes kexec and kdump failure
when linking without the usual linker script.  This of course is
really a kexec-tools error, but it is also true that .toc ought to
always be word aligned.

* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.

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

9 years agoUpdate MIPS P5600 processor definition to avoid IMADD
mpf [Wed, 4 May 2016 12:59:28 +0000 (12:59 +0000)] 
Update MIPS P5600 processor definition to avoid IMADD

gcc/

* config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
Clean up p5600 comments.

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

9 years ago2016-05-04 Richard Biener <rguenther@suse.de>
rguenth [Wed, 4 May 2016 12:37:56 +0000 (12:37 +0000)] 
2016-05-04  Richard Biener  <rguenther@suse.de>

* match.pd: Add BIT_FIELD_REF canonicalizations and vector
constructor simplifications.
* fold-const.c (fold_ternary_loc): Remove duplicate functionality
here.

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

9 years agoMerge libcilkrts from upstream.
iverbin [Wed, 4 May 2016 12:29:14 +0000 (12:29 +0000)] 
Merge libcilkrts from upstream.

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
<https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git>.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* runtime/record-replay.cpp: Likewise.
* runtime/record-replay.h: Likewise.
* runtime/reducer_impl.cpp: Likewise.
* runtime/reducer_impl.h: Likewise.
* runtime/rts-common.h: Likewise.
* runtime/scheduler.c: Likewise.
* runtime/scheduler.h: Likewise.
* runtime/signal_node.c: Likewise.
* runtime/signal_node.h: Likewise.
* runtime/spin_mutex.c: Likewise.
* runtime/spin_mutex.h: Likewise.
* runtime/stats.c: Likewise.
* runtime/stats.h: Likewise.
* runtime/sysdep-unix.c: Likewise.
* runtime/sysdep.h: Likewise.
* runtime/worker_mutex.c: Likewise.
* runtime/worker_mutex.h: Likewise.
* include/cilk/reducer_vector.h: New.
* runtime/cilk_str_mem.h: New.
* runtime/config/arm/cilk-abi-vla.c: New.
* runtime/config/arm/os-fence.h: New.
* runtime/config/arm/os-unix-sysdep.c: New.
* runtime/declare-alloca.h: New.
* runtime/sslib/ignore_handler_s.c: New.
* runtime/sslib/safe_lib.h: New.
* runtime/sslib/safe_lib_errno.h: New.
* runtime/sslib/safe_str_constraint.c: New.
* runtime/sslib/safe_str_constraint.h: New.
* runtime/sslib/safe_str_lib.h: New.
* runtime/sslib/safe_types.h: New.
* runtime/sslib/safeclib_private.h: New.
* runtime/sslib/snprintf_s.h: New.
* runtime/sslib/snprintf_support.c: New.
* runtime/sslib/strcpy_s.c: New.
* runtime/sslib/strncpy_s.c: New.
* runtime/sslib/strnlen_s.c: New.
* runtime/symbol_test.c: Remove.
* Makefile.in: Regenerate.
* configure: Regenerate.

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

9 years agolibstdc++/70940 Start fixing polymorphic memory resources
redi [Wed, 4 May 2016 12:08:45 +0000 (12:08 +0000)] 
libstdc++/70940 Start fixing polymorphic memory resources

PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_allocate): Do not default-construct
rebound allocator.
(__resource_adaptor_imp::do_deallocate): Likewise. Use
allocator_traits to get pointer type.
(__null_memory_resource::do_allocate): Remove unused parameters.
(__null_memory_resource::do_deallocate): Likewise.
(__null_memory_resource::do_is_equal): Likewise. Add return statement.
* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
move to ...
* testsuite/experimental/memory_resource/1.cc: Here.
* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

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

9 years agogcc/
olegendo [Wed, 4 May 2016 07:14:11 +0000 (07:14 +0000)] 
gcc/
* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
result.set_rtx is null instead of aborting.
* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
Always enable.
(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
*mov<mode>_store_postinc): New patterns.

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

9 years agoRemove duplicate (A & B) OP (C & B) in match.pd.
glisse [Wed, 4 May 2016 05:38:18 +0000 (05:38 +0000)] 
Remove duplicate (A & B) OP (C & B) in match.pd.

2016-05-04  Marc Glisse  <marc.glisse@inria.fr>

* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
as commutative.  Check both conversions are NOP.
((A & B) OP (C & B)): Remove.

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

9 years agoDaily bump.
gccadmin [Wed, 4 May 2016 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

9 years agoCombine simplify_set WORD_REGISTER_OPERATIONS
amodra [Wed, 4 May 2016 00:11:32 +0000 (00:11 +0000)] 
Combine simplify_set WORD_REGISTER_OPERATIONS

The comment says this test is supposed to prevent "a narrower
operation than requested", but it actually only allows a larger
subreg not one the same size.  Fix that.

* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.

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

9 years ago[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE
amodra [Tue, 3 May 2016 23:51:34 +0000 (23:51 +0000)] 
[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE

gcc/
PR target/70866
* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
when cr2,3,4 are all fixed regs.
gcc/testsuite/
* gcc.target/powerpc/pr70866.c: New.

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

9 years ago PR rtl-optimization/57193
bernds [Tue, 3 May 2016 22:48:03 +0000 (22:48 +0000)] 
PR rtl-optimization/57193
* opts.c (default_options_table): Revert OPT_frename_registers change.
* doc/invoke.texi (-frename-registers, -O2): Likewise.

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

9 years agoPR c++/66561 - __builtin_LINE at al. should yield constant expressions
msebor [Tue, 3 May 2016 21:15:28 +0000 (21:15 +0000)] 
PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr

gcc/testsuite/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* c-c++-common/builtin_location.c: New test.
* g++.dg/cpp1y/builtin_location.C: New test.

gcc/cp/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.

gcc/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* builtins.c (fold_builtin_FILE): New function.
(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
(fold_builtin_0): Call them.
* gimplify.c (gimplify_call_expr): Remove the handling of
BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.

PR c++/66561
* doc/extend.texi (Other Builtins): Update __builtin_FILE,
__builtin_FUNCTION, and __builtin_LINE to reflect they yield
constants.

PR c++/66639
* doc/extend.texi (Function Names as Strings): Update __func__,
__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
constants.

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

9 years ago PR tree-optimization/70916
jakub [Tue, 3 May 2016 19:30:22 +0000 (19:30 +0000)] 
PR tree-optimization/70916
* tree-if-conv.c: Include cfganal.h.
(pass_if_conversion::execute): Call connect_infinite_loops_to_exit
and remove_fake_exit_edges around the optimization pass.

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

9 years ago * cgraph.c (symbol_table::create_edge): Set inline_failed.
hubicka [Tue, 3 May 2016 19:05:31 +0000 (19:05 +0000)] 
* cgraph.c (symbol_table::create_edge): Set inline_failed.
(cgraph_edge::make_direct): Likewise.
(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
(CIF_THUNK): New code.
* ipa-inline-analysis.c (initialize_inline_failed): Preserve
CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
(compute_inline_parameters): Set inline_failed for thunks.
(inline_analyze_function): Cleanup.
* ipa-inline.c (can_inline_edge_p): Do not deal with
call_stmt_cannot_inline_p.
(can_early_inline_edge_p): Likewise.
(early_inliner): Initialize inline_failed.
* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.

* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.

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

9 years ago * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
uros [Tue, 3 May 2016 18:48:18 +0000 (18:48 +0000)] 
* config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
from nonimm_ssenomem_operand.
(nonimm_ssenomem_operand): New predicate.
* config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
as operand 0 predicate.
(*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
Disable unsupported alternatives using "enabled" attribute.
Use register_ssemem_operand as operand 0 predicate.
(*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.

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

9 years ago PR c/70859
mpolacek [Tue, 3 May 2016 18:03:42 +0000 (18:03 +0000)] 
PR c/70859
* input.c (expansion_point_location): New function.
* input.h (expansion_point_location): Declare.

* c-common.c (builtin_function_validate_nargs): Add location
parameter.  Use it.
(check_builtin_function_arguments): Add location and arguments
parameters.  Use them.
* c-common.h (check_builtin_function_arguments): Update declaration.

* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
check_builtin_function_arguments.

* call.c (build_cxx_call): Pass location and vNULL down to
check_builtin_function_arguments.

* gcc.dg/pr70859.c: New test.
* gcc.dg/pr70859-2.c: New test.

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

9 years agoFix a typo in dwarf2out.c:resolve_args_picking_1
pmderodat [Tue, 3 May 2016 16:21:14 +0000 (16:21 +0000)] 
Fix a typo in dwarf2out.c:resolve_args_picking_1

Under specific circumstances for Ada programs, such as in the testcase
this change adds, the DWARF back-end currently crashes because of
inconsistent internal state. This is due to a typo: a local variable is
called frame_offset_ but resolve_args_picking_1 wrongly modifies
emit-rtl.h's frame_offset instead.

This change fixes this typo.

gcc/
* dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
occurence with frame_offset_ ones.

gcc/testsuite/
* gnat.dg/debug5.adb: New testcase.

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

9 years ago * nl.po: Update.
jsm28 [Tue, 3 May 2016 15:07:25 +0000 (15:07 +0000)] 
* nl.po: Update.

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

9 years agoPR70890, stage2 miscompilation
amodra [Tue, 3 May 2016 14:43:35 +0000 (14:43 +0000)] 
PR70890, stage2 miscompilation

PR rtl-optimization/70890
* ira.c (combine_and_move_insns): When moving def_insn, remove
equivs on use_insn.

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

9 years agoS/390: Add patterns for r<nox>sbg instructions.
krebbel [Tue, 3 May 2016 13:30:33 +0000 (13:30 +0000)] 
S/390: Add patterns for r<nox>sbg instructions.

gcc/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
("*r<noxa>sbg_<mode>_srl"): New define_insns.
("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.

gcc/testsuite/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/md/rXsbg_mode_sXl.c: New test.
* gcc.target/s390/s390.exp (check_effective_target_z10_instructions):
Procedure to check for z10 instruction set.

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

9 years ago * gcc.dg/ipa/inline-8.c: Require c99_runtime.
clyon [Tue, 3 May 2016 13:06:40 +0000 (13:06 +0000)] 
* gcc.dg/ipa/inline-8.c: Require c99_runtime.

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

9 years ago[RS6000] Fix ICE caused by rs6000_savres_strategy thinko
amodra [Tue, 3 May 2016 12:38:32 +0000 (12:38 +0000)] 
[RS6000] Fix ICE caused by rs6000_savres_strategy thinko

rev 235672 (git cffc0b35) changed the condition for SAVE_MULTIPLE/
STORE_MULTIPLE, wrongly allowing a single reg.

gcc/
* config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
for SAVE_MULTIPLE/STORE_MULTIPLE.
gcc/testsuite/
* gcc.target/powerpc/savres.c: Add func using a single gpr.

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

9 years ago * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
jakub [Tue, 3 May 2016 12:18:57 +0000 (12:18 +0000)] 
* config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
*truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead
of x.

* gcc.target/i386/avx512f-cvt-1.c: New test.

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

9 years agoCompile ssa-thread-14.c with -fdump-tree-vrp-details
hjl [Tue, 3 May 2016 12:14:37 +0000 (12:14 +0000)] 
Compile ssa-thread-14.c with -fdump-tree-vrp-details

* gcc.dg/tree-ssa/ssa-thread-14.c: Replace -fdump-tree-vrp with
-fdump-tree-vrp-details.

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

9 years ago2016-05-03 Richard Biener <rguenther@suse.de>
rguenth [Tue, 3 May 2016 12:06:19 +0000 (12:06 +0000)] 
2016-05-03  Richard Biener  <rguenther@suse.de>

* gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
default true.
(gimplify_arg): Likewise.
* gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
re-writing the result to a decl if required.
(internal_get_tmp_var): Add allow_ssa parameter
and override into_ssa with it.
(get_formal_tmp_var): Adjust.
(get_initialized_tmp_var): Add allow_ssa parameter.
(gimplify_arg): Add allow_ssa parameter and avoid generating
SSA names for the result false.
(gimplify_call_expr): If the call may return twice do not
gimplify parameters into SSA.
(prepare_gimple_addressable): Do not allow an SSA name as
temporary.
(gimplify_modify_expr): Adjust assert.  For noreturn calls
with a SSA name LHS adjust its def.
(gimplify_save_expr): Do not allow an SSA name as save-expr
result.
(gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
(gimplify_body): Init GIMPLE SSA data structures and gimplify
into-SSA.
(gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
(gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
(optimize_target_teams): Do not allow SSA names for clause operands.
(gimplify_expr): Likewise for where we mark the result addressable.
* passes.def (pass_init_datastructures): Remove.
* tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
(rewrite_stmt): Likewise.
* tree-inline.c (initialize_cfun): Properly transfer SSA state.
(replace_locals_op): Replace SSA names.
(copy_gimple_seq_and_replace_locals): Init src_cfun.
* gimple-low.c (lower_builtin_setjmp): Deal with SSA.
* cgraph.c (release_function_body): Free CFG annotations only
when we have a CFG.  Simplify.
* gimple-fold.c (gimplify_and_update_call_from_tree): Use
force_gimple_operand instead of get_initialized_tmp_var.
* tree-pass.h (make_pass_init_datastructures): Remove.
* tree-ssa.c (execute_init_datastructures): Remove.
(pass_data_init_datastructures): Likewise.
(class pass_init_datastructures): Likewise.
(make_pass_init_datastructures): Likewise.
* omp-low.c (create_omp_child_function): Init SSA data structures.
(grid_expand_target_grid_body): Likewise.
* tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
name before adding it to names_to_release.
(remove_bb): Always release SSA defs.
* tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
before dereferencing it.
* cgraphunit.c (init_lowered_empty_function): Always
int SSA data structures.
* tree-ssanames.c (release_defs): Remove assert that we are in
SSA form.
* trans-mem.c (diagnose_tm_1): Handle SSA name function.

c-family/
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
allow call args to gimplify to SSA names.

* gcc.dg/pr30172-1.c: Adjust.
* gcc.dg/pr63743.c: Likewise.
* gcc.dg/tm/pr51696.c: Likewise.
* c-c++-common/tm/safe-1.c: Likewise.
* gcc.dg/tree-prof/val-prof-3.c: Likewise.
* gcc.dg/plugin/self-assign-test-1.c: XFAIL case that needs CSE.
* g++.dg/plugin/self-assign-test-1.C: Likewise.
* g++.dg/plugin/self-assign-test-2.C: Likewise.

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

9 years ago PR rtl-optimization/70467
jakub [Tue, 3 May 2016 11:45:04 +0000 (11:45 +0000)] 
PR rtl-optimization/70467
* config/i386/predicates.md (x86_64_hilo_int_operand,
x86_64_hilo_general_operand): New predicates.
* config/i386/constraints.md (Wd): New constraint.
* config/i386/i386.md (mode attr di): Use Wd instead of e.
(general_hilo_operand): New mode attr.
(add<mode>3, sub<mode>3): Use <general_hilo_operand>
instead of <general_operand>.
(*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
x86_64_hilo_general_operand instead of <general_operand>.

* gcc.target/i386/pr70467-3.c: New test.
* gcc.target/i386/pr70467-4.c: New test.

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

9 years ago PR tree-optimization/70916
jakub [Tue, 3 May 2016 11:43:06 +0000 (11:43 +0000)] 
PR tree-optimization/70916
* tree-if-conv.c (constant_or_ssa_name): Removed.
(fold_build_cond_expr): Use is_gimple_val instead of
constant_or_ssa_name.

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

9 years ago PR tree-optimization/70916
jakub [Tue, 3 May 2016 11:38:38 +0000 (11:38 +0000)] 
PR tree-optimization/70916
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.

* gcc.c-torture/compile/pr70916.c: New test.

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

9 years ago PR target/49244
jakub [Tue, 3 May 2016 11:37:25 +0000 (11:37 +0000)] 
PR target/49244
* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
(optimize_atomic_bit_test_and): New function.
(pass_fold_builtins::execute): Use it.
* optabs.def (atomic_bit_test_and_set_optab,
atomic_bit_test_and_complement_optab,
atomic_bit_test_and_reset_optab): New optabs.
* internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
* builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
* builtins.c (expand_ifn_atomic_bit_test_and): New function.
* internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
* doc/md.texi (atomic_bit_test_and_set@var{mode},
atomic_bit_test_and_complement@var{mode},
atomic_bit_test_and_reset@var{mode}): Document.
* config/i386/sync.md (atomic_bit_test_and_set<mode>,
atomic_bit_test_and_complement<mode>,
atomic_bit_test_and_reset<mode>): New expanders.
(atomic_bit_test_and_set<mode>_1,
atomic_bit_test_and_complement<mode>_1,
atomic_bit_test_and_reset<mode>_1): New insns.

* gcc.target/i386/pr49244-1.c: New test.
* gcc.target/i386/pr49244-2.c: New test.

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

9 years agoPR 70687: Use wide_int in combine.c:change_zero_ext
rsandifo [Tue, 3 May 2016 10:29:55 +0000 (10:29 +0000)] 
PR 70687: Use wide_int in combine.c:change_zero_ext

PR 70687 reports a case where combine.c mishandles integer modes
wider than unsigned HOST_WIDE_INT.  I don't have a testcase since
the PR is just pointing out the hole.

Also, I think a ZERO_EXTEND of a vector mode could in principle satisfy
the subreg condition but wouldn't be equivalent to an AND.  E.g.:

      (zero_extend:V4DI (subreg:V4SI (reg:V4DI R) 0))

Tested on x86_64-linux-gnu.

gcc/
PR rtl-optimization/70687
* combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
instead of unsigned HOST_WIDE_INT.

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

9 years agoFix PR44281, bad RA with global regs.
bernds [Tue, 3 May 2016 09:35:42 +0000 (09:35 +0000)] 
Fix PR44281, bad RA with global regs.

PR rtl-optimization/44281
* hard-reg-set.h (struct target_hard_regs): New field
x_fixed_nonglobal_reg_set.
(fixed_nonglobal_reg_set): New macro.
* reginfo.c (init_reg_sets_1): Initialize it.
* ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
of fixed_reg_set.
* df-scan.c (df_insn_refs_collect): Asms may reference global regs.

testsuite/
PR rtl-optimization/44281
* gcc.target/i386/pr44281.c: New test.

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

9 years ago PR tree-optimization/56541
amker [Tue, 3 May 2016 09:04:46 +0000 (09:04 +0000)] 
PR tree-optimization/56541
* doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
* params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
* tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
(any_complicated_phi): new static variable.
(aggressive_if_conv): delete.
(if_convertible_phi_p): support phis with more than two arguments.
(if_convertible_bb_p): remvoe check on aggressive_if_conv and
critical pred edges.
(ifcvt_split_critical_edges): support phis with more than two
arguments by checking new parameter.  only split critical edges
if needed.
(tree_if_conversion): handle simd pragma marked loop using new
local variable aggressive_if_conv.  check any_complicated_phi.

gcc/testsuite
PR tree-optimization/56541
* gcc.dg/tree-ssa/ifc-pr56541.c: new test.
* gcc.dg/vect/pr56541.c: new test.

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

9 years ago * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
amker [Tue, 3 May 2016 08:54:49 +0000 (08:54 +0000)] 
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
before using it.

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

9 years ago * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
amker [Tue, 3 May 2016 08:38:18 +0000 (08:38 +0000)] 
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
cbase.

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

9 years ago2016-05-03 Richard Biener <rguenther@suse.de>
rguenth [Tue, 3 May 2016 08:14:27 +0000 (08:14 +0000)] 
2016-05-03  Richard Biener  <rguenther@suse.de>

c/
* Make-lang.in (cc1-checksum.c): For stage-final re-use
the checksum from the previous stage.

cp/
* Make-lang.in (cc1plus-checksum.c): For stage-final re-use
the checksum from the previous stage.

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

9 years agogcc/
olegendo [Tue, 3 May 2016 06:47:34 +0000 (06:47 +0000)] 
gcc/
* config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
(mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
define_insn_and_split.
(mulsi3_i): New define_insn_and_split.
(mulsi3_call): Convert to define_insn.
(mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
Remove constraints.

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

9 years ago * c-common.h (enum c_omp_region_type): Remove stray comma.
mpolacek [Tue, 3 May 2016 06:40:46 +0000 (06:40 +0000)] 
* c-common.h (enum c_omp_region_type): Remove stray comma.

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

9 years agoDaily bump.
gccadmin [Tue, 3 May 2016 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago[gcc]
meissner [Mon, 2 May 2016 23:23:45 +0000 (23:23 +0000)] 
[gcc]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* machmode.h (mode_complex): Add support to give the complex mode
for a given mode.
(GET_MODE_COMPLEX_MODE): Likewise.
* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
stored by build_complex_type and gfc_build_complex_type instead of
trying to figure out the appropriate mode based on the size. Raise
an assertion error, if the type was not set.
* genmodes.c (struct mode_data): Add field for the complex type of
the given type.
(blank_mode): Likewise.
(make_complex_modes): Remember the complex mode created in the
base type.
(emit_mode_complex): Write out the mode_complex array to map a
type mode to the complex version.
(emit_insn_modes_c): Likewise.
* tree.c (build_complex_type): Set the complex type to use before
calling layout_type.
* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
support for __float128 complex datatypes.
(rs6000_hard_regno_mode_ok): Likewise.
(rs6000_setup_reg_addr_masks): Likewise.
(rs6000_complex_function_value): Likewise.
* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
__float128 and __ibm128 complex.
(FLOAT128_IBM_P): Likewise.
(ALTIVEC_ARG_MAX_RETURN): Likewise.
* doc/extend.texi (Additional Floating Types): Document that
-mfloat128 must be used to enable __float128.  Document complex
__float128 and __ibm128 support.

[gcc/fortran]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* trans-types.c (gfc_build_complex_type):

[gcc/testsuite]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/float128-complex-1.c: New tests for complex
__float128.
* gcc.target/powerpc/float128-complex-2.c: Likewise.

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

9 years ago PR target/49244
jakub [Mon, 2 May 2016 22:12:54 +0000 (22:12 +0000)] 
PR target/49244
* gimple.c (gimple_builtin_call_types_compatible_p): Allow
char/short arguments promoted to int because of promote_prototypes.

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

9 years agoBackport r265322 from llvm upstream
hjl [Mon, 2 May 2016 21:45:34 +0000 (21:45 +0000)] 
Backport r265322 from llvm upstream

Since x86 psABIs require the function incoming stack must align at 16
bytes, child process stack passed to clone should be aligned at 16
bytes.

PR testsuite/70520
* c-c++-common/asan/clone-test-1.c (main): Align child process
stack to 16 bytes.

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

9 years agoPR c++/62314: C++: add fixit hint to misspelled member names
dmalcolm [Mon, 2 May 2016 19:09:30 +0000 (19:09 +0000)] 
PR c++/62314: C++: add fixit hint to misspelled member names

When we emit a hint about a misspelled member name, it will slightly
aid readability if we use a fixit-hint to show the proposed
name in context within the source code (and in the future this
might support some kind of auto-apply in an IDE).

This patch adds such a hint to the C++ frontend, taking us from:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~

to:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~
               color

gcc/cp/ChangeLog:
PR c++/62314
* typeck.c (finish_class_member_access_expr): When
giving a hint about a possibly-misspelled member name,
add a fix-it replacement hint.

gcc/testsuite/ChangeLog:
PR c++/62314
* g++.dg/spellcheck-fields-2.C: New test case.

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

9 years ago * ChangeLog: Add missing entry.
uros [Mon, 2 May 2016 18:58:18 +0000 (18:58 +0000)] 
* ChangeLog: Add missing entry.

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

9 years ago * config/i386/predicates.md (register_ssemem_operand): New predicate.
uros [Mon, 2 May 2016 18:52:33 +0000 (18:52 +0000)] 
* config/i386/predicates.md (register_ssemem_operand): New predicate.
* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
*cmpi<FPCMP:unord><MODEF:mode>_mixed and
*cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
alternatives using "enabled" attribute.  Use register_ssemem_operand
as operand 1 predicate.
(*cmpi<unord>xf_i387): Split XFmode pattern from
*cmpi<FPCMP:unord><X87MODEF:mode>_i387.
(*absneg<mode>2): Merge from *absneg<mode>2_mixed and
*absneg<mode>2_i387.  Disable unsupported alternatives using
"enabled" attribute.

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

9 years ago gcc/c-family/
cesar [Mon, 2 May 2016 18:49:15 +0000 (18:49 +0000)] 
gcc/c-family/
* c-common.h (enum c_omp_region_type): Define.

gcc/c/
* c-parser.c (c_parser_oacc_all_clauses): Update call to
c_finish_omp_clauses.
(c_parser_omp_all_clauses): Likewise.
(c_parser_oacc_cache): Likewise.
(c_parser_oacc_loop): Likewise.
(omp_split_clauses): Likewise.
(c_parser_omp_declare_target): Likewise.
(c_parser_cilk_all_clauses): Likewise.
(c_parser_cilk_for): Likewise.
* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

gcc/cp/
* cp-tree.h (finish_omp_clauses): Update prototype.
* parser.c (cp_parser_oacc_all_clauses): Update call to
finish_omp_clauses.
(cp_parser_omp_all_clauses): Likewise.
(cp_parser_omp_for_loop): Likewise.
(cp_omp_split_clauses): Likewise.
(cp_parser_oacc_cache): Likewise.
(cp_parser_oacc_loop): Likewise.
(cp_parser_omp_declare_target):
(cp_parser_cilk_simd_all_clauses): Likewise.
(cp_parser_cilk_for): Likewise.
* pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
arguments with enum c_omp_region_type ort.
(tsubst_omp_clauses): Update calls to finish_omp_clauses.
(tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
(tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
(tsubst_expr): Update calls to tsubst_omp_clauses.
* semantics.c (finish_omp_clauses): Replace bool arguments
allow_fields, declare_simd, and is_cilk with bitmask ort.
(finish_omp_for): Update call to finish_omp_clauses.

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

9 years agoPR c++/62314: add fixit hint for missing "template <> " in explicit specialization
dmalcolm [Mon, 2 May 2016 18:36:40 +0000 (18:36 +0000)] 
PR c++/62314: add fixit hint for missing "template <> " in explicit specialization

gcc/cp/ChangeLog:
PR c++/62314
* parser.c (cp_parser_class_head): Capture the start location;
use it to emit a fix-it insertion hint when complaining
about missing "template <> " in explicit specializations.

gcc/testsuite/ChangeLog:
PR c++/62314
* g++.dg/pr62314.C: New test case.

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

9 years ago * omp-low.c (lower_oacc_head_tail): Assert there is at least one
nathan [Mon, 2 May 2016 18:27:40 +0000 (18:27 +0000)] 
* omp-low.c (lower_oacc_head_tail): Assert there is at least one
marker.
(oacc_loop_process): Check mask for loop termination.

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

9 years agoDon't install libvtv without --enable-vtable-verify
ro [Mon, 2 May 2016 18:10:17 +0000 (18:10 +0000)] 
Don't install libvtv without --enable-vtable-verify

* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
ENABLE_VTABLE_VERIFY.
Simplify.
* Makefile.in: Regenerate.

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

9 years ago * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
hubicka [Mon, 2 May 2016 17:38:53 +0000 (17:38 +0000)] 
* ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
accidental change.

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

9 years ago * cif-code.def (CIF_THUNK): Add.
hubicka [Mon, 2 May 2016 17:34:32 +0000 (17:34 +0000)] 
* cif-code.def (CIF_THUNK): Add.

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

9 years ago * sv.po, zh_CN.po: Update.
jsm28 [Mon, 2 May 2016 17:27:36 +0000 (17:27 +0000)] 
* sv.po, zh_CN.po: Update.

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

9 years agoDemangler integer overflow fixes from Marcel Böhme.
bernds [Mon, 2 May 2016 17:06:40 +0000 (17:06 +0000)] 
Demangler integer overflow fixes from Marcel Böhme.

PR c++/70498
* cp-demangle.c: Parse numbers as integer instead of long to avoid
overflow after sanity checks. Include <limits.h> if available.
(INT_MAX): Define if necessary.
(d_make_template_param): Takes integer argument instead of long.
(d_make_function_param): Likewise.
(d_append_num): Likewise.
(d_identifier): Likewise.
(d_number): Parse as and return integer.
(d_compact_number): Handle overflow.
(d_source_name): Change variable type to integer for parsed number.
(d_java_resource): Likewise.
(d_special_name): Likewise.
(d_discriminator): Likewise.
(d_unnamed_type): Likewise.
* testsuite/demangle-expected: Add regression test cases.

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

9 years ago * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
hubicka [Mon, 2 May 2016 16:55:56 +0000 (16:55 +0000)] 
* ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
(dump_inline_summary): Dump it.
(fp_expression_p): New predicate.
(estimate_function_body_sizes): Use it.
(inline_merge_summary): Merge fp_expressions.
(inline_read_section): Read fp_expressions.
(inline_write_summary): Write fp_expressions.
* ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
codegen boundary if either caller or callee is !fp_expressions.
* ipa-inline.h (inline_summary): Add fp_expressions.
* ipa-inline-transform.c (inline_call): When inlining !fp_expressions
to fp_expressions be sure the fp generation flags are updated.

* gcc.dg/ipa/inline-8.c: New testcase.

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

9 years ago PR rtl-optimization/70467
jakub [Mon, 2 May 2016 16:46:10 +0000 (16:46 +0000)] 
PR rtl-optimization/70467
* cse.c (cse_insn): Handle no-op MEM moves after folding.

* gcc.target/i386/pr70467-1.c: New test.

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

9 years ago PR rtl-optimization/70467
jakub [Mon, 2 May 2016 16:17:02 +0000 (16:17 +0000)] 
PR rtl-optimization/70467
* ipa-pure-const.c (check_call): Handle internal calls even in
ipa mode like in local mode.

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

9 years ago2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Mon, 2 May 2016 15:23:20 +0000 (15:23 +0000)] 
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
        * configure: Regenerated.
        * Makefile.def (gmp): Explicitly disable assembler.
        (mpfr): Adjust lib_path.
        (mpc): Likewise.
        * Makefile.in: Regenerated.

gcc/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.

contrib/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * download_prerequisites: Adjust gmp/mpfr/mpc versions.

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

9 years ago2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Mon, 2 May 2016 14:41:25 +0000 (14:41 +0000)] 
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.dg/spec-options.c: Run the test on all targets.
        * gcc.dg/foo.specs: Use cpp_unique_options.

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

9 years agoCanonicalize X u< X to UNORDERED_EXPR
glisse [Mon, 2 May 2016 14:32:53 +0000 (14:32 +0000)] 
Canonicalize X u< X to UNORDERED_EXPR

2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X u< X, X u> X): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/unord.c: New testcase.

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

9 years agoMove "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd
glisse [Mon, 2 May 2016 14:09:07 +0000 (14:09 +0000)] 
Move "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd

2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* flag-types.h (enum warn_strict_overflow_code): Move ...
* coretypes.h: ... here.
* fold-const.h (fold_overflow_warning): Declare.
* fold-const.c (fold_overflow_warning): Make non-static.
(fold_comparison): Move the transformation of X +- C1 CMP C2
into X CMP C2 -+ C1 ...
* match.pd: ... here.
* gimple-fold.c (fold_stmt_1): Protect with
fold_defer_overflow_warnings.

gcc/testsuite/
* gcc.dg/tree-ssa/20040305-1.c: Adjust.

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

9 years ago gcc/
nathan [Mon, 2 May 2016 13:16:22 +0000 (13:16 +0000)] 
gcc/
* omp-low.c (struct oacc_loop): Add 'inner' field.
(new_oacc_loop_raw): Initialize it to zero.
(oacc_loop_fixed_partitions): Initialize it.
(oacc_loop_auto_partitions): Partition outermost loop to outermost
available partitioning.

gcc/testsuite/
* c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
expected partitioning.

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

9 years agoFix make install-gcc-specs with empty GCC_SPEC_FILES
ro [Mon, 2 May 2016 13:08:59 +0000 (13:08 +0000)] 
Fix make install-gcc-specs with empty GCC_SPEC_FILES

* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
Honor DESTDIR.

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

9 years ago PR c/70851
mpolacek [Mon, 2 May 2016 11:35:59 +0000 (11:35 +0000)] 
PR c/70851
* c-decl.c (grokdeclarator): Diagnose when array's size has an
incomplete type.

* gcc.dg/enum-incomplete-3.c: New test.

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

9 years ago[ARC] Various instruction pattern fixes
claziss [Mon, 2 May 2016 11:26:57 +0000 (11:26 +0000)] 
[ARC] Various instruction pattern fixes

gcc/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
register_operand.
(umulsidi3): Likewise.
(indirect_jump): Fix jump instruction assembly patterns.

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