gcc.git
9 years agore PR rtl-optimization/66706 (Redundant bitmask instruction on x >> (n & 32))
Segher Boessenkool [Fri, 3 Jul 2015 14:37:26 +0000 (16:37 +0200)]
re PR rtl-optimization/66706 (Redundant bitmask instruction on x >> (n & 32))

PR rtl-optimization/66706
* gcc.target/powerpc/shift-int.c: New testcase.

From-SVN: r225382

9 years agostatus_cxx2017.xml: Update status table.
Jonathan Wakely [Fri, 3 Jul 2015 14:08:48 +0000 (15:08 +0100)]
status_cxx2017.xml: Update status table.

* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/*: Regenerate.

From-SVN: r225380

9 years agoImplement std::experimental::fundamentals_v2::propagate_const.
Ville Voutilainen [Fri, 3 Jul 2015 14:08:37 +0000 (17:08 +0300)]
Implement std::experimental::fundamentals_v2::propagate_const.

2015-07-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

Implement std::experimental::fundamentals_v2::propagate_const.
* include/Makefile.am: Add propagate_const.
* include/Makefile.in: Regenerate.
* include/experimental/propagate_const: New.
* testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
* testsuite/experimental/propagate_const/cons/default.cc: Likewise.
* testsuite/experimental/propagate_const/cons/move.cc: Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/hash/1.cc: Likewise.
* testsuite/experimental/propagate_const/observers/1.cc: Likewise.
* testsuite/experimental/propagate_const/relops/1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
* testsuite/experimental/propagate_const/swap/1.cc: Likewise.
* testsuite/experimental/propagate_const/typedefs.cc: Likewise.

From-SVN: r225379

9 years agogenmatch.c (commutative_tree_code, [...]): Copy from tree.c
Richard Biener [Fri, 3 Jul 2015 13:46:34 +0000 (13:46 +0000)]
genmatch.c (commutative_tree_code, [...]): Copy from tree.c

2015-07-03  Richard Biener  <rguenther@suse.de>

* genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
Copy from tree.c
(dt_operand::gen_gimple_expr): After valueizing operands
re-canonicalize operand order for commutative tree codes.

From-SVN: r225378

9 years agoAdd the missing file
H.J. Lu [Fri, 3 Jul 2015 13:08:35 +0000 (06:08 -0700)]
Add the missing file

From-SVN: r225377

9 years agoAdd IA MCU support to x86intrin.h
H.J. Lu [Fri, 3 Jul 2015 12:25:10 +0000 (12:25 +0000)]
Add IA MCU support to x86intrin.h

x86intrin.h has useful intrinsics for instructions for IA MCU.  This
patch adds __iamcu__ check to x86intrin.h and ia32intrin.h.

gcc/

PR target/66746.
* config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
is defined.
(__crc32w): Likewise.
(__crc32d): Likewise.
(__rdpmc): Likewise.
(__rdtscp): Likewise.
(_rdpmc): Likewise.
(_rdtscp): Likewise.
* config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
is defined.

gcc/testsuite/

PR target/66746.
* gcc.target/i386/pr66746.c: New file.

From-SVN: r225376

9 years agofold-const.c (fold_mathfn_compare): Remove.
Richard Biener [Fri, 3 Jul 2015 12:02:35 +0000 (12:02 +0000)]
fold-const.c (fold_mathfn_compare): Remove.

2015-07-03  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_mathfn_compare): Remove.
(fold_inf_compare): Likewise.
(fold_comparison): Move floating point comparison simplifications...
* match.pd: ... to patterns here.  Introduce simple_comparisons
operator list and use it for patterns formerly in fold_comparison.

From-SVN: r225375

9 years agovget_lane.c: New testcase.
Christophe Lyon [Fri, 3 Jul 2015 10:52:03 +0000 (10:52 +0000)]
vget_lane.c: New testcase.

2015-07-03  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: New testcase.

From-SVN: r225374

9 years ago2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Fri, 3 Jul 2015 09:42:52 +0000 (09:42 +0000)]
2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>

* Fix component of my last ChangeLog entries.

From-SVN: r225371

9 years ago[Patch SRA] Fix PR66119 by calling get_move_ratio in SRA
James Greenhalgh [Fri, 3 Jul 2015 09:25:54 +0000 (09:25 +0000)]
[Patch SRA] Fix PR66119 by calling get_move_ratio in SRA

gcc/

PR tree-optimization/66119
* toplev.c (process_options): Don't set up default values for
the sra_max_scalarization_size_{speed,size} parameters.
* tree-sra (analyze_all_variable_accesses): If no values
have been set for the sra_max_scalarization_size_{speed,size}
parameters, call get_move_ratio to get target defaults.

gcc/testsuite/

PR tree-optimization/66119
* g++.dg/opt/pr66119.C: New.

From-SVN: r225369

9 years agofold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
Richard Biener [Fri, 3 Jul 2015 07:55:10 +0000 (07:55 +0000)]
fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...

2015-07-03  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
* match.pd: ... here.

From-SVN: r225368

9 years agore PR target/37072 (-mfancy-math-387 should be the default in FreeBSD)
Gerald Pfeifer [Fri, 3 Jul 2015 01:35:18 +0000 (01:35 +0000)]
re PR target/37072 (-mfancy-math-387 should be the default in FreeBSD)

PR target/37072
* doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
is not actually the default on FreeBSD.

From-SVN: r225367

9 years agore PR c++/66743 (ICE: tree check: expected record_type or union_type or qual_union_ty...
Jason Merrill [Fri, 3 Jul 2015 00:45:34 +0000 (20:45 -0400)]
re PR c++/66743 (ICE: tree check: expected record_type or union_type or qual_union_type, have underlying_type in for_each_template_parm_r, at cp/pt.c:8234)

PR c++/66743
* pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
TYPE_VALUES_RAW rather than TYPE_FIELDS.

From-SVN: r225365

9 years agoDaily bump.
GCC Administrator [Fri, 3 Jul 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r225364

9 years agopt.c (type_dependent_expression_p): Handle expressions that refer to variable templates.
Andrew Sutton [Thu, 2 Jul 2015 23:16:51 +0000 (23:16 +0000)]
pt.c (type_dependent_expression_p): Handle expressions that refer to variable templates.

* pt.c (type_dependent_expression_p): Handle expressions
that refer to variable templates.

From-SVN: r225361

9 years ago* trans-common.c: Include <map> after system.h.
David Edelsohn [Thu, 2 Jul 2015 22:01:36 +0000 (22:01 +0000)]
* trans-common.c: Include <map> after system.h.

From-SVN: r225358

9 years agoacinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdc...
Jonathan Wakely [Thu, 2 Jul 2015 21:52:38 +0000 (22:52 +0100)]
acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi

* acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
--with-default-libstdcxx-abi
* configure: Regenerate.
* doc/xml/manual/configure.xml: Document valid arguments.

From-SVN: r225356

9 years agore PR fortran/52846 ([F2008] Support submodules)
Paul Thomas [Thu, 2 Jul 2015 20:39:56 +0000 (20:39 +0000)]
re PR fortran/52846 ([F2008] Support submodules)

2015-07-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52846
* decl.c (get_proc_name): Make a partially populated interface
symbol to carry the characteristics of a module procedure and
its result.
(variable_decl): Declarations of dummies or results in the
abreviated form of module procedure is an error.
(gfc_match_import): IMPORT is not permitted in the interface
declaration of module procedures.
(match_attr_spec): Submodule variables have implicit save
attribute for F2008 onwards.
(gfc_match_prefix): Add 'module' as the a prefix and set the
module_procedure attribute.
(gfc_match_formal_arglist): For a module procedure keep the
interface formal_arglist from the interface, match new the
formal arguments and then compare the number and names of each.
(gfc_match_procedure): Add case COMP_SUBMODULE.
(gfc_match_function_decl, gfc_match_subroutine_decl): Set the
module_procedure attribute.
(gfc_match_entry, gfc_match_end):  Add case COMP_SUBMODULE. If
attr abr_modproc_decl is set, switch the message accordingly
for subroutines and functions.
(gfc_match_submod_proc): New function to match the abbreviated
style of submodule declaration.
* gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
attribute bits 'used_in_submodule' and 'module_procedure'. Add
the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
'gfc_check_result_characteristics'.
* interface.c : Add the prefix 'gfc_' to the names of functions
'check_dummy(result)_characteristics' and all their references.
* match.h : Add prototype for 'gfc_match_submod_proc' and
'gfc_match_submodule'.
(check_sym_interfaces): A module procedure is not an error in
a module procedure statment in a generic interface.
* module.c (gfc_match_submodule): New function. Add handling
for the 'module_procedure' attribute bit.
(gfc_use_module): Make sure that a submodule cannot use itself.
* parse.c (decode_statement): Set attr has_'import_set' for
the interface declaration of module procedures. Handle a match
occurring in 'gfc_match_submod_proc' and a match for
'submodule'.
(gfc_enclosing_unit): Include the state COMP_SUBMODULE.
(gfc_ascii_statement): Add END SUBMODULE.
(accept_statement): Add ST_SUBMODULE.
(parse_spec): Disallow statement functions in a submodule
specification part.
(parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
twice each.
(get_modproc_result): Copy the result symbol of the interface.
(parse_progunit): Call it.
(set_syms_host_assoc): Make symbols from the ancestor module
and submodules use associated, as required by the standard and
set all private components public. Module procedures 'external'
attribute bit is reset and the 'used_in_submodule' bit is set.
(parse_module): If this is a submodule, use the ancestor module
and submodules. Traverse the namespace, calling
'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
* parse.h : Add COMP_SUBMODULE.
* primary.c (match_variable): Add COMP_SUBMODULE.
* resolve.c (compare_fsyms): New function to compare the dummy
characteristics of a module procedure with its interface.
(resolve_fl_procedure): Compare the procedure, result and dummy
characteristics of a module_procedure with its interface, using
'compare_fsyms' for the dummy arguments.
* symbol.c (gfc_add_procedure): Suppress the check for existing
procedures in the case of a module procedure.
(gfc_add_explicit_interface): Skip checks that must fail for
module procedures.
(gfc_add_type): Allow a new type to be added to module
procedures, their results or their dummy arguments.
(gfc_copy_dummy_sym): New function to generate new dummy args
and copy the characteristics from the interface.
* trans-decl.c (gfc_sym_mangled_function_id): Module procedures
must always have their names mangled as if they are symbols
coming from a declaration in a module.
(gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
(gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
set are set DECL_EXTERNAL as if they were use associated.

2015-07-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52846
* gfortran.dg/submodule_1.f90: New test
* gfortran.dg/submodule_2.f90: New test
* gfortran.dg/submodule_3.f90: New test
* gfortran.dg/submodule_4.f90: New test
* gfortran.dg/submodule_5.f90: New test
* gfortran.dg/submodule_6.f90: New test
* gfortran.dg/submodule_7.f90: New test

From-SVN: r225354

9 years agore PR preprocessor/53690 ([C++11] \u0000 and \U00000000 are wrongly encoded as U...
Paolo Carlini [Thu, 2 Jul 2015 18:54:41 +0000 (18:54 +0000)]
re PR preprocessor/53690 ([C++11] \u0000 and \U00000000 are wrongly encoded as U+0001.)

/libcpp
2015-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53690
* charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change
return type to bool.  Fix encoding of \u0000 and \U00000000 in C++.
(convert_ucn): Adjust call.
* lex.c (forms_identifier_p): Likewise.
* internal.h (_cpp_valid_ucn): Adjust declaration.

/gcc/testsuite
2015-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53690
* g++.dg/cpp/pr53690.C: New.

From-SVN: r225353

9 years agors6000-builtin.def (CMPGE_16QI): New built-in definition.
Bill Schmidt [Thu, 2 Jul 2015 18:30:35 +0000 (18:30 +0000)]
rs6000-builtin.def (CMPGE_16QI): New built-in definition.

[gcc]

2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
definition.
(CMPGE_8HI): Likewise.
(CMPGE_4SI): Likewise.
(CMPGE_2DI): Likewise.
(CMPGE_U16QI): Likewise.
(CMPGE_U8HI): Likewise.
(CMPGE_U4SI): Likewise.
(CMPGE_U2DI): Likewise.
(CMPLE_16QI): Likewise.
(CMPLE_8HI): Likewise.
(CMPLE_4SI): Likewise.
(CMPLE_2DI): Likewise.
(CMPLE_U16QI): Likewise.
(CMPLE_U8HI): Likewise.
(CMPLE_U4SI): Likewise.
(CMPLE_U2DI): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
ALTIVEC_BUILTIN_VEC_CMPLE.
* config/rs6000/vector.md (vector_ge<mode>): Restrict to
floating-point vector modes.
(vector_nlt<mode>): New define_expand.
(vector_nltu<mode>): Likewise.
(vector_ngt<mode>): Likewise.
(vector_ngtu<mode>): Likewise.

[gcc/testsuite]

2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

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

From-SVN: r225351

9 years agore PR fortran/56520 (Syntax error causes misleading message: "Invalid character in...
Steven G. Kargl [Thu, 2 Jul 2015 17:29:04 +0000 (17:29 +0000)]
re PR fortran/56520 (Syntax error causes misleading message: "Invalid character in name")

2015-07-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/56520
* match.c (gfc_match_name): Special case unary minus and plus.

2015-07-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/56520
* gfortran.dg/pr56520.f90: New test.

From-SVN: r225349

9 years agore PR fortran/66545 (ICE on using undefined parameter/variable values)
Steven G. Kargl [Thu, 2 Jul 2015 17:02:10 +0000 (17:02 +0000)]
re PR fortran/66545 (ICE on using undefined parameter/variable values)

2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>

PR fortran/66545
* primary.c (match_sym_complex_part): Do not dereference NULL pointer.

2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>

PR fortran/66545
* gfortran.dg/pr66545_1.f90: New test.
* gfortran.dg/pr66545_2.f90: New test.

From-SVN: r225348

9 years agore PR rtl-optimization/66706 (Redundant bitmask instruction on x >> (n & 32))
Segher Boessenkool [Thu, 2 Jul 2015 16:27:11 +0000 (18:27 +0200)]
re PR rtl-optimization/66706 (Redundant bitmask instruction on x >> (n & 32))

PR rtl-optimization/66706
* combine.c (make_compound_operation): If an AND of SUBREG of
LSHIFTRT does not simplify, see if just the AND of SUBREG does.

From-SVN: r225344

9 years agoRegenerate .pot files.
Joseph Myers [Thu, 2 Jul 2015 12:04:27 +0000 (13:04 +0100)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r225313

9 years agotree-pass.h (make_pass_ch_vect): New.
Alan Lawrence [Thu, 2 Jul 2015 11:47:31 +0000 (11:47 +0000)]
tree-pass.h (make_pass_ch_vect): New.

gcc/:

* tree-pass.h (make_pass_ch_vect): New.
* passes.def: Add pass_ch_vect just before pass_if_conversion.

* tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
make_pass_ch_vect): New.
(pass_ch): Extend ch_base.

(pass_ch::execute): Move all but loop_optimizer_init/finalize to...
(ch_base::copy_headers): ...here.

gcc/testsuite/:

* gcc.dg/vect/vect-strided-a-u16-i4.c (main1): Narrow scope of x,y,z,w.
* gcc.dg/vect/vect-ifcvt-11.c: New testcase.

From-SVN: r225311

9 years agobuiltins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
Richard Biener [Thu, 2 Jul 2015 11:33:16 +0000 (11:33 +0000)]
builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.

2015-07-02  Richard Biener  <rguenther@suse.de>

* builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
* fold-const.c (get_pointer_modulus_and_residue): Remove.
(fold_binary_loc): Implement (T)ptr & CST in terms of
get_pointer_alignment_1.
* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
Make sure to build the alignment test on a SSA name without
final alignment info valid only after the prologue.

From-SVN: r225310

9 years agocris.md ("epilogue"): Remove condition.
Hans-Peter Nilsson [Thu, 2 Jul 2015 11:25:04 +0000 (11:25 +0000)]
cris.md ("epilogue"): Remove condition.

* config/cris/cris.md ("epilogue"): Remove condition.
("prologue"): Ditto.

From-SVN: r225308

9 years agore PR tree-optimization/66719 (gcc.dg/vect/bb-slp-32.c FAILs)
Richard Biener [Thu, 2 Jul 2015 08:38:42 +0000 (08:38 +0000)]
re PR tree-optimization/66719 (gcc.dg/vect/bb-slp-32.c FAILs)

2015-07-02  Richard Biener  <rguenther@suse.de>

PR testsuite/66719
* gcc.dg/vect/bb-slp-32.c: Re-add XFAIL for targets not supporting
unaligned loads.

From-SVN: r225303

9 years agoconfigure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
Uros Bizjak [Thu, 2 Jul 2015 08:30:07 +0000 (10:30 +0200)]
configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.

* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
* configure: Regenerate.
* config.h.in: Ditto.

From-SVN: r225302

9 years agopr66702-1.C: Require vect_simd_clones effective target.
Uros Bizjak [Thu, 2 Jul 2015 08:17:20 +0000 (10:17 +0200)]
pr66702-1.C: Require vect_simd_clones effective target.

* testsuite/libgomp.c++/pr66702-1.C: Require
vect_simd_clones effective target.
* testsuite/libgomp.c++/pr66702-2.C: Ditto.

From-SVN: r225301

9 years agotree-ssa-dom.c (build_and_record_new_cond): Add optional parameter to record a condit...
Richard Biener [Thu, 2 Jul 2015 07:37:35 +0000 (07:37 +0000)]
tree-ssa-dom.c (build_and_record_new_cond): Add optional parameter to record a condition that is false.

2015-07-02  Richard Biener  <rguenther@suse.de>

* tree-ssa-dom.c (build_and_record_new_cond): Add optional
parameter to record a condition that is false.
(record_conditions): When recording an extra NE_EXPR that is
true also record a EQ_EXPR that is false.

* gcc.dg/tree-ssa/ssa-dom-cse-4.c: New testcase.

From-SVN: r225299

9 years agoguard.cc (__test_and_acquire): Use __p after __atomic_load to avoid unused variable...
Uros Bizjak [Thu, 2 Jul 2015 05:58:12 +0000 (07:58 +0200)]
guard.cc (__test_and_acquire): Use __p after __atomic_load to avoid unused variable warning.

* libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
to avoid unused variable warning.
(__set_and_release): Use __p after __atomic_store to avoid unused
variable warning.

From-SVN: r225298

9 years agoAdd prototype for exit
H.J. Lu [Thu, 2 Jul 2015 05:03:34 +0000 (05:03 +0000)]
Add prototype for exit

* gcc.target/i386/mpx/pr66568.c (exit): New prototype.

From-SVN: r225296

9 years agotree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
Bin Cheng [Thu, 2 Jul 2015 04:32:05 +0000 (04:32 +0000)]
tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.

* tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
(tree_ssa_iv_optimize_init): Initialize iv_obstack.
(alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
(set_iv, find_interesting_uses_address, add_candidate_1): New
argument to alloc_iv.
(find_interesting_uses_op, find_interesting_uses_cond): Don't
duplicate struct iv.
(free_loop_data): Don't free struct iv explicitly.
(tree_ssa_iv_optimize_finalize): Free iv_obstack.

From-SVN: r225293

9 years agoDaily bump.
GCC Administrator [Thu, 2 Jul 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r225286

9 years agotpf.h (LIBSTDCXX): Change to CPP1.
DJ Delorie [Wed, 1 Jul 2015 20:18:59 +0000 (16:18 -0400)]
tpf.h (LIBSTDCXX): Change to CPP1.

* config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
(LIB_SPEC): Add.
(SUPPORTS_DISCRIMINATOR): Define.

From-SVN: r225278

9 years agoc-common.h (D_CXX11): Rename from D_CXX0X.
Jason Merrill [Wed, 1 Jul 2015 19:25:50 +0000 (15:25 -0400)]
c-common.h (D_CXX11): Rename from D_CXX0X.

gcc/c-family/
* c-common.h (D_CXX11): Rename from D_CXX0X.
(RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
* c-common.c: Adjust.
gcc/cp/
* lex.c (init_reswords): s/CXX0X/CXX11/.
* parser.c (cp_lexer_get_preprocessor_token): Likewise.

From-SVN: r225273

9 years agoc-opts.c (c_common_post_options): Default to C++14.
Jason Merrill [Wed, 1 Jul 2015 18:27:12 +0000 (14:27 -0400)]
c-opts.c (c_common_post_options): Default to C++14.

gcc/c-family/
* c-opts.c (c_common_post_options): Default to C++14.
gcc/testsuite/
* lib/target-supports.exp (cxx_default): Set to C++14.

From-SVN: r225272

9 years agoc-opts.c (c_common_post_options): Highest ABI level is now 10.
Jason Merrill [Wed, 1 Jul 2015 17:59:25 +0000 (13:59 -0400)]
c-opts.c (c_common_post_options): Highest ABI level is now 10.

gcc/c-family/
* c-opts.c (c_common_post_options): Highest ABI level is now 10.
gcc/cp/
* mangle.c (write_CV_qualifiers_for_type, write_nested_name):
Attribute mangling is now -fabi-version=10.

From-SVN: r225271

9 years agore PR c++/65945 (C++ alignment of nullptr_t is 1 and might cause unaligned stores...
Jason Merrill [Wed, 1 Jul 2015 17:59:19 +0000 (13:59 -0400)]
re PR c++/65945 (C++ alignment of nullptr_t is 1 and might cause unaligned stores to the frame)

PR c++/65945
* decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
* class.c (layout_nonempty_base_or_field): Warn if that affects
the offset of a field.

From-SVN: r225270

9 years agolinux-atomic.c (__kernel_cmpxchg): Reorder arguments to better match light-weight...
John David Anglin [Wed, 1 Jul 2015 17:42:20 +0000 (17:42 +0000)]
linux-atomic.c (__kernel_cmpxchg): Reorder arguments to better match light-weight syscall argument order.

* config/pa/linux-atomic.c (__kernel_cmpxchg): Reorder arguments to
better match light-weight syscall argument order.
(__kernel_cmpxchg2): Likewise.
Adjust callers.

From-SVN: r225267

9 years agoUse scan-rtl-dump in i386/vararg-loc.c
Tom de Vries [Wed, 1 Jul 2015 17:33:01 +0000 (17:33 +0000)]
Use scan-rtl-dump in i386/vararg-loc.c

2015-07-01  Tom de Vries  <tom@codesourcery.com>

PR testsuite/66723
* gcc.target/i386/vararg-loc.c: Use scan-rtl-dump instead of
scan-assembler.

From-SVN: r225266

9 years agore PR middle-end/66685 (conftest.c:16:1: internal compiler error: in as_a, at is...
Richard Sandiford [Wed, 1 Jul 2015 16:48:30 +0000 (16:48 +0000)]
re PR middle-end/66685 (conftest.c:16:1: internal compiler error: in as_a, at is-a.h:192)

gcc/
PR bootstrap/66685
* rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
there are no CALLs in the same pattern.

From-SVN: r225263

9 years agoarith.c (gfc_arith_divide): With -Winteger-division...
Thomas Koenig [Wed, 1 Jul 2015 16:43:53 +0000 (16:43 +0000)]
arith.c (gfc_arith_divide): With -Winteger-division...

2015-07-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

* arith.c (gfc_arith_divide):  With -Winteger-division,
warn about contant integer division if there is a non-zero
remainder.
* invoke.texi:  Document -Winteger-division.
* lang.opt:  Add -Winteger-division.

2015-07-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.dg/warn_conversion_8.f90:  New test.

From-SVN: r225262

9 years agore PR rtl-optimization/61047 (wrong code at -O1 on x86_64-linux)
Bernd Edlinger [Wed, 1 Jul 2015 16:10:30 +0000 (16:10 +0000)]
re PR rtl-optimization/61047 (wrong code at -O1 on x86_64-linux)

gcc/ChangeLog:
2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/61047
        * rtlanal.c (get_initial_register_offset): New function.
        (rtx_addr_can_trap_p_1): Check offsets of stack references.

testsuite/ChangeLog:
2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/61047
        * gcc.c-torture/execute/20150611-1.c: New testcase.

From-SVN: r225260

9 years agofold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y...
Richard Biener [Wed, 1 Jul 2015 13:18:49 +0000 (13:18 +0000)]
fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y...

2015-07-01  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
~X CMP C -> X CMP' ~C to ...
* match.pd: ... patterns here.

From-SVN: r225249

9 years agoPR jit/66700: set TREE_ADDRESSABLE when building an ADDR_EXPR
David Malcolm [Wed, 1 Jul 2015 12:50:50 +0000 (12:50 +0000)]
PR jit/66700: set TREE_ADDRESSABLE when building an ADDR_EXPR

gcc/jit/ChangeLog:
PR jit/66700
* jit-playback.c (jit_mark_addressable): New function.
(gcc::jit::playback::lvalue::get_address): Call
jit_mark_addressable on the underlying tree.

gcc/testsuite/ChangeLog:
PR jit/66700
* jit.dg/all-non-failing-tests.h: Add
test-pr66700-observing-write-through-ptr.c.
* jit.dg/test-pr66700-observing-write-through-ptr.c: New testcase.

From-SVN: r225248

9 years agojit: document union types
David Malcolm [Wed, 1 Jul 2015 12:41:18 +0000 (12:41 +0000)]
jit: document union types

gcc/jit/ChangeLog:
* docs/topics/types.rst (gcc_jit_context_new_union_type): Add
documentation.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

gcc/testsuite/ChangeLog:
* jit.dg/test-accessing-union.c: Add comments for use by
gcc/jit/docs/topics/types.rst.

From-SVN: r225246

9 years agojit: clarify (lack of) lifetime requirements on input const char *
David Malcolm [Wed, 1 Jul 2015 12:34:24 +0000 (12:34 +0000)]
jit: clarify (lack of) lifetime requirements on input const char *

gcc/jit/ChangeLog:
* docs/topics/contexts.rst (gcc_jit_context_set_bool_option):
Clarify lack of lifetime requirements on (const char *) parameter.
* docs/topics/expressions.rst
(gcc_jit_context_new_string_literal): Likewise.
(gcc_jit_context_new_global): Likewise.
* docs/topics/functions.rst (gcc_jit_context_new_param): Likewise.
(gcc_jit_context_new_function): Likewise.
(gcc_jit_function_new_block): Likewise.
(gcc_jit_block_add_comment): Likewise.
* docs/topics/locations.rst (gcc_jit_context_new_location):
Likewise.
* docs/topics/types.rst (gcc_jit_context_new_field): Likewise.
(gcc_jit_context_new_struct_type): Likewise.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r225245

9 years agoalloc_traits.h (__alloctr_rebind): Remove.
Jonathan Wakely [Wed, 1 Jul 2015 12:24:09 +0000 (13:24 +0100)]
alloc_traits.h (__alloctr_rebind): Remove.

* include/bits/alloc_traits.h (__alloctr_rebind): Remove.
(__allocator_traits_base): New base class.
(__alloc_rebind): Reimplement in terms of detection idiom.
(allocator_traits): Derive from __allocator_traits_base. Reimplement
nested types in terms of detection idiom. Simplify SFINAE constraints
on overloaded static member functions.
* include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
of __alloctr_rebind.
* testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.

From-SVN: r225244

9 years agoptr_traits.h (__ptrtr_elt_type, [...]): Remove
Jonathan Wakely [Wed, 1 Jul 2015 12:24:03 +0000 (13:24 +0100)]
ptr_traits.h (__ptrtr_elt_type, [...]): Remove

* include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
__ptrtr_rebind, __ptrtr_not_void): Remove
(__get_first_arg, __replace_first_arg, __make_not_void): Define new
transformations.
(__detected_or_): New detection trait.
(pointer_traits): Use new traits.
* testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
* testsuite/20_util/pointer_traits/requirements/
explicit_instantiation.cc: Use valid arguments to pointer_traits.

From-SVN: r225243

9 years agoImplement N4502, the C++ Detection Idiom.
Jonathan Wakely [Wed, 1 Jul 2015 12:23:54 +0000 (13:23 +0100)]
Implement N4502, the C++ Detection Idiom.

* doc/xml/manual/status_cxx2017.xml: Update status table.
* include/experimental/type_traits (void_t, is_detected,
is_detected_v, detected_t, detected_or, detected_or_t,
is_detected_exact, is_detected_exact_v, is_detected_convertible,
is_detected_convertible_v): Define.
* include/std/type_traits (__detector, __detected_or, __detected_or_t,
__detected_or_t_): Define.
* testsuite/experimental/type_traits/detection.cc: New.

From-SVN: r225242

9 years agoarmv8-sync-comp-swap.c: Replace 'do-require-effective-target' with 'dg-require-effect...
Matthew Wahab [Wed, 1 Jul 2015 12:16:01 +0000 (12:16 +0000)]
armv8-sync-comp-swap.c: Replace 'do-require-effective-target' with 'dg-require-effective-target'.

2015-07-01  Matthew Wahab  <matthew.wahab@arm.com>

* gcc.target/arm/armv8-sync-comp-swap.c: Replace
'do-require-effective-target' with 'dg-require-effective-target'.
* gcc.target/arm/armv8-sync-op-full.c: Likewise.
* gcc.target/arm/armv8-sync-op-release.c: Likewise.
* gcc.target/arm/armv8-sync-op-acquire.c: Likewise.  Also, replace
        'stlex' with 'strex' as the expected output.

From-SVN: r225241

9 years agomsp430.md (zero_extendhipsi2): Use MOVX.A to store a 16-bit value into a 20-bit memor...
Nick Clifton [Wed, 1 Jul 2015 11:35:48 +0000 (11:35 +0000)]
msp430.md (zero_extendhipsi2): Use MOVX.A to store a 16-bit value into a 20-bit memory slot.

* config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
a 16-bit value into a 20-bit memory slot.

From-SVN: r225240

9 years agore PR c++/60365 (multiple noreturn attribute specifiers in a single declaration doesn...
Paolo Carlini [Wed, 1 Jul 2015 09:08:17 +0000 (09:08 +0000)]
re PR c++/60365 (multiple noreturn attribute specifiers in a single declaration doesn't result in a diagnostic)

/cp
2015-07-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60365
* parser.c (cp_parser_check_std_attribute): New.
(cp_parser_std_attribute_list): Call it.

/testsuite
2015-07-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60365
* g++.dg/cpp0x/gen-attrs-60.C: New.
* g++.dg/cpp1y/attr-deprecated-2.C: Likewise.

From-SVN: r225234

9 years ago[AArch64] Document several AArch64-specific test directives
Jiong Wang [Wed, 1 Jul 2015 09:01:47 +0000 (09:01 +0000)]
[AArch64] Document several AArch64-specific test directives

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

* doc/sourcebuild.texi (AArch64-specific attributes): Document
"aarch64_tiny", "aarch64_small", "aarch64_large",
"aarch64_little_endian", "aarch64_big_endian".

From-SVN: r225233

9 years ago[AArch64] Restrict pic-small.c by new test directive
Jiong Wang [Wed, 1 Jul 2015 08:51:49 +0000 (08:51 +0000)]
[AArch64] Restrict pic-small.c by new test directive

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

      gcc/
* doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
Document "aarch64_small_fpic".

      gcc/testsuite/
* lib/target-supports.exp (check_effective_target_aarch64_small_fpic): New function.
* gcc.target/aarch64/pic-small.c: Restrict this test under
check_effective_target_aarch64_small_fpic.

From-SVN: r225232

9 years ago[AArch64] Fall back to -fPIC if no support of -fpic in binutils
Jiong Wang [Wed, 1 Jul 2015 08:45:08 +0000 (08:45 +0000)]
[AArch64] Fall back to -fPIC if no support of -fpic in binutils

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

* configure.ac: Add check for aarch64 assembler -fpic relocation
modifier support.
* configure: Regenerate.
* config.in: Regenerate.
* config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
to -fPIC if not support of -fpic relocation modifier in assembler.

From-SVN: r225231

9 years agore PR middle-end/66685 (conftest.c:16:1: internal compiler error: in as_a, at is...
Richard Sandiford [Wed, 1 Jul 2015 08:41:33 +0000 (08:41 +0000)]
re PR middle-end/66685 (conftest.c:16:1: internal compiler error: in as_a, at is-a.h:192)

gcc/
PR bootstrap/66685
* rtl.c (classify_insn): Handle returns in PARALLELs.

From-SVN: r225230

9 years agore PR middle-end/66633 (ICE on valid "verify_gimple failed" with OpenMP)
Eric Botcazou [Wed, 1 Jul 2015 08:21:40 +0000 (08:21 +0000)]
re PR middle-end/66633 (ICE on valid "verify_gimple failed" with OpenMP)

PR middle-end/66633
* tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
to true if the function is nested and if not optimizing.
(convert_local_omp_clauses): Initialize need_frame to true if the
function contains nested functions and if not optimizing.

From-SVN: r225227

9 years agofold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and (X & Y) ^ Y -> ~X & Y transform...
Richard Biener [Wed, 1 Jul 2015 07:42:10 +0000 (07:42 +0000)]
fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and (X & Y) ^ Y -> ~X & Y transforms to ...

2015-07-01  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
(X & Y) ^ Y -> ~X & Y transforms to ...
* match.pd: ... here.

From-SVN: r225225

9 years agoFix latest entry
Eric Botcazou [Wed, 1 Jul 2015 07:39:55 +0000 (07:39 +0000)]
Fix latest entry

From-SVN: r225224

9 years agogenmatch.c (expr::gen_transform): Shortcut re-simplifying of converts to avoid uninte...
Richard Biener [Wed, 1 Jul 2015 07:36:25 +0000 (07:36 +0000)]
genmatch.c (expr::gen_transform): Shortcut re-simplifying of converts to avoid uninteresting noise from the...

2015-07-01  Richard Biener <rguenther@suse.de>

* genmatch.c (expr::gen_transform): Shortcut re-simplifying
of converts to avoid uninteresting noise from the conversion
simplifying patterns.

From-SVN: r225223

9 years ago* gcc.target/i386/pr66691.c: Update PR number.
Uros Bizjak [Wed, 1 Jul 2015 06:43:18 +0000 (08:43 +0200)]
* gcc.target/i386/pr66691.c: Update PR number.

From-SVN: r225222

9 years agoc6x.c (try_rename_operands): Do not depend on gcc_assert evaluating its argument...
Sandra Loosemore [Wed, 1 Jul 2015 02:15:32 +0000 (22:15 -0400)]
c6x.c (try_rename_operands): Do not depend on gcc_assert evaluating its argument for side-effect.

2015-06-30  Sandra Loosemore <sandra@codesourcery.com>

gcc/
* config/c6x/c6x.c (try_rename_operands): Do not depend on
gcc_assert evaluating its argument for side-effect.

From-SVN: r225221

9 years agoFix PR c++/66686 (dependent template template substitution)
Patrick Palka [Wed, 1 Jul 2015 01:07:35 +0000 (01:07 +0000)]
Fix PR c++/66686 (dependent template template substitution)

gcc/cp/ChangeLog:

PR c++/66686
* pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
return 0 if tsubst returns a dependent type.

gcc/testsuite/ChangeLog:

PR c++/66686
* g++.dg/template/pr66686.C: New test.

From-SVN: r225220

9 years agore PR target/64833 ([SH]: Error: pcrel too far when compiling imagemagick and graphic...
Kaz Kojima [Wed, 1 Jul 2015 01:02:48 +0000 (01:02 +0000)]
re PR target/64833 ([SH]: Error: pcrel too far when compiling imagemagick and graphicsmagick on Debian sh4)

PR target/64833
* [SH] Set length of casesi_worker_1 insn to 8 when flag_pic is set.

From-SVN: r225219

9 years agoDaily bump.
GCC Administrator [Wed, 1 Jul 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r225218

9 years agolto-streamer-out.c (class DFS): Adjust hash_scc method.
Eric Botcazou [Tue, 30 Jun 2015 21:05:02 +0000 (21:05 +0000)]
lto-streamer-out.c (class DFS): Adjust hash_scc method.

* lto-streamer-out.c (class DFS): Adjust hash_scc method.
(DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
(hash_scc): Add this_ref_p and ref_p parameters and pass them
to the inner DFS walk.

From-SVN: r225212

9 years agotarget-insns.def (jump): New targetm instruction pattern.
Richard Sandiford [Tue, 30 Jun 2015 20:57:21 +0000 (20:57 +0000)]
target-insns.def (jump): New targetm instruction pattern.

gcc/
* target-insns.def (jump): New targetm instruction pattern.
* bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
instead of gen_jump.
(fix_up_crossing_landing_pad): Likewise.
(add_labels_and_missing_jumps): Likewise.
(fix_crossing_conditional_branches): Likewise.
* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
(force_nonfallthru_and_redirect): Likewise.
* cse.c (cse_insn): Likewise.
* expmed.c (expand_divmod): Likewise.
* expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
* haifa-sched.c (init_before_recovery): Likewise.
(sched_create_recovery_edges): Likewise.
* ifcvt.c (find_cond_trap): Likewise.
* optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
(expand_float, expand_fix): Likewise.
* stmt.c (emit_jump): Likewise.

From-SVN: r225211

9 years agogcc/
Richard Sandiford [Tue, 30 Jun 2015 20:56:43 +0000 (20:56 +0000)]
gcc/
* defaults.h (HAVE_load_multiple, gen_load_multiple)
(HAVE_store_multiple, gen_store_multiple): Delete.
* target-insns.def (load_multiple, store_multiple): New targetm
instruction patterns.
* expr.c (move_block_to_reg, move_block_from_reg): Use them instead
of HAVE_*/gen_* interface.

