gcc.git
8 years ago[RS6000] Simplify setting of fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
Alan Modra [Sat, 30 Apr 2016 00:33:26 +0000 (10:03 +0930)]
[RS6000] Simplify setting of fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]

This makes the conditions look the same as other places that deal with
RS6000_PIC_OFFSET_TABLE_REGNUM, eg. first_reg_to_save.  No functional
changes.

* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
flag_pic test for Darwin.

From-SVN: r235669

8 years agoDaily bump.
GCC Administrator [Sat, 30 Apr 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235668

8 years agoGoodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED
Alan Modra [Sat, 30 Apr 2016 00:01:52 +0000 (09:31 +0930)]
Goodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED

* regs.h (struct reg_info_t): Delete freq_calls_crossed and
throw_calls_crossed.
(REG_FREQ_CALLS_CROSSED): Delete.
(REG_N_THROWING_CALLS_CROSSED): Delete.
* regstat.c (regstat_bb_compute_ri): Don't calculate
REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
(dump_reg_info): Don't print call cross frequency.
* ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
and REG_N_THROWING_CALLS_CROSSED.

From-SVN: r235664

8 years agoGoodbye REG_LIVE_LENGTH
Alan Modra [Sat, 30 Apr 2016 00:01:07 +0000 (09:31 +0930)]
Goodbye REG_LIVE_LENGTH

* regs.h (struct reg_info_t): Delete live_length.
(REG_LIVE_LENGTH): Delete macro.
* regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
local_live, local_processed and local_live_last_luid params.
Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
Formatting fixes.
(regstat_compute_ri): Adjust for above.  Don't set
REG_LIVE_LENGTH.
(dump_reg_info): Don't print live length.
* ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
Localize loop_depth var.

From-SVN: r235663

8 years agore PR c++/66644 (Rejects C++11 in-class anonymous union members initialization)
Paolo Carlini [Sat, 30 Apr 2016 00:00:51 +0000 (00:00 +0000)]
re PR c++/66644 (Rejects C++11 in-class anonymous union members initialization)

/cp
2016-04-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66644
* class.c (check_field_decl): Remove final int* parameter, change
the return type to bool; fix logic in order not to reject multiple
initialized fields in anonymous struct.
(check_field_decls): Adjust call.

/testsuite
2016-04-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66644
* g++.dg/cpp0x/nsdmi-anon-struct1.C: New.

From-SVN: r235662

8 years agoira.c validate_equiv_mem
Alan Modra [Sat, 30 Apr 2016 00:00:22 +0000 (09:30 +0930)]
ira.c validate_equiv_mem

This function is used to validate REG_EQUIV notes generated by ira,
and to validate potential insn combines performed by ira.  The two
conditions are not exactly the same, with reload being more
restrictive.  Separate them so more combines/moves can occur.

For example, this sequence from cfgexpand.c:expand_gimple_cond
callq  _Z18update_bb_for_insnP15basic_block_def
mov    0x10(%rbx),%rdi
mov    0x0(%rip),%rbp        # x_rtl+0x34
callq  _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_
mov    %r13,%rdx
mov    %rbp,%rsi
mov    %rax,%rdi
callq  _Z18create_basic_blockP7rtx_defS0_P15basic_block_def

becomes
callq  _Z18update_bb_for_insnP15basic_block_def
mov    0x10(%rbx),%rdi
callq  _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_
mov    0x0(%rip),%rsi        # x_rtl+0x34
mov    %r13,%rdx
mov    %rax,%rdi
callq  _Z18create_basic_blockP7rtx_defS0_P15basic_block_def

* ira.c (enum valid_equiv): New.
(validate_equiv_mem): Return enum.
(update_equiv_mem): Create replacement in more cases.
(add_store_equivs): Update validate_equiv_mem call.

From-SVN: r235661

8 years agoira.c use DF infrastructure for combine_and_move_insns
Alan Modra [Fri, 29 Apr 2016 23:59:22 +0000 (09:29 +0930)]
ira.c use DF infrastructure for combine_and_move_insns

This patch actually improves generated code, because REG_DEAD notes
used by the old insn scan are not always present.  On x86_64, see
gcc/wide-int-print.o:print_hex for an example of a function that is
smaller and uses one less callee saved reg.

* ira.c (combine_and_move_insns): Rather than scanning insns,
use DF infrastucture to find use and def insns.

From-SVN: r235660

8 years agoira.c combine_and_move_insns, and ordering of functions
Alan Modra [Fri, 29 Apr 2016 23:58:17 +0000 (09:28 +0930)]
ira.c combine_and_move_insns, and ordering of functions

Notes added by add_store_equivs are not used directly or indirectly by
combine_and_move_insns.  add_store_equivs can therefore run later
without affecting the output of combine_and_move_insns, and thus
add_store_equivs need not take into account potentially moved insns.
Since not all potentially combined/moved insns are in fact combined or
moved, this may allow add_store_equivs to add more REG_EQUIV notes.

grow_reg_equivs isn't needed until the reload reg_equivs array is
changed.

ira.c (combine_and_move_insns): Move invariant conditions..
(ira.c): ..to here.  Call combine_and_move_insns before
add_store_equivs.  Call grow_reg_equivs later.  Allocate
req_equiv later using max_reg_num() rather than global max_regno.
(contains_replace_regs): Delete.
(add_store_equivs): Remove contains_replace_regs test.

From-SVN: r235659

8 years agoira.c tidies: validate_equiv_mem_from_store
Alan Modra [Fri, 29 Apr 2016 23:57:33 +0000 (09:27 +0930)]
ira.c tidies: validate_equiv_mem_from_store

* ira.c (struct equiv_mem_data): New.
(equiv_mem, equiv_mem_modified): Delete static vars.
(validate_equiv_mem_from_store): Use "data" param to communicate..
(validate_equiv_mem): ..from here.

From-SVN: r235658

8 years agoira.c tidies: split update_reg_equivs
Alan Modra [Fri, 29 Apr 2016 23:57:00 +0000 (09:27 +0930)]
ira.c tidies: split update_reg_equivs

* ira.c (add_store_equivs, combine_and_move_insns): New functions,
split out from..
(update_reg_equivs): ..here.  Move allocation and freeing of
reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
end_alias_analysis to..
(ira): ..here.

From-SVN: r235657

8 years agoira.c tidies: move pdx_subregs into reg_equiv
Alan Modra [Fri, 29 Apr 2016 23:56:16 +0000 (09:26 +0930)]
ira.c tidies: move pdx_subregs into reg_equiv

Where pdx_subregs[regno] is used, reg_equiv[regno] is also used.

* ira.c (pdx_subregs): Delete.
(struct equivalence): Add pdx_subregs field.
(set_paradoxical_subreg): Remove pdx_subregs param.  Update
pdx_subregs access.
(update_equiv_regs): Don't create or free pdx_subregs.  Update
pdx_subregs access.

From-SVN: r235656

8 years agoaltivec.h: Change definitions of vec_xl and vec_xst.
Bill Schmidt [Fri, 29 Apr 2016 20:57:14 +0000 (20:57 +0000)]
altivec.h: Change definitions of vec_xl and vec_xst.

[gcc]

2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.h: Change definitions of vec_xl and
vec_xst.
* config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
(LD_ELEMREV_V2DI): New.
(LD_ELEMREV_V4SF): New.
(LD_ELEMREV_V4SI): New.
(LD_ELEMREV_V8HI): New.
(LD_ELEMREV_V16QI): New.
(ST_ELEMREV_V2DF): New.
(ST_ELEMREV_V2DI): New.
(ST_ELEMREV_V4SF): New.
(ST_ELEMREV_V4SI): New.
(ST_ELEMREV_V8HI): New.
(ST_ELEMREV_V16QI): New.
(XL): New.
(XST): New.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
(altivec_expand_builtin): Add handling for
VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
(rs6000_invalid_builtin): Add error-checking for
RS6000_BTM_P9_VECTOR.
(altivec_init_builtins): Define builtins used to implement vec_xl
and vec_xst.
(rs6000_builtin_mask_names): Define power9-vector.
* config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
(RS6000_BTM_P9_VECTOR): Define.
(RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
* config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
(vsx_ld_elemrev_v2df): Likewise.
(vsx_ld_elemrev_v4sf): Likewise.
(vsx_ld_elemrev_v4si): Likewise.
(vsx_ld_elemrev_v8hi): Likewise.
(vsx_ld_elemrev_v16qi): Likewise.
(vsx_st_elemrev_v2df): Likewise.
(vsx_st_elemrev_v2di): Likewise.
(vsx_st_elemrev_v4sf): Likewise.
(vsx_st_elemrev_v4si): Likewise.
(vsx_st_elemrev_v8hi): Likewise.
(vsx_st_elemrev_v16qi): Likewise.
* doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
grammar.

[gcc/testsuite]

2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/vsx-elemrev-1.c: New.
* gcc.target/powerpc/vsx-elemrev-2.c: New.
* gcc.target/powerpc/vsx-elemrev-3.c: New.
* gcc.target/powerpc/vsx-elemrev-4.c: New.

From-SVN: r235654

8 years agotree-ssa-threadedge.c (simplify_control_stmt_condition): Split out into ...
Patrick Palka [Fri, 29 Apr 2016 19:15:25 +0000 (19:15 +0000)]
tree-ssa-threadedge.c (simplify_control_stmt_condition): Split out into ...

2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>

* tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
out into ...
(simplify_control_stmt_condition_1): ... here.  Recurse into
BIT_AND_EXPRs and BIT_IOR_EXPRs.

* gcc.dg/tree-ssa/ssa-thread-14.c: New test.
* gcc.dg/tree-ssa/ssa-thread-11.c: Update expected output.

From-SVN: r235653

8 years agore PR middle-end/70626 (bogus results in 'acc parallel loop' reductions)
Cesar Philippidis [Fri, 29 Apr 2016 17:42:04 +0000 (10:42 -0700)]
re PR middle-end/70626 (bogus results in 'acc parallel loop' reductions)

gcc/c-family/
PR middle-end/70626
* c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
* c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
reduction clauses in acc parallel loops.

gcc/c/
PR middle-end/70626
* c-parser.c (c_parser_oacc_loop): Don't augment mask with
OACC_LOOP_CLAUSE_MASK.
(c_parser_oacc_kernels_parallel): Update call to
c_oacc_split_loop_clauses.

gcc/cp/
PR middle-end/70626
* parser.c (cp_parser_oacc_loop): Don't augment mask with
OACC_LOOP_CLAUSE_MASK.
(cp_parser_oacc_kernels_parallel): Update call to
c_oacc_split_loop_clauses.

gcc/fortran/
PR middle-end/70626
* trans-openmp.c (gfc_trans_oacc_combined_directive): Duplicate
the reduction clause in both parallel and loop directives.

gcc/testsuite/
PR middle-end/70626
* c-c++-common/goacc/combined-reduction.c: New test.
* gfortran.dg/goacc/reduction-2.f95: Add check for kernels reductions.

libgomp/
PR middle-end/70626
* testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
* testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
* testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.

From-SVN: r235651

8 years agoescape: Remove previously existing analysis.
Chris Manghane [Fri, 29 Apr 2016 17:33:01 +0000 (17:33 +0000)]
escape: Remove previously existing analysis.

* Make-lang.in (GO_OBJS): Remove go/dataflow.o, go/escape.o.

    Reviewed-on: https://go-review.googlesource.com/18261

From-SVN: r235649

8 years agoUpdate scan-assembler-not in PR target/70155 tests
H.J. Lu [Fri, 29 Apr 2016 17:27:59 +0000 (17:27 +0000)]
Update scan-assembler-not in PR target/70155 tests

Since PIC leads to the *movdi_internal pattern, check for nonexistence
of the *movdi_internal pattern in PR target/70155 tests only if PIC is
off.

* gcc.target/i386/pr70155-1.c: Check for nonexistence of the
*movdi_internal pattern only if PIC off.
* gcc.target/i386/pr70155-2.c: Likewise.
* gcc.target/i386/pr70155-3.c: Likewise.
* gcc.target/i386/pr70155-4.c: Likewise.
* gcc.target/i386/pr70155-5.c: Likewise.
* gcc.target/i386/pr70155-6.c: Likewise.
* gcc.target/i386/pr70155-7.c: Likewise.
* gcc.target/i386/pr70155-8.c: Likewise.
* gcc.target/i386/pr70155-15.c: Likewise.
* gcc.target/i386/pr70155-17.c: Likewise.
* gcc.target/i386/pr70155-22.c: Likewise.

From-SVN: r235647

8 years agore PR target/69810 (PowerPC64: unrecognizable insn)
David Edelsohn [Fri, 29 Apr 2016 17:20:36 +0000 (17:20 +0000)]
re PR target/69810 (PowerPC64: unrecognizable insn)

        PR target/69810
        * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
        (zero_extendqi<mode>2_dot): Revert earlier conversion from
        define_insn_and_split to define_insn.
        (zero_extendqi<mode>2_dot2): Same.
        (extendqi<mode>2_dot): Same.
        (extendqi<mode>2_dot2): Same.

From-SVN: r235646

8 years agoRemove trailing whitespace from libstdc++-v3 files
Chris Gregory [Fri, 29 Apr 2016 16:11:43 +0000 (16:11 +0000)]
Remove trailing whitespace from libstdc++-v3 files

2016-04-29  Chris Gregory  <czipperz@gmail.com>

* config/*: Remove trailing whitespace.
* src/*: Likewise.
* testsuite/tr1/*: Likewise.
* testsuite/util/*: Likewise.

From-SVN: r235645

8 years agore PR tree-optimization/70803 (gcc.dg/vect/pr56625.c FAILs)
Bin Cheng [Fri, 29 Apr 2016 15:13:03 +0000 (15:13 +0000)]
re PR tree-optimization/70803 (gcc.dg/vect/pr56625.c FAILs)

gcc/testsuite/ChangeLog
PR tree-optimization/70803
* gcc.dg/vect/pr56625.c: Require vect_int_mult.

From-SVN: r235644

8 years agoAdd DW_LANG_Rust
Tom Tromey [Fri, 29 Apr 2016 15:01:30 +0000 (15:01 +0000)]
Add DW_LANG_Rust

include/
* dwarf2.h (enum dwarf_source_language) <DW_LANG_Rust,
DW_LANG_Rust_old>: New constants.

From-SVN: r235643

8 years agoi386.md (unspec): Add UNSPEC_PROBE_STACK.
Uros Bizjak [Fri, 29 Apr 2016 14:43:29 +0000 (16:43 +0200)]
i386.md (unspec): Add UNSPEC_PROBE_STACK.

* config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
(probe_stack): New expander.
(probe_stack_<mode>): New insn pattern.

From-SVN: r235642

8 years agoi386.md (operations with memory inputs setting flags peephole2): Remove uneeded REG_P...
Uros Bizjak [Fri, 29 Apr 2016 14:31:56 +0000 (16:31 +0200)]
i386.md (operations with memory inputs setting flags peephole2): Remove uneeded REG_P checks.

* config/i386/i386.md
(operations with memory inputs setting flags peephole2):
Remove uneeded REG_P checks.  Cleanup pattern generation.

From-SVN: r235641

8 years agocrt1.S: Remove SH5 support.
Oleg Endo [Fri, 29 Apr 2016 14:10:26 +0000 (14:10 +0000)]
crt1.S: Remove SH5 support.

libgcc/
* config/sh/crt1.S: Remove SH5 support.
* config/sh/crti.S: Likewise.
* config/sh/crtn.S: Likewise.
* config/sh/lib1funcs-4-300.S: Likewise.
* config/sh/lib1funcs-Os-4-200.S: Likewise.
* config/sh/lib1funcs.S: Likewise.
* config/sh/linux-unwind.h: Likewise.
* config/sh/t-sh64: Delete.

From-SVN: r235640

8 years agotree-vect-loop.c (vect_transform_loop): Fix nb_iterations_upper_bound computation...
Ilya Enkovich [Fri, 29 Apr 2016 13:27:24 +0000 (13:27 +0000)]
tree-vect-loop.c (vect_transform_loop): Fix nb_iterations_upper_bound computation for vectorized loop.

gcc/

* tree-vect-loop.c (vect_transform_loop): Fix
nb_iterations_upper_bound computation for vectorized loop.

gcc/testsuite/

* gcc.target/i386/vect-unpack-2.c (avx512bw_test): Avoid
optimization of vector loop.
* gcc.target/i386/vect-unpack-3.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-1.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-2.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-3.c: New test.

From-SVN: r235639

8 years agore PR c/70852 (ice in warn_for_memset)
Marek Polacek [Fri, 29 Apr 2016 12:39:25 +0000 (12:39 +0000)]
re PR c/70852 (ice in warn_for_memset)

PR c/70852
* c-common.c (warn_for_memset): Check domain before accessing it.

* gcc.dg/pr70852.c: New test.

From-SVN: r235638

8 years agore PR sanitizer/70342 (g++ -fsanitize=undefined never finishes compiling (>24h) in...
Marek Polacek [Fri, 29 Apr 2016 12:32:45 +0000 (12:32 +0000)]
re PR sanitizer/70342 (g++ -fsanitize=undefined never finishes compiling (>24h) in qtxmlpatterns test suite)

PR sanitizer/70342
* fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
TARGET_EXPR_SLOT as a base.

* g++.dg/ubsan/null-7.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r235637

8 years agoarc.md (*loadqi_update): Replace use of 'rI' constraint with 'rCm2' constraints to...
Andrew Burgess [Fri, 29 Apr 2016 12:07:31 +0000 (13:07 +0100)]
arc.md (*loadqi_update): Replace use of 'rI' constraint with 'rCm2' constraints to limit possible...

2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*loadqi_update): Replace use of 'rI'
        constraint with 'rCm2' constraints to limit possible immediate
        size.
        (*load_zeroextendqisi_update): Likewise.
        (*load_signextendqisi_update): Likewise.
        (*loadhi_update): Likewise.
        (*load_zeroextendhisi_update): Likewise.
        (*load_signextendhisi_update): Likewise.
        (*loadsi_update): Likewise.
        (*loadsf_update): Likewise.

From-SVN: r235636

8 years agopredicates.md (constm1_operand): Fix comparison.
Uros Bizjak [Fri, 29 Apr 2016 12:00:48 +0000 (14:00 +0200)]
predicates.md (constm1_operand): Fix comparison.

* config/i386/predicates.md (constm1_operand): Fix comparison.

From-SVN: r235635

8 years ago[ARC] Handle FPX NaN within optimized floating point library.
Claudiu Zissulescu [Fri, 29 Apr 2016 10:49:26 +0000 (12:49 +0200)]
[ARC] Handle FPX NaN within optimized floating point library.

gcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* testsuite/gcc.target/arc/ieee_eq.c: New test.

libgcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/ieee-754/eqdf2.S: Handle FPX NaN.

From-SVN: r235633

8 years agolonglong.h (umul_ppmm): Remove SHMEDIA checks.
Oleg Endo [Fri, 29 Apr 2016 10:44:57 +0000 (10:44 +0000)]
longlong.h (umul_ppmm): Remove SHMEDIA checks.

include/
* longlong.h (umul_ppmm): Remove SHMEDIA checks.
(__umulsidi3, count_leading_zeros): Remove SHMEDIA implementations.

gcc/
* common/config/sh/sh-common.c (sh_option_optimization_table): Remove
remaining SH5 related settings.
* config/sh/sh-protos.h (shmedia_cleanup_truncate,
shmedia_prepare_call_address): Delete.
* config/sh/sh.c (sh_print_operand, output_stack_adjust,
DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
* config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
UNSUPPORTED_SH2A): Remove m5 checks.
(sh_divide_strategy_e): Remove SH5 division strategies.
(TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
* config/sh/sh.md (divsf3): Reinstate define_expand pattern.

From-SVN: r235632

8 years ago[ARC] Fix obsolete constraint.
Claudiu Zissulescu [Fri, 29 Apr 2016 10:11:25 +0000 (12:11 +0200)]
[ARC] Fix obsolete constraint.

include/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* longlong.h (add_ssaaaa): Replace obsolete 'J' constraint with
'Cal' constraint.
(sub_ddmmss): Likewise.

From-SVN: r235631

8 years agoS/390: Improve documentation of s390_reload_costs.
Dominik Vogt [Fri, 29 Apr 2016 09:20:55 +0000 (09:20 +0000)]
S/390: Improve documentation of s390_reload_costs.

gcc/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.c (s390_rtx_costs): Update documentation.

From-SVN: r235630

8 years agoPR/69089: C++-11: Ingore "alignas(0)".
Dominik Vogt [Fri, 29 Apr 2016 09:20:06 +0000 (09:20 +0000)]
PR/69089: C++-11: Ingore "alignas(0)".

gcc/c-family/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR/69089
* c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
"aligned" attribute.

gcc/testsuite/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR/69089
* g++.dg/cpp0x/alignas6.C: New test.

From-SVN: r235629

8 years agoClean up tests where a later dg-do completely overrides another.
Dominik Vogt [Fri, 29 Apr 2016 09:19:01 +0000 (09:19 +0000)]
Clean up tests where a later dg-do completely overrides another.

The attached patch cleans up some (mostly unnecessary) dg-do
directives in the gcc.dg and gcc.target test cases.

gcc/testsuite/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc/testsuite/gcc.dg/cpp/mac-dir-2.c: Remove pointless duplicate
dg-do.
* gcc/testsuite/gcc.dg/pr27003.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/cswtch.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise.
* gcc.target/arc/mxy.c: Likewise.
* gcc.target/arc/mswape.c: Likewise.
* gcc.target/arc/mrtsc.c: Likewise.
* gcc.target/arc/mcrc.c: Likewise.
* gcc.target/arc/mdsp-packa.c: Likewise.
* gcc.target/arc/mdvbf.c: Likewise.
* gcc.target/arc/mlock.c: Likewise.
* gcc.target/arc/mmac-24.c: Likewise.
* gcc.dg/spec-options.c: Switch order of the two "dg-do run".

From-SVN: r235628

8 years agoS/390: Replace LDER with LDR.
Andreas Krebbel [Fri, 29 Apr 2016 09:17:35 +0000 (09:17 +0000)]
S/390: Replace LDER with LDR.

For performance reasons it is important to write the full 64 bits of
an FPR target reg even when dealing with 32 bit values.  So we chose
lder over ler for 32 bit float register moves.  lder zero-extends the
32 bit value from the source reg to 64 bit in the target.  However,
since it actually doesn't matter whether we write the upper 32 bits
with zeros or with any other garbage we can also use ldr instead.  It
is bit shorter and therefore will do good for I-Cache usage.

gcc/ChangeLog:

2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
* config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
Change lder to ldr.
* config/s390/vector.md ("mov<mode>"): Likewise.

From-SVN: r235627

8 years agoS/390: Memory constraint cleanup
Ulrich Weigand [Fri, 29 Apr 2016 09:14:19 +0000 (09:14 +0000)]
S/390: Memory constraint cleanup

This fixes an issue with the long displacement memory address
constraints S and T.  These were defined to only accept long
displacement addresses.  This is wrong since a memory constraint must
not reject an address with a 0 displacement.  Reload relies on being
able to turn an invalid memory address into a valid one by reloading
the address into a base register.  The S and T constraints would
reject such an address.

This isn't really a problem for the backend since we used the
constraints with that knowledge there but it is a problem for people
writing inline assemblies.

gcc/ChangeLog:

2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>

* config/s390/constraints.md ("U", "W"): Invoke
s390_mem_constraint with "ZR" and "ZT".
* config/s390/s390.c (s390_check_qrst_address): Reject invalid
addresses when using LRA.  Accept also short displacements for S
and T constraints.  Do not check for long displacement target for
S and T constraints.
(s390_mem_constraint): Remove handling of U and W constraints.
* config/s390/s390.md (various patterns): Remove the short
displacement constraints (Q and R) if a long displacement
constraint is present.  Add longdisp as required CPU capability.
* config/s390/vector.md: Likewise.
* config/s390/vx-builtins.md: Likewise.

From-SVN: r235626

8 years agoavr-related reload fix from Senthil Kumar Selvaraj
Bernd Schmidt [Fri, 29 Apr 2016 08:59:09 +0000 (08:59 +0000)]
avr-related reload fix from Senthil Kumar Selvaraj

PR target/60040
* reload1.c (reload): Call finish_spills before
restarting reload loop. Skip select_reload_regs
if update_eliminables_and_spill returns true.

testsuite/
PR target/60040
* gcc.target/avr/pr60040-1.c: New.
* gcc.target/avr/pr60040-2.c: New.

From-SVN: r235625

8 years agopr18589-10.c: Adjust.
Richard Biener [Fri, 29 Apr 2016 08:47:34 +0000 (08:47 +0000)]
pr18589-10.c: Adjust.

2016-04-29  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/pr18589-10.c: Adjust.

From-SVN: r235624

8 years ago[ARC] Fix unwanted match for sign extend 16-bit constant.
Claudiu Zissulescu [Fri, 29 Apr 2016 08:39:22 +0000 (10:39 +0200)]
[ARC] Fix unwanted match for sign extend 16-bit constant.

The combine pass may conclude umulhisi3_imm pattern can accept also sign
extended 16-bit constants. This patch prohibits the combine in considering
this pattern as suitable.

gcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
* config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
(umulhisi3_imm): Update predicates and constraint letters.
(umulhisi3_reg): Declare instruction as commutative.
* config/arc/constraints.md (J12, J16): New constraints.
* config/arc/predicates.md (short_unsigned_const_operand): New
predicate.
(arc_short_operand): Likewise.
* testsuite/gcc.target/arc/umulsihi3_z.c: New file.

From-SVN: r235623

8 years agore PR tree-optimization/13962 ([tree-ssa] make "fold" use alias information to optimi...
Richard Biener [Fri, 29 Apr 2016 08:36:49 +0000 (08:36 +0000)]
re PR tree-optimization/13962 ([tree-ssa] make "fold" use alias information to optimize pointer comparisons)

2016-04-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/13962
PR tree-optimization/65686
* tree-ssa-alias.h (ptrs_compare_unequal): Declare.
* tree-ssa-alias.c (ptrs_compare_unequal): New function
using PTA to compare pointers.
* match.pd: Add pattern for pointer equality compare simplification
using ptrs_compare_unequal.

* gcc.dg/uninit-pr65686.c: New testcase.

From-SVN: r235622

8 years agostor-layout.c (layout_type): Do not build a pointer-to-element type for arrays.
Richard Biener [Fri, 29 Apr 2016 08:08:45 +0000 (08:08 +0000)]
stor-layout.c (layout_type): Do not build a pointer-to-element type for arrays.

2016-04-29  Richard Biener  <rguenther@suse.de>

* stor-layout.c (layout_type): Do not build a pointer-to-element
type for arrays.

From-SVN: r235621

8 years agoi386.md (Load+RegOp to Mov+MemOp peephole2): Use SWI mode iterator.
Uros Bizjak [Fri, 29 Apr 2016 06:12:47 +0000 (08:12 +0200)]
i386.md (Load+RegOp to Mov+MemOp peephole2): Use SWI mode iterator.

* config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
Use SWI mode iterator.  Use general_reg_operand predicate.
(Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
predicates.

From-SVN: r235620

8 years agoDaily bump.
GCC Administrator [Fri, 29 Apr 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235619

8 years agore PR middle-end/70843 (ICE in add_expr, at tree.c:7913)
Jakub Jelinek [Thu, 28 Apr 2016 22:23:01 +0000 (00:23 +0200)]
re PR middle-end/70843 (ICE in add_expr, at tree.c:7913)

PR middle-end/70843
* fold-const.c (operand_equal_p): Don't verify hash value equality
if arg0 == arg1.
* tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
and OMP_CLAUSE.

* gcc.dg/pr70843.c: New test.

From-SVN: r235615

8 years agoc-array-notation.c (fix_builtin_array_notation_fn): Fix final argument to build_modif...
Andrew MacLeod [Thu, 28 Apr 2016 22:00:19 +0000 (22:00 +0000)]
c-array-notation.c (fix_builtin_array_notation_fn): Fix final argument to build_modify_expr in two cases.

2016-04-28  Andrew MacLeod  <amacleod@redhat.com>

* c-array-notation.c (fix_builtin_array_notation_fn): Fix final
argument to build_modify_expr in two cases.

From-SVN: r235614

8 years agocompiler: Mark concurrent calls.
Ian Lance Taylor [Thu, 28 Apr 2016 19:43:20 +0000 (19:43 +0000)]
compiler: Mark concurrent calls.

    If a call expression is executed in an independent goroutine via
    use of a Go statement, mark it as concurrent.

    Reviewed-on: https://go-review.googlesource.com/18700

From-SVN: r235608

8 years agore PR target/70858 (__builtin_ia32_bextr_u64 ICE with '-m32 -march=core-avx2')
Jakub Jelinek [Thu, 28 Apr 2016 19:33:34 +0000 (21:33 +0200)]
re PR target/70858 (__builtin_ia32_bextr_u64 ICE with '-m32 -march=core-avx2')

PR target/70858
* config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
(bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
__builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
__builtin_ia32_pdep_di and __builtin_ia32_pext_di.

* gcc.target/i386/pr70858.c: New test.

From-SVN: r235607

8 years agors6000: Clean up rs6000_stack_info a bit
Segher Boessenkool [Thu, 28 Apr 2016 19:23:55 +0000 (21:23 +0200)]
rs6000: Clean up rs6000_stack_info a bit

- Rename "info_ptr" to "info", as in all other routines;
- Don't set fields to 0, the whole struct already is set to 0;
- Fix formatting a bit.

* config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
to info.  Don't initialize separate fields to 0.  Clean up
formatting a bit.

From-SVN: r235606

8 years agonps400-1.c: New file.
Andrew Burgess [Thu, 28 Apr 2016 19:13:47 +0000 (20:13 +0100)]
nps400-1.c: New file.

2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/nps400-1.c: New file.

From-SVN: r235603

8 years agocompiler: Export String_index_expression.
Ian Lance Taylor [Thu, 28 Apr 2016 19:12:13 +0000 (19:12 +0000)]
compiler: Export String_index_expression.

    Exports String_index_expression and adds the getter `string` that
    returns the underlying string.  This will be used to handle string
    indexing different from array indexing in escape analysis.

    Reviewed-on: https://go-review.googlesource.com/18545

From-SVN: r235602

8 years agoi386.md (peephole2s for operations with memory inputs): Use SWI mode iterator.
Uros Bizjak [Thu, 28 Apr 2016 19:11:25 +0000 (21:11 +0200)]
i386.md (peephole2s for operations with memory inputs): Use SWI mode iterator.

* config/i386/i386.md (peephole2s for operations with memory inputs):
Use SWI mode iterator.
(peephole2s for operations with memory outputs): Ditto.
Do not check for stack checking probe.

(probe_stack): Remove expander.

From-SVN: r235601

8 years agoarc.c (arc_print_operand): Print integer 'H' / 'L'
Joern Rennecke [Thu, 28 Apr 2016 19:08:28 +0000 (19:08 +0000)]
arc.c (arc_print_operand): Print integer 'H' / 'L'

2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
gcc/testsuite:
        * gcc.target/arc/movh_cl-1.c: New file.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
From-SVN: r235600

8 years ago* gdbinit.in: Skip line-map.h.
Jason Merrill [Thu, 28 Apr 2016 19:04:23 +0000 (15:04 -0400)]
* gdbinit.in: Skip line-map.h.

From-SVN: r235598

8 years agoImplement C++17 [[nodiscard]] attribute.
Jason Merrill [Thu, 28 Apr 2016 19:01:19 +0000 (15:01 -0400)]
Implement C++17 [[nodiscard]] attribute.

PR c++/38172
PR c++/54379
gcc/c-family/
* c-lex.c (c_common_has_attribute): Handle nodiscard.
gcc/cp/
* parser.c (cp_parser_std_attribute): Handle [[nodiscard]].
* tree.c (handle_nodiscard_attribute): New.
(cxx_attribute_table): Add [[nodiscard]].
* cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New.
(maybe_warn_nodiscard): New.
(convert_to_void): Call it.

From-SVN: r235597

8 years agocvt.c (cp_get_callee): New.
Jason Merrill [Thu, 28 Apr 2016 19:01:13 +0000 (15:01 -0400)]
cvt.c (cp_get_callee): New.

* cvt.c (cp_get_callee): New.

* constexpr.c (get_function_named_in_call): Use it.
* cxx-pretty-print.c (postfix_expression): Use it.
* except.c (check_noexcept_r): Use it.
* method.c (check_nontriv): Use it.
* tree.c (build_aggr_init_expr): Use it.
* cp-tree.h: Declare it.

From-SVN: r235596

8 years agoarc.h (SYMBOL_FLAG_CMEM): Define.
Joern Rennecke [Thu, 28 Apr 2016 18:48:43 +0000 (18:48 +0000)]
arc.h (SYMBOL_FLAG_CMEM): Define.

2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
        (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
        * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
        (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
        * config/arc/arc.opt (mcmem): New option.
        * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
        supply length for r/m alternative.
        (*extendqisi2_ac): Likewise.
        (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
        r/Uex alternative.
        (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
        (movhi_insn): Likewise.
        (movsi_insn): Add r/Ucm,Ucm/w alternatives.
        (*zero_extendqihi2_i): Add r/Ucm alternative.
        (*zero_extendqisi2_ac): Likewise.
        (*zero_extendhisi2_i): Likewise.
        * config/arc/constraints.md (Uex): New memory constraint.
        (Ucm): New define_constraint.
        * config/arc/predicates.md (long_immediate_loadstore_operand):
        Return 0 for MEM with cmem_address address.
        (cmem_address_0): New predicates.
        (cmem_address_1): Likewise.
        (cmem_address_2): Likewise.
        (cmem_address): Likewise.
gcc/testsuite:
        * gcc.target/arc/cmem-1.c: New file.
        * gcc.target/arc/cmem-2.c: New file.
        * gcc.target/arc/cmem-3.c: New file.
        * gcc.target/arc/cmem-4.c: New file.
        * gcc.target/arc/cmem-5.c: New file.
        * gcc.target/arc/cmem-6.c: New file.
        * gcc.target/arc/cmem-7.c: New file.
        * gcc.target/arc/cmem-ld.inc: New file.
        * gcc.target/arc/cmem-st.inc: New file.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
From-SVN: r235595

8 years agosbitmap: Remove popcount
Segher Boessenkool [Thu, 28 Apr 2016 18:43:12 +0000 (20:43 +0200)]
sbitmap: Remove popcount

In r193072 sbitmap_popcount was removed, so we cannot ask for the popcount
of an sbitmap anymore.  Nothing calls sbitmap_alloc_with_popcount either.
This patch removes everything else popcount-related from sbitmap.

* cfganal.c (bitmap_intersection_of_succs): Delete assert checking
dst->popcount.
(bitmap_intersection_of_preds): Ditto.
(bitmap_union_of_succs): Ditto.
(bitmap_union_of_preds): Ditto.
* sbitmap.c (do_popcount): Delete.
(BITMAP_DEBUGGING): Delete.
(sbitmap_verify_popcount): Delete.
(sbitmap_alloc): Don't initialize the popcount field.
(sbitmap_alloc_with_popcount): Delete.
(sbitmap_resize): Don't resize the popcount array.
(sbitmap_vector_alloc): Don't initialize the popcount field.
(bitmap_copy): Don't copy the popcount array.
(bitmap_clear): Don't clear the popcount array.
(bitmap_clear): Delete the popcount array handling.
(bitmap_ior_and_compl): Delete the popcount assert.
(bitmap_not): Ditto.
(bitmap_and_compl): Ditto.
(bitmap_and): Delete the popcount array handling.
(bitmap_xor): Ditto.
(bitmap_ior): Ditto.
(bitmap_or_and): Delete the popcount assert.
(bitmap_and_or): Ditto.
(popcount_table): Delete.
(sbitmap_elt_popcount): Delete.
* sbitmap.h (simple_bitmap_def): Delete the popcount field.
(bitmap_set_bit): Delete the popcount assert.
(bitmap_clear_bit): Ditto.
(sbitmap_free): Don't free the popcount array.
(sbitmap_alloc_with_popcount): Delete declaration.
(sbitmap_popcount): Ditto.

From-SVN: r235592

8 years ago* ChangeLog: Remove duplicate entry.
Uros Bizjak [Thu, 28 Apr 2016 18:29:33 +0000 (20:29 +0200)]
* ChangeLog: Remove duplicate entry.

From-SVN: r235591

8 years agoarc.h (SYMBOL_FLAG_CMEM): Define.
Joern Rennecke [Thu, 28 Apr 2016 18:21:42 +0000 (18:21 +0000)]
arc.h (SYMBOL_FLAG_CMEM): Define.

2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
        (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
        * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
        (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
        * config/arc/arc.opt (mcmem): New option.
        * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
        supply length for r/m alternative.
        (*extendqisi2_ac): Likewise.
        (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
        r/Uex alternative.
        (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
        (movhi_insn): Likewise.
        (movsi_insn): Add r/Ucm,Ucm/w alternatives.
        (*zero_extendqihi2_i): Add r/Ucm alternative.
        (*zero_extendqisi2_ac): Likewise.
        (*zero_extendhisi2_i): Likewise.
        * config/arc/constraints.md (Uex): New memory constraint.
        (Ucm): New define_constraint.
        * config/arc/predicates.md (long_immediate_loadstore_operand):
        Return 0 for MEM with cmem_address address.
        (cmem_address_0): New predicates.
        (cmem_address_1): Likewise.
        (cmem_address_2): Likewise.
        (cmem_address): Likewise.
gcc/testsuite:
        * gcc.target/arc/cmem-1.c: New file.
        * gcc.target/arc/cmem-2.c: New file.
        * gcc.target/arc/cmem-3.c: New file.
        * gcc.target/arc/cmem-4.c: New file.
        * gcc.target/arc/cmem-5.c: New file.
        * gcc.target/arc/cmem-6.c: New file.
        * gcc.target/arc/cmem-7.c: New file.
        * gcc.target/arc/cmem-ld.inc: New file.
        * gcc.target/arc/cmem-st.inc: New file.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
From-SVN: r235590

8 years agors6000: Rename insn_chain_scanned_p to spe_insn_chain_scanned_p
Segher Boessenkool [Thu, 28 Apr 2016 17:51:19 +0000 (19:51 +0200)]
rs6000: Rename insn_chain_scanned_p to spe_insn_chain_scanned_p

This makes it clearer this field is only for SPE.

* config/rs6000/rs6000.c (machine_function): Rename
insn_chain_scanned_p to spe_insn_chain_scanned_p.
(rs6000_stack_info): Adjust.

From-SVN: r235588

8 years agoconstraints.md (Usd): Convert to define_constraint.
Andrew Burgess [Thu, 28 Apr 2016 17:16:05 +0000 (18:16 +0100)]
constraints.md (Usd): Convert to define_constraint.

2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/constraints.md (Usd): Convert to define_constraint.
        (Us<): Likewise.
        (Us>): Likewise.

From-SVN: r235587

8 years agore PR target/70821 (x86_64: __atomic_fetch_add/sub() uses XADD rather than DECL in...
Jakub Jelinek [Thu, 28 Apr 2016 17:10:14 +0000 (19:10 +0200)]
re PR target/70821 (x86_64: __atomic_fetch_add/sub() uses XADD rather than DECL in some cases)

PR target/70821
* config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
Add new peephole2 where the first insn is *mov<mode>_or instead of
*mov<mode>_internal.

* gcc.target/i386/pr70821.c: New test.

From-SVN: r235586

8 years agotracer: Make bb_seen static
Segher Boessenkool [Thu, 28 Apr 2016 17:08:39 +0000 (19:08 +0200)]
tracer: Make bb_seen static

bb_seen is not used outside of tracer.c.

* tracer.c (bb_seen): Make static.

From-SVN: r235585

8 years agoarc-common.c (arc_handle_option): Add NPS400 support, setup defaults.
Andrew Burgess [Thu, 28 Apr 2016 16:59:18 +0000 (17:59 +0100)]
arc-common.c (arc_handle_option): Add NPS400 support, setup defaults.

2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
        support, setup defaults.
        * config/arc/arc-opts.h (enum processor_type): Add NPS400.
        * config/arc/arc.c (arc_init): Add NPS400 support.
        * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
        (TARGET_ARC700): NPS400 is also an ARC700.
        * config/arc/arc.opt: Add NPS400 options to -mcpu=.

From-SVN: r235584

8 years agonds32: Fix casesi (PR70668)
Segher Boessenkool [Thu, 28 Apr 2016 16:50:41 +0000 (18:50 +0200)]
nds32: Fix casesi (PR70668)

Expanders do not have more elements in the operands array than declared
in the pattern.  So, we cannot use operands[5] here.  Instead just
declare and use another rtx.

PR target/70668
* config/nds32/nds32.md (casesi): Don't access the operands array
out of bounds.

From-SVN: r235583

8 years agoi386.md (zeroing peephole2): Use general_reg_operand.
Uros Bizjak [Thu, 28 Apr 2016 16:35:03 +0000 (18:35 +0200)]
i386.md (zeroing peephole2): Use general_reg_operand.

* config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
(or $-1,reg peephole2): Ditto.
(strict_low_part zeroing peephole2): Use SWI12 mode iterator.

From-SVN: r235581

8 years agodoc/extend.texi: Discourage use of the optimize attribute
Markus Trippelsdorf [Thu, 28 Apr 2016 16:25:00 +0000 (16:25 +0000)]
doc/extend.texi: Discourage use of the optimize attribute

* doc/extend.texi (Common Function Attributes) [optimize]:
Discourage use of the optimize attribute.

From-SVN: r235580

8 years agoForgotten gcc/java/ChangeLog entry.
Rainer Orth [Thu, 28 Apr 2016 16:23:36 +0000 (16:23 +0000)]
Forgotten gcc/java/ChangeLog entry.

From-SVN: r235579

8 years agoThis patch adds support for the signed and unsigned int versions of the...
Bill Seurer [Thu, 28 Apr 2016 16:01:52 +0000 (16:01 +0000)]
This patch adds support for the signed and unsigned int versions of the...

This patch adds support for the signed and unsigned int versions of the
vec_adde altivec builtins from the Power Architecture 64-Bit ELF V2 ABI
OpenPOWER ABI for Linux Supplement (16 July 2015 Version 1.1). There are
many of the builtins that are missing and this is the first of a series
of patches to add them.

There aren't instructions for the int versions of vec_adde so the
output code is built from other built-ins that do have instructions
which in this case is just two vec_adds with a vec_and to ensure the
carry vector is comprised of only the values 0 or 1.

The new test cases are executable tests which verify that the generated
code produces expected values. C macros were used so that the same
test case could be used for both the signed and unsigned versions. An
extra executable test case is also included to ensure that the modified
support for the __int128 versions of vec_adde is not broken. The same
test case could not be used for both int and __int128 because of some
differences in loading and storing the vectors.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
regressions. Is this ok for trunk?

[gcc]

2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
special case builtin.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
ALTIVEC_BUILTIN_VEC_ADDE.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
support for ALTIVEC_BUILTIN_VEC_ADDE.
* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
for __builtin_vec_adde.

[gcc/testsuite]

2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-adde.c: New test.
* gcc.target/powerpc/vec-adde-int128.c: New test.

From-SVN: r235577

8 years agoi386.md (sse4_1_round<mode>2): Add avx512f alternative.
Jakub Jelinek [Thu, 28 Apr 2016 15:57:16 +0000 (17:57 +0200)]
i386.md (sse4_1_round<mode>2): Add avx512f alternative.

* config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
* config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.

* gcc.target/i386/avx-vround-1.c: New test.
* gcc.target/i386/avx-vround-2.c: New test.
* gcc.target/i386/avx512vl-vround-1.c: New test.
* gcc.target/i386/avx512vl-vround-2.c: New test.

From-SVN: r235576

8 years agoDon't include minor version in GCJ ABI version (PR java/70839)
Rainer Orth [Thu, 28 Apr 2016 15:25:14 +0000 (15:25 +0000)]
Don't include minor version in GCJ ABI version (PR java/70839)

PR java/70839
* decl.c (parse_version): Remove minor handling.

From-SVN: r235575

8 years agoCilk Plus testsuite needs massive cleanup (PR testsuite/70595)
Rainer Orth [Thu, 28 Apr 2016 15:16:57 +0000 (15:16 +0000)]
Cilk Plus testsuite needs massive cleanup (PR testsuite/70595)

gcc:
PR testsuite/70595
* doc/sourcebuild.texi (Effective-Target Keywords, Other
attributes): Document cilkplus_runtime.

gcc/testsuite:
PR testsuite/70595
* lib/target-supports.exp (check_libcilkrts_available): Rename to ...
(check_effective_target_cilkplus_runtime): ... this.
* g++.dg/cilk-plus/cilk-plus.exp: Adapt to it.
* gcc.dg/cilk-plus/cilk-plus.exp: Likewise.

* c-c++-common/cilk-plus/CK/cilk-for-2.c: Remove dg-do target selector.
Require cilkplus_runtime.
Don't add -lcilkrts.
* c-c++-common/cilk-plus/CK/cilk-fors.c: Likewise.
* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Likewise.
* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Likewise.
* c-c++-common/cilk-plus/CK/fib.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise.
* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Likewise.
* c-c++-common/cilk-plus/CK/pr60586.c: Likewise.
* c-c++-common/cilk-plus/CK/pr69826-1.c: Likewise.
* c-c++-common/cilk-plus/CK/pr69826-2.c: Likewise.
* c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise.
* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
* g++.dg/cilk-plus/CK/catch_exc.cc: Likewise.
* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/const_spawn.cc: Likewise.
* g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise.
* g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/for1.cc: Likewise.
* g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise.
* g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/pr60586.cc: Likewise.
* g++.dg/cilk-plus/CK/pr66326.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_iter.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_rev_iter.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_test.cc: Likewise.

* c-c++-common/cilk-plus/CK/pr63307.c: Remove dg-do target selector.
* c-c++-common/cilk-plus/SE/ef_error3.c: Likewise.

* c-c++-common/cilk-plus/SE/ef_error2.c: Explain target selector.

* c-c++-common/cilk-plus/CK/test__cilk.c: Run if
cilkplus_runtime.

From-SVN: r235574

8 years agoUpdate .po files.
Joseph Myers [Thu, 28 Apr 2016 14:36:54 +0000 (15:36 +0100)]
Update .po files.

gcc/po:
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

libcpp/po:
* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r235571

8 years agoVerify that context of local DECLs is the current function
Martin Jambor [Thu, 28 Apr 2016 14:35:04 +0000 (16:35 +0200)]
Verify that context of local DECLs is the current function

2016-04-28  Martin Jambor  <mjambor@suse.cz>

* tree-cfg.c (verify_expr): Verify that local declarations belong to
this function.  Call verify_expr on MEM_REFs and bases of other
handled_components.

From-SVN: r235570

8 years ago[internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS
Kyrylo Tkachov [Thu, 28 Apr 2016 13:38:18 +0000 (13:38 +0000)]
[internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS

* internal-fn.c (expand_arith_overflow): Convert preprocessor check
for WORD_REGISTER_OPERATIONS to runtime check.

From-SVN: r235569

8 years ago[ARC] Pass mfpuda to assembler.
Claudiu Zissulescu [Thu, 28 Apr 2016 13:08:01 +0000 (15:08 +0200)]
[ARC] Pass mfpuda to assembler.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.

From-SVN: r235568

8 years ago[ARC] Fix FPX/FPUDA code gen when compiling for big-endian.
Claudiu Zissulescu [Thu, 28 Apr 2016 12:52:04 +0000 (14:52 +0200)]
[ARC] Fix FPX/FPUDA code gen when compiling for big-endian.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_process_double_reg_moves): Fix for
big-endian compilation.
(arc_rtx_costs): Fix high/low naming.
* config/arc/arc.md (addf3): Likewise.
(subdf3): Likewise.
(muldf3): Likewise.

From-SVN: r235567

8 years agore PR tree-optimization/70840 (revisit reassoc handling of pow / powi, amend match...
Richard Biener [Thu, 28 Apr 2016 12:34:28 +0000 (12:34 +0000)]
re PR tree-optimization/70840 (revisit reassoc handling of pow / powi, amend match.pd for powi)

2016-04-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70840
* match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
Mark x * pow(x,c) -> pow(x,c+1) commutative.
Add powi(x,y) * powi(z,y) -> powi(x*z,y).

From-SVN: r235566

8 years agolibstdc++/70766 use std::addressof instead of operator&
Jonathan Wakely [Thu, 28 Apr 2016 12:33:07 +0000 (13:33 +0100)]
libstdc++/70766 use std::addressof instead of operator&

PR libstdc++/70766
* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
__addressof.
* include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
Likewise.
* include/std/atomic (atomic<_Tp>): Likewise.
* include/std/shared_mutex (shared_lock): Likewise.
* testsuite/24_iterators/istream_iterator/70766.cc: New test.
* testsuite/24_iterators/ostream_iterator/70766.cc : New test.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
* testsuite/29_atomics/atomic/70766.cc: New test.
* testsuite/30_threads/shared_lock/70766.cc: New test.

From-SVN: r235565

8 years agohashtable_policy.h (__detail::_Insert_base, [...]): Improve comments.
Jonathan Wakely [Thu, 28 Apr 2016 12:32:50 +0000 (13:32 +0100)]
hashtable_policy.h (__detail::_Insert_base, [...]): Improve comments.

* include/bits/hashtable_policy.h (__detail::_Insert_base,
__detail::_Insert): Improve comments.

From-SVN: r235564

8 years ago[AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why
Kyrylo Tkachov [Thu, 28 Apr 2016 12:24:47 +0000 (12:24 +0000)]
[AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why

* config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
and explain why in a comment.

From-SVN: r235563

8 years ago[ARC] Don't use drsub* instructions when selecting fpuda.
Claudiu Zissulescu [Thu, 28 Apr 2016 12:15:06 +0000 (14:15 +0200)]
[ARC] Don't use drsub* instructions when selecting fpuda.

The double precision floating point assist instructions are not
implementing the reverse double subtract instruction (drsub) found in
the FPX extension.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (cpu_facility): Add fpx variant.
(subdf3): Prohibit use reverse sub when assist operations option
is enabled.
* config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
instructions only when FPX is enabled.
        * testsuite/gcc.target/arc/trsub.c: New test.

From-SVN: r235562

8 years agoi386.md (*fop_<mode>_1_mixed): Do not check for mult_operator when calculating "type...
Uros Bizjak [Thu, 28 Apr 2016 12:07:04 +0000 (14:07 +0200)]
i386.md (*fop_<mode>_1_mixed): Do not check for mult_operator when calculating "type" attribute.

* config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
mult_operator when calculating "type" attribute.
(*fop_<mode>_1_i387): Ditto.
(*fop_xf_1_i387): Ditto.
(x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
Use std::swap to swap operands.  Use RTL expressions to generate
converted pattern.

From-SVN: r235561

8 years agoReplace AWK script with the python script.
Martin Liska [Thu, 28 Apr 2016 12:02:37 +0000 (14:02 +0200)]
Replace AWK script with the python script.

* analyze_brprob: Remove.
* analyze_brprob.py: New file.

From-SVN: r235560

8 years ago[ARC] Add TLS support.
Claudiu Zissulescu [Thu, 28 Apr 2016 11:53:46 +0000 (13:53 +0200)]
[ARC] Add TLS support.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Joern Rennecke  <joern.rennecke@embecosm.com>

* config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
declaration.
(emit_pic_move): Remove.
(arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
* config/arc/arc.c (emit_pic_move): Removed.
(TARGET_HAVE_TLS): Define.
(arc_conditional_register_usage): Test for arc_tp_regno.
(arc_print_operand, arc_print_operand_address): Handle TLS
unspecs.
(arc_needs_pcl_p): New function.
(arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
(arc_legitimate_pic_addr_p): Handle TLS unspecs.
(arc_raw_symbolic_reference_mentioned_p): Likewise.
(arc_get_tp, arc_emit_call_tls_get_addr): New function.
(arc_legitimize_tls_address): Likewise.
(DTPOFF_ZERO_SYM): Define.
(arc_legitimize_pic_address): Make it static, handle TLS cases.
(arc_output_pic_addr_const): Print TLS unspecs.
(prepare_pic_move): New function, replaces emit_pic_move.
(arc_legitimate_constant_p): Handle TLS unspecs.
(arc_legitimate_address_p): Likewise.
(arc_rewrite_small_data_p): Use assert for TLS constants.
(prepare_move_operands): Use prepare_pic_move.
(arc_legitimize_address): Legitimize tls addresses.
(arc_epilogue_uses): Check for arc_tp_regno.
(arc_eh_uses, insn_is_tls_gd_dispatch): New function.
* config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
Define.
[DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
Likewise.
[DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
%(arc_tls_extra_start_spec).
(TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
(REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
(EH_USES): Define.
(INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
* config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
(UNSPEC_TLS_OFF): Add.
(R10_REG): Define.
(tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
(get_thread_pointersi): New patterns.
* config/arc/arc.opt (mtp-regno): New option.
* config/arc/predicates.md (move_src_operand): Handle TLS symbols.
(move_dest_operand): Likewise.
* configure: Regenerate.
* configure.ac: Add arc*-*-* case to test for tls.
* doc/invoke.texi (ARC options): Document mtp-regno.

Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
From-SVN: r235559

8 years ago[ARC/LIBGCC] Add TLS support.
Claudiu Zissulescu [Thu, 28 Apr 2016 11:53:34 +0000 (13:53 +0200)]
[ARC/LIBGCC] Add TLS support.

libgcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Joern Rennecke  <joern.rennecke@embecosm.com>

* config/arc/crttls.S: New file.
* config/arc/t-arc: New rule.
* config.host (arc*-*-elf*, arc*-*-linux*): Add crttls.o.

Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
From-SVN: r235558

8 years agore PR ada/70786 (Missing "not" breaks Ada.Text_IO.Get_Immediate(File, Item, Available))
Eric Botcazou [Thu, 28 Apr 2016 10:58:38 +0000 (10:58 +0000)]
re PR ada/70786 (Missing "not" breaks Ada.Text_IO.Get_Immediate(File, Item, Available))

PR ada/70786
* a-textio.adb (Get_Immediate): Add missing 'not' in expression.

From-SVN: r235554

8 years ago[ARC] Add SIMD extensions for ARC HS
Claudiu Zissulescu [Thu, 28 Apr 2016 09:53:13 +0000 (11:53 +0200)]
[ARC] Add SIMD extensions for ARC HS

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_vector_mode_supported_p): Add support for
the new ARC HS SIMD instructions.
(arc_preferred_simd_mode): New function.
(arc_autovectorize_vector_sizes): Likewise.
(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
(arc_init_reg_tables): Accept new ARC HS SIMD modes.
(arc_init_builtins): Add new SIMD builtin types.
(arc_split_move): Handle 64 bit vector moves.
* config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
(TARGET_PLUS_QMACW): Define.
* config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
(DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
(VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
(VSUBADD4H): New builtins.
* config/arc/simdext.md: Add new ARC HS SIMD instructions.
* testsuite/gcc.target/arc/builtin_simdarc.c: New file.

From-SVN: r235551

8 years agoc-common.c (get_source_date_epoch): New function...
Eduard Sanou [Thu, 28 Apr 2016 09:12:05 +0000 (09:12 +0000)]
c-common.c (get_source_date_epoch): New function...

gcc/c-family/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* c-common.c (get_source_date_epoch): New function, gets the environment
variable SOURCE_DATE_EPOCH and parses it as long long with error
handling.
* c-common.h (get_source_date_epoch): Prototype.
* c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.

gcc/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.

libcpp/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* include/cpplib.h (cpp_init_source_date_epoch): Prototype.
* init.c (cpp_init_source_date_epoch): New function.
* internal.h: Added source_date_epoch variable to struct
cpp_reader to store a reproducible date.
* macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from
pfile->source_date_epoch instead of localtime if source_date_epoch is
set, to be used for __DATE__ and __TIME__ macros to help reproducible
builds.

Co-Authored-By: Matthias Klose <doko@debian.org>
From-SVN: r235550

8 years agodecl.c (parse_version): Don't encode the minor version in the abi version.
Matthias Klose [Thu, 28 Apr 2016 08:22:10 +0000 (08:22 +0000)]
decl.c (parse_version): Don't encode the minor version in the abi version.

2016-04-28  Matthias Klose  <doko@ubuntu.com>

        * decl.c (parse_version): Don't encode the minor version in the abi
        version.

From-SVN: r235546

8 years agore PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math)
Richard Biener [Thu, 28 Apr 2016 07:55:33 +0000 (07:55 +0000)]
re PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math)

2016-04-28  Richard Biener  <rguenther@suse.de>

PR middle-end/70777
* fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
canonicalization.

From-SVN: r235545

8 years agosh-common.c: Remove SH5 support.
Oleg Endo [Thu, 28 Apr 2016 01:18:13 +0000 (01:18 +0000)]
sh-common.c: Remove SH5 support.

gcc/
* common/config/sh/sh-common.c: Remove SH5 support.
* config/sh/constraints.md: Likewise.
* config/sh/config/sh/elf.h: Likewise.
* config/sh/linux.h: Likewise.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/predicates.md: Likewise.
* config/sh/sh-c.c: Likewise.
* config/sh/sh-protos.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sh/sh.md: Likewise.
* config/sh/sh.opt: Likewise.
* config/sh/sync.md: Likewise.
* config/sh/sh64.h: Delete.
* config/sh/shmedia.h: Likewise.
* config/sh/shmedia.md: Likewise.
* config/sh/sshmedia.h: Likewise.
* config/sh/t-netbsd-sh5-64: Likewise.
* config/sh/t-sh64: Likewise.
* config/sh/ushmedia.h: Likewise.

From-SVN: r235544

8 years agoDaily bump.
GCC Administrator [Thu, 28 Apr 2016 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235543

8 years agoi386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of regist...
Uros Bizjak [Wed, 27 Apr 2016 23:51:30 +0000 (01:51 +0200)]
i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of register_operand predicate.

* config/i386/i386.md (sign_extend to memory peephole2s): Use
general_reg_operand instead of register_operand predicate.

From-SVN: r235539

8 years agoparams.def (MIN_PARTITION_SIZE): Set default value to 10000.
Prathamesh Kulkarni [Wed, 27 Apr 2016 22:39:43 +0000 (22:39 +0000)]
params.def (MIN_PARTITION_SIZE): Set default value to 10000.

2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* params.def (MIN_PARTITION_SIZE): Set default value to 10000.

From-SVN: r235538

8 years agomatch.pd: unsigned A - B > A --> A < B
Marc Glisse [Wed, 27 Apr 2016 21:30:27 +0000 (23:30 +0200)]
match.pd: unsigned A - B > A --> A < B

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

gcc/
* match.pd (A - B > A, A + B < A): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/overflow-2.c: New testcase.
* gcc.dg/tree-ssa/minus-ovf.c: Likewise.

From-SVN: r235537

8 years agoReduce nesting of parentheses in conditionals generated by genattrtab
Patrick Palka [Wed, 27 Apr 2016 21:18:05 +0000 (21:18 +0000)]
Reduce nesting of parentheses in conditionals generated by genattrtab

gcc/ChangeLog:

* genattrtab.c (write_test_expr): New parameter EMIT_PARENS
which defaults to true.  Emit an outer pair of parentheses only if
EMIT_PARENS.  When continuing a chain of && or || (or & or |),
don't emit parentheses for the right-hand operand.

From-SVN: r235536

8 years ago* tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
Jeff Law [Wed, 27 Apr 2016 20:52:15 +0000 (14:52 -0600)]
* tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.

From-SVN: r235535

8 years agore PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with implicit...
Ryan Burn [Wed, 27 Apr 2016 20:41:52 +0000 (20:41 +0000)]
re PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with implicit conversion operators defined)

PR c++/69024
PR c++/68997
* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
(cilk_recognize_spawn): Renamed from recognize_spawn and change to
external linkage.
(cilk_detect_and_unwrap): Corresponding changes.
(extract_free_variables): Don't extract free variables from
AGGR_INIT_EXPR slot.
* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
(cilk_recognize_spawn): Likewise.

PR c++/69024
PR c++/68997
* cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
instead of cilk_detect_spawn_and_unwrap.
* cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
(find_spawn): New.
(cilk_cp_detect_spawn_and_unwrap): New.
* lambda.c: Include cp-cilkplus.h.
* parser.c: Include cp-cilkplus.h.
* cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
* cp-cilkpus.h: New file.

PR c++/69024
PR c++/68997
* g++.dg/cilk-plus/CK/pr68001.cc: Fix to not depend on broken
diagnostic.
* g++.dg/cilk-plus/CK/pr69024.cc: New test.
* g++.dg/cilk-plus/CK/pr68997.cc: New test.

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r235534

8 years agoaltivec.md (altivec_lvx_<mode>): Remove.
Bill Schmidt [Wed, 27 Apr 2016 20:22:27 +0000 (20:22 +0000)]
altivec.md (altivec_lvx_<mode>): Remove.

2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
(altivec_lvx_<mode>_internal): Document.
(altivec_lvx_<mode>_2op): New define_insn.
(altivec_lvx_<mode>_1op): Likewise.
(altivec_lvx_<mode>_2op_si): Likewise.
(altivec_lvx_<mode>_1op_si): Likewise.
(altivec_stvx_<mode>): Remove.
(altivec_stvx_<mode>_internal): Document.
(altivec_stvx_<mode>_2op): New define_insn.
(altivec_stvx_<mode>_1op): Likewise.
(altivec_stvx_<mode>_2op_si): Likewise.
(altivec_stvx_<mode>_1op_si): Likewise.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Expand vec_ld and vec_st during parsing.
* config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
changes.
(altivec_expand_stvx_be): Likewise.
(altivec_expand_lv_builtin): Expand lvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_stv_builtin): Expand stvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_builtin): Change builtin code arguments for calls
to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
(insn_is_swappable_p): Avoid incorrect swap optimization in the
presence of lvx/stvx patterns.
(alignment_with_canonical_addr): New function.
(alignment_mask): Likewise.
(find_alignment_op): Likewise.
(recombine_lvx_pattern): Likewise.
(recombine_stvx_pattern): Likewise.
(recombine_lvx_stvx_patterns): Likewise.
(rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
stvx patterns from expand.
* config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
expansions.
(vector_altivec_store_<mode>): Likewise.

From-SVN: r235533