From-SVN: r225210

9 years agogcc/
Richard Sandiford [Tue, 30 Jun 2015 20:56:14 +0000 (20:56 +0000)]
gcc/
* defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
(HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
(gen_mem_signal_fence): Delete.
* target-insns.def (mem_signal_fence, mem_thread_fence)
(memory_barrier): New targetm instruction patterns.
* optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
interface.
(expand_mem_signal_fence): Likewise.

From-SVN: r225209

9 years agodefaults.h (HAVE_epilogue, [...]): Delete.
Richard Sandiford [Tue, 30 Jun 2015 20:55:13 +0000 (20:55 +0000)]
defaults.h (HAVE_epilogue, [...]): Delete.

gcc/
* defaults.h (HAVE_epilogue, gen_epilogue): Delete.
* target-insns.def (epilogue, prologue, sibcall_prologue): New
targetm instruction patterns.
* alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
interface.
* calls.c (expand_call): Likewise.
* cfgrtl.c (cfg_layout_finalize): Likewise.
* df-scan.c (df_get_entry_block_def_set): Likewise.
(df_get_exit_block_use_set): Likewise.
* dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
* final.c (final_start_function): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
(reposition_prologue_and_epilogue_notes): Likewise.
* reorg.c (find_end_label): Likewise.
* toplev.c (process_options): Likewise.

From-SVN: r225208

9 years agojit: add switch statements
David Malcolm [Tue, 30 Jun 2015 20:39:50 +0000 (20:39 +0000)]
jit: add switch statements

gcc/ChangeLog:
* typed-splay-tree.h: New file.

gcc/jit/ChangeLog:
* docs/cp/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gccjit::block::end_with_switch): Add function description.
(gccjit::case_): Add class.
(gccjit::context::new_case): Add function description.
* docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
* docs/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gcc_jit_block_end_with_switch): Add function description.
(gcc_jit_case): Add type.
(gcc_jit_context_new_case): Add function description.
(gcc_jit_case_as_object): Add function description.
* docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::recording::case_): Add forward decl.
(gcc::jit::playback::case_): Add forward decl.
* jit-playback.c (add_case): New function.
(gcc::jit::playback::block::add_switch): New function.
* jit-playback.h (gcc::jit::playback::case_): New struct.
(gcc::jit::playback::block::get_function): New method.
(gcc::jit::playback::block::add_switch): New method.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::new_case): New method.
(recording::function::validate): Update for change to
get_successor_blocks.
(recording::block::end_with_switch): New method.
(recording::block::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::block::dump_edges_to_dot): Likewise.
(memento_of_new_rvalue_from_const <int>::get_wide_int): New.
(memento_of_new_rvalue_from_const <long>::get_wide_int): New.
(memento_of_new_rvalue_from_const <double>::get_wide_int): New.
(memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
(recording::statement::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::conditional::get_successor_blocks): Likewise.
(recording::jump::get_successor_blocks): Likewise.
(recording::return_::get_successor_blocks): Likewise.
(recording::case_::write_reproducer): New.
(recording::case_::make_debug_string): New.
(recording::switch_::switch_): New.
(recording::switch_::replay_into): New.
(recording::switch_::get_successor_blocks): New.
(recording::switch_::make_debug_string): New.
(recording::switch_::write_reproducer): New.
* jit-recording.h: Within namespace gcc::jit::recording...
(context::new_case): New.
(rvalue::is_constant): New.
(rvalue::get_wide_int): New.
(block::end_with_switch): New.
(block::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(memento_of_new_rvalue_from_const::is_constant): New.
(memento_of_new_rvalue_from_const::get_wide_int): New.
(statement::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(conditional::get_successor_blocks): Likewise.
(jump::get_successor_blocks): Likewise.
(return_::get_successor_blocks): Likewise.
(case_): New subclass of memento.
(switch_): New subclass of statement.
* libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
(gccjit::context::new_case): New method.
(gccjit::block::end_with_switch): New method.
(gccjit::case_::case): New ctors.
(gccjit::case_::get_inner_case): New method.
* libgccjit.c: Include "typed-splay-tree.h"
(struct gcc_jit_case): New.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(valid_dest_for_switch): New function.
(valid_case_for_switch): New function.
(class api_call_validator): New class.
(class case_range_validator): New class.
(case_range_validator::case_range_validator): New.
(case_range_validator::validate): New.
(case_range_validator::case_compare): New.
(case_range_validator::get_wide_int): new.
(gcc_jit_block_end_with_switch): New.
* libgccjit.h: Add gcc_jit_case to class hierarchy comment.
(gcc_jit_case): New typedef.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(gcc_jit_block_end_with_switch): New function.
(LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
* libgccjit.map: Add gcc_jit_block_end_with_switch,
gcc_jit_case_as_object and gcc_jit_context_new_case.

gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add test-switch.c.
* jit.dg/test-error-gcc_jit_block_end_with_switch-NULL-case.c: New
testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-mismatching-case-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-overlapping-ranges.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-const-label.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-integer-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-reversed-endpoints.c:
New testcase.
* jit.dg/test-switch.c: New testcase.
* jit.dg/test-switch.cc: New testcase.

From-SVN: r225207

9 years agoPR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks
David Malcolm [Tue, 30 Jun 2015 19:38:12 +0000 (19:38 +0000)]
PR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks

gcc/jit/ChangeLog:
PR jit/66546
* docs/cp/topics/contexts.rst
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
* docs/topics/contexts.rst (Options): Add notes discussing the
transition from enums to entrypoints for new options.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::inner_bool_option): New enum.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::context): Handle m_inner_bool_options.
(recording::context::set_inner_bool_option): New.
(inner_bool_option_reproducer_strings): New.
(recording::context::log_all_options): Log the "inner" bool
options.
(recording::context::log_inner_bool_option): New.
(recording::context::dump_reproducer_to_file): Write initializers
for "inner" bool options.
(recording::function::validate): Don't check for block
reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::set_inner_bool_option): New.
(recording::context::get_inner_bool_option): New.
(recording::context::log_inner_bool_option): New.
(recording::context::m_inner_bool_options): New.
* libgccjit++.h
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* libgccjit.c
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* libgccjit.h: Add note about options present in the
initial release of libgccjit.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
New macro.
* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
entrypoint.

gcc/testsuite/ChangeLog:
PR jit/66546
* jit.dg/all-non-failing-tests.h: Add note about
test-validly-unreachable-block.c.
* jit.dg/test-validly-unreachable-block.c: New file.

From-SVN: r225206

9 years agoPR jit/66628: add gcc_jit_context_add_command_line_option
David Malcolm [Tue, 30 Jun 2015 19:27:19 +0000 (19:27 +0000)]
PR jit/66628: add gcc_jit_context_add_command_line_option

gcc/jit/ChangeLog:
PR jit/66628
* docs/cp/topics/contexts.rst (Additional command-line options):
New section.
* docs/topics/compatibility.rst: New file.
* docs/topics/contexts.rst (Additional command-line options): New
section.
* docs/topics/index.rst: Add compatibility.rst.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (make_fake_args): Add call to
append_command_line_options.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::~context): Free the optnames within
m_command_line_options.
(recording::context::set_bool_option): Likewise.
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::dump_reproducer_to_file): Add command-line
options.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::m_command_line_options): New field.
* libgccjit++.h (gccjit::context::add_command_line_option): New
method.
* libgccjit.c (gcc_jit_context_add_command_line_option): New API
entrypoint.
* libgccjit.h (gcc_jit_context_add_command_line_option): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
macro.
* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.

gcc/testsuite/ChangeLog:
PR jit/66628
* jit.dg/all-non-failing-tests.h: Add note about
test-extra-options.c.
* jit.dg/test-extra-options.c: New testcase.

From-SVN: r225205

9 years agofixes to gcc_jit_context_dump_reproducer_to_file
David Malcolm [Tue, 30 Jun 2015 19:18:34 +0000 (19:18 +0000)]
fixes to gcc_jit_context_dump_reproducer_to_file

gcc/jit/ChangeLog:
* jit-recording.c
(gcc::jit::recording::context::dump_reproducer_to_file):
Add pragma to generated reproducers to disable -Wunused-variable.
Fix handling of NULL string options.

From-SVN: r225204

9 years agojit: fix some .rst issues in docs
David Malcolm [Tue, 30 Jun 2015 19:09:31 +0000 (19:09 +0000)]
jit: fix some .rst issues in docs

gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst: Remove stray semicolon.
* docs/cp/topics/functions.rst: Remove stray backslash.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r225203

9 years agoAdd missed test
Vladimir Makarov [Tue, 30 Jun 2015 17:44:00 +0000 (17:44 +0000)]
Add missed test

From-SVN: r225201

9 years agore PR debug/66691 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at...
Vladimir Makarov [Tue, 30 Jun 2015 17:40:55 +0000 (17:40 +0000)]
re PR debug/66691 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5744)

2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>

PR debug/66691
* lra-int.h (lra_substitute_pseudo): Add a parameter.
(lra_substitute_pseudo_within_insn): Ditto.
* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
of constant.
(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
to lra_substitute_pseudo.
* lra-lives.c (process_bb_lives): Add an argument to
lra_substitute_pseudo_within_insn call.
* lra-constraints.c (inherit_reload_reg, split_reg): Add an
argument to lra_substitute_pseudo and
lra_substitute_pseudo_within_insn calls.
(remove_inheritance_pseudos, undo_optional_reloads): Ditto.

2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>

PR debug/66691
* gcc.target/i386/pr66691.c: New.

From-SVN: r225200

9 years agoIA MCU psABI support: testsuite
H.J. Lu [Tue, 30 Jun 2015 16:46:45 +0000 (16:46 +0000)]
IA MCU psABI support: testsuite

We run Intel MCU psABI tests on Linux/ia32 with -miamcu.  Since Intel
MCU psABI has a different calling convention, the only Linux libc function
allowed is "abort".

asm-support.S contains some support functions as well as a subset of
soft-fp, which is written in assembly with x87 instructions, to provide
intrinsics needed by -miamcu so that Intel MCU psABI tests can run on
Linux.

* gcc.target/i386/iamcu/abi-iamcu.exp: New file.
* gcc.target/i386/iamcu/args.h: Likewise.
* gcc.target/i386/iamcu/asm-support.S: Likewise.
* gcc.target/i386/iamcu/defines.h: Likewise.
* gcc.target/i386/iamcu/macros.h: Likewise.
* gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_alignment.c: Likewise.
* gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_sizes.c: Likewise.
* gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_bitfields.c: Likewise.
* gcc.target/i386/iamcu/test_complex_returning.c: Likewise.
* gcc.target/i386/iamcu/test_passing_floats.c: Likewise.
* gcc.target/i386/iamcu/test_passing_integers.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_passing_unions.c: Likewise.
* gcc.target/i386/iamcu/test_struct_returning.c: Likewise.
* gcc.target/i386/iamcu/test_varargs.c: Likewise.

From-SVN: r225199

9 years agoIA MCU psABI support: changes to libraries
H.J. Lu [Tue, 30 Jun 2015 16:42:07 +0000 (16:42 +0000)]
IA MCU psABI support: changes to libraries

Patch in the bottom adds support of IA MCU psABI to libgcc (enables
soft-fp) and libdecnumber (enables it for IA MCU).

config/

* dfp.m4 (enable_decimal_float): Also set to yes for
i?86*-*-elfiamcu target.

gcc/

* configure: Regenerated.

libdecnumber/

* configure: Regenerated.

libgcc/

* config.host: Support i[34567]86-*-elfiamcu target.
* config/t-softfp-sfdftf: New file.
* config/i386/32/t-iamcu: Likewise.
* configure: Regenerated.

From-SVN: r225198

9 years agoIA MCU psABI support: GCC changes
H.J. Lu [Tue, 30 Jun 2015 16:40:19 +0000 (16:40 +0000)]
IA MCU psABI support: GCC changes

This patch introduces basic IA MCU psABI support into GCC.

* configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu
target.
* configure: Regenerate.

gcc/

* config.gcc: Support i[34567]86-*-elfiamcu target.
* config/i386/iamcu.h: New.
* config/i386/i386.opt: Add -miamcu.
* doc/invoke.texi: Document -miamcu.
* common/config/i386/i386-common.c  (ix86_handle_option): Turn
off x87/MMX/SSE/AVX codegen for -miamcu.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__iamcu/__iamcu__ for -miamcu.
* config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
(BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
* config/i386/i386.c (ix86_option_override_internal): Ignore and
warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
MCU by default.  Default long double to 64-bit for Intel MCU.
Turn on -freg-struct-return for Intel MCU.  Issue an error when
-miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
AVX is turned on.
(function_arg_advance_32): Pass value whose size is no larger
than 8 bytes in registers for Intel MCU.
(function_arg_32): Likewise.
(ix86_return_in_memory): Return value whose size is no larger
than 8 bytes in registers for Intel MCU.
(iamcu_alignment): New function.
(ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
true.
(ix86_local_alignment): Don't increase alignment for Intel MCU.
(x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
true.

From-SVN: r225197

9 years agomatch.pd (~x | x): Don't use tree_nop_conversion_p.
Marek Polacek [Tue, 30 Jun 2015 16:36:44 +0000 (16:36 +0000)]
match.pd (~x | x): Don't use tree_nop_conversion_p.

* match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
the final expression with the operand's type and then convert
it to the type of the expression.

* gcc.dg/fold-ior-3.c: New test.

From-SVN: r225196

9 years agomatch.pd (X - (X / Y) * Y): Use convert1 and convert2.
Marek Polacek [Tue, 30 Jun 2015 16:35:16 +0000 (16:35 +0000)]
match.pd (X - (X / Y) * Y): Use convert1 and convert2.

* match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
both operands of the resulting expression.

* gcc.dg/fold-minus-6.c: New test.

From-SVN: r225195

9 years agoRun testsuite/libgomp.oacc-c++/c++.exp at -O2 by default
Tom de Vries [Tue, 30 Jun 2015 15:43:55 +0000 (15:43 +0000)]
Run testsuite/libgomp.oacc-c++/c++.exp at -O2 by default

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
already set.  Use DEFAULT_CFLAGS in dg-runtest.
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
"-O2".

From-SVN: r225194

9 years agore PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)
Jason Merrill [Tue, 30 Jun 2015 15:40:38 +0000 (11:40 -0400)]
re PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)

PR debug/66653
* decl2.c (is_late_template_attribute): True for tls_model.

From-SVN: r225193

9 years agore PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)
Jason Merrill [Tue, 30 Jun 2015 14:31:36 +0000 (10:31 -0400)]
re PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)

PR debug/66653
* cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
(DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
(SET_DECL_GNU_TLS_P): New.
* call.c (make_temporary_var_for_ref_to_temp): Use
CP_DECL_THREAD_LOCAL_P.
(set_up_extended_ref_temp): Likewise.
* decl.c (duplicate_decls, expand_static_init): Likewise.
(redeclaration_error_message, grokvardecl): Likewise.
(start_decl, register_dtor_fn, grokdeclarator): Likewise.
* decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
(handle_tls_init): Likewise.
* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
* semantics.c (finish_id_expression): Likewise.
(handle_omp_array_sections_1, finish_omp_clauses): Likewise.
(finish_omp_threadprivate): Likewise.
* tree.c (decl_storage_duration): Likewise.
* cp-gimplify.c (omp_var_to_track): Likewise.
(cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
* lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
already set.

From-SVN: r225192

9 years agoMakefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
Jonathan Wakely [Tue, 30 Jun 2015 14:22:14 +0000 (15:22 +0100)]
Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.

* doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
* doc/Makefile.in: Regenerate.

From-SVN: r225191

9 years ago* include/bits/stl_pair.h: Replace class keyword with typename.
Jonathan Wakely [Tue, 30 Jun 2015 13:35:36 +0000 (14:35 +0100)]
* include/bits/stl_pair.h: Replace class keyword with typename.

From-SVN: r225190

9 years agoImplement N4387, "Improving pair and tuple", and LWG 2367.
Ville Voutilainen [Tue, 30 Jun 2015 13:26:49 +0000 (16:26 +0300)]
Implement N4387, "Improving pair and tuple", and LWG 2367.

2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>

Implement N4387, "Improving pair and tuple", and LWG 2367.

* include/bits/stl_pair.h (_ConstructiblePair,
_ImplicitlyConvertiblePair, _MoveConstructiblePair,
_ImplicitlyMoveConvertiblePair): New.
(pair()): Constrain it.
(pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
pair(pair<_U1, _U2>&&)): Make conditionally explicit.
* include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
(tuple()): Constrain it.
(tuple(const _UElements&...), tuple(_UElements&&...),
tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
conditionally explicit.
* include/experimental/functional (__boyer_moore_array_base): Name
array type explicitly instead of using an empty braced-init-list.
* testsuite/20_util/pair/cons/explicit_construct.cc: New.
* testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
* testsuite/20_util/pair/requirements/dr2367.cc: New.
* testsuite/20_util/tuple/cons/explicit_construct.cc: New.
* testsuite/20_util/tuple/requirements/dr2367.cc: New.

From-SVN: r225189

9 years agoImplement N4197 - Adding u8 character literals
Edward Smith-Rowland [Tue, 30 Jun 2015 12:58:48 +0000 (12:58 +0000)]
Implement N4197 - Adding u8 character literals

libcpp:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
(struct cpp_options): Add utf8_char_literals.
* init.c (struct lang_flags): Add utf8_char_literals;
(struct lang_flags lang_defaults): Add column for utf8_char_literals.
* macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
* expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
(cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
(eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
* lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
* charset.c (converter_for_type(), cpp_interpret_charconst()):
Treat CPP_UTF8CHAR token.

gcc/c-family:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* c-family/c-ada-spec.c (print_ada_macros()): Treat CPP_UTF8CHAR
like CPP_CHAR.
* c-family/c-common.c (c_parse_error()): print CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens.
* c-family/c-lex.c (c_lex_with_flags()): Treat CPP_UTF8CHAR_USERDEF
and CPP_UTF8CHAR tokens; (lex_charconst()): Treat CPP_UTF8CHAR token.

gcc/cp:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens;
(cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.

gcc/testsuite:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* g++.dg/cpp1z/utf8.C: New.
* g++.dg/cpp1z/utf8-neg.C: New.
* g++.dg/cpp1z/udlit-utf8char.C: New.

From-SVN: r225185

9 years agofold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and ~x | ~y -> ~(x & y)...
Richard Biener [Tue, 30 Jun 2015 12:54:23 +0000 (12:54 +0000)]
fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and ~x | ~y -> ~(x & y)...

2015-06-30  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
(X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
* match.pd: ... to patterns here.

From-SVN: r225184

9 years ago* configure: Regenerate.
Jonathan Wakely [Tue, 30 Jun 2015 12:53:14 +0000 (13:53 +0100)]
* configure: Regenerate.

From-SVN: r225183

9 years agore PR tree-optimization/66704 (ICE in tree-vectorizer at tree-ssanames.c:457)
Richard Biener [Tue, 30 Jun 2015 12:52:55 +0000 (12:52 +0000)]
re PR tree-optimization/66704 (ICE in tree-vectorizer at tree-ssanames.c:457)

2015-06-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66704
* tree-vect-data-refs.c (vect_setup_realignment): Use
make_ssa_name for non-SSA name source.

From-SVN: r225182

9 years agoRun testsuite/libgomp.c++/c++.exp at -O2 by default
Tom de Vries [Tue, 30 Jun 2015 12:22:04 +0000 (12:22 +0000)]
Run testsuite/libgomp.c++/c++.exp at -O2 by default

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
already set.  Use DEFAULT_CFLAGS in dg-runtest.
* testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
* testsuite/libgomp.c++/pr64824.C: Same.
* testsuite/libgomp.c++/pr64868.C: Same.
* testsuite/libgomp.c++/pr66199-1.C: Same.
* testsuite/libgomp.c++/pr66199-2.C: Same.
* testsuite/libgomp.c++/target-2.C: Same.
* testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
-std=<standard> option.
* testsuite/libgomp.c++/udr-11.C: Same.
* testsuite/libgomp.c++/udr-12.C: Same.
* testsuite/libgomp.c++/udr-13.C: Same.
* testsuite/libgomp.c++/udr-14.C: Same.
* testsuite/libgomp.c++/udr-15.C: Same.
* testsuite/libgomp.c++/udr-16.C: Same.
* testsuite/libgomp.c++/udr-17.C: Same.
* testsuite/libgomp.c++/udr-18.C: Same.
* testsuite/libgomp.c++/udr-19.C: Same.
* testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
* testsuite/libgomp.c++/simd-1.C: Same.
* testsuite/libgomp.c++/simd-2.C: Same.
* testsuite/libgomp.c++/simd-3.C: Same.
* testsuite/libgomp.c++/simd-4.C: Same.
* testsuite/libgomp.c++/simd-5.C: Same.
* testsuite/libgomp.c++/simd-6.C: Same.
* testsuite/libgomp.c++/simd-7.C: Same.
* testsuite/libgomp.c++/simd-8.C: Same.
* testsuite/libgomp.c++/simd-9.C: Same.
* testsuite/libgomp.c++/simd10.C: Same.
* testsuite/libgomp.c++/simd11.C: Same.
* testsuite/libgomp.c++/simd12.C: Same.
* testsuite/libgomp.c++/simd13.C: Same.

From-SVN: r225181

9 years agore PR middle-end/66702 (#pragma omp declare simd uniform and linear issues)
Jakub Jelinek [Tue, 30 Jun 2015 12:12:42 +0000 (14:12 +0200)]
re PR middle-end/66702 (#pragma omp declare simd uniform and linear issues)

PR middle-end/66702
* omp-low.c (simd_clone_adjust): Handle addressable linear
or uniform parameters or non-gimple type uniform parameters.

* testsuite/libgomp.c++/pr66702-1.C: New test.
* testsuite/libgomp.c++/pr66702-2.C: New test.

From-SVN: r225179

9 years agofold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x)...
Richard Biener [Tue, 30 Jun 2015 11:58:48 +0000 (11:58 +0000)]
fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x)...

2015-06-30  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
* match.pd: ... here.
Add a few cases of A - B -> A + (-B) when B "easily" negates.
Move (x & y) | x -> x and friends before
(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).

From-SVN: r225178

9 years ago* gcc.dg/fold-ior-2.c (fn4): Swap operands.
Marek Polacek [Tue, 30 Jun 2015 11:05:13 +0000 (11:05 +0000)]
* gcc.dg/fold-ior-2.c (fn4): Swap operands.

From-SVN: r225174

9 years agoleon.md (leon_load): Enable for all LEON variants if -mfix-ut699 is not specified.
Eric Botcazou [Tue, 30 Jun 2015 11:05:11 +0000 (11:05 +0000)]
leon.md (leon_load): Enable for all LEON variants if -mfix-ut699 is not specified.

* config/sparc/leon.md (leon_load): Enable for all LEON variants if
-mfix-ut699 is not specified.
(leon3_load): Rename into...
(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
is specified.

From-SVN: r225173