Richard Sandiford [Sun, 5 Jul 2015 08:02:59 +0000 (08:02 +0000)]
target-insns.def (extv, [...]): New targetm instruction patterns.
gcc/
* target-insns.def (extv, extzv, insv): New targetm instruction
patterns.
* optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
interface.
* recog.c (simplify_while_replacing): Likewise.
From-SVN: r225432
Richard Sandiford [Sun, 5 Jul 2015 08:01:48 +0000 (08:01 +0000)]
target-insns.def (doloop_begin, doloop_end): New targetm instruction patterns.
gcc/
* target-insns.def (doloop_begin, doloop_end): New targetm
instruction patterns.
* loop-init.c: Include target.h.
(pass_loop2::gate): Use the new targetm patterns instead of
HAVE_*/gen_* interface.
(pass_rtl_doloop::gate): Likewise.
(pass_rtl_doloop::execute): Remove preprocessor condition.
* hw-doloop.c: Build unconditionally.
* loop-doloop.c: Likewise.
(doloop_optimize): Use the new targetm patterns instead of
HAVE_*/gen_* interface.
(doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
* modulo-sched.c (doloop_register_get): Likewise.
From-SVN: r225431
Richard Sandiford [Sun, 5 Jul 2015 07:59:14 +0000 (07:59 +0000)]
target-insns.def (clear_cache): New targetm instruction pattern.
gcc/
* target-insns.def (clear_cache): New targetm instruction pattern.
* builtins.c (expand_builtin___clear_cache): Use it instead of
HAVE_*/gen_* interface.
From-SVN: r225430
Richard Sandiford [Sun, 5 Jul 2015 07:58:30 +0000 (07:58 +0000)]
gcc/
* target-insns.def (allocate_stack, check_stack, probe_stack)
(probe_stack_address, split_stack_prologue, split_stack_space_check):
New targetm instruction patterns.
* explow.c (allocate_dynamic_stack_space): Use them instead of
HAVE_*/gen_* interface.
(emit_stack_probe): Likewise.
(probe_stack_range): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
From-SVN: r225429
Richard Sandiford [Sun, 5 Jul 2015 07:56:45 +0000 (07:56 +0000)]
target-insns.def (stack_protect_set, [...]): New targetm instruction patterns.
gcc/
* target-insns.def (stack_protect_set, stack_protect_test): New
targetm instruction patterns.
* cfgexpand.c (stack_protect_prologue): Use them instead of
HAVE_*/gen_* interface.
* function.c (stack_protect_epilogue): Likewise.
From-SVN: r225428
Richard Sandiford [Sun, 5 Jul 2015 07:55:03 +0000 (07:55 +0000)]
expr.h (gen_move_insn_uncast): Delete.
gcc/
* expr.h (gen_move_insn_uncast): Delete.
* expr.c (gen_move_insn_uncast): Delete.
From-SVN: r225427
Richard Sandiford [Sun, 5 Jul 2015 07:52:32 +0000 (07:52 +0000)]
gcc/
* target-insns.def (restore_stack_block, restore_stack_function)
(restore_stack_nonlocal, save_stack_block, save_stack_function)
(save_stack_nonlocal): New targetm instruction patterns.
* builtins.c (expand_builtin_apply): Use them instead of
HAVE_*/gen_* interface.
* explow.c (emit_stack_save, emit_stack_restore): Likewise.
From-SVN: r225426
Richard Sandiford [Sun, 5 Jul 2015 07:51:07 +0000 (07:51 +0000)]
target-insns.def (trap): New targetm instruction pattern.
gcc/
* target-insns.def (trap): New targetm instruction pattern.
* builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
interface.
* explow.c (allocate_dynamic_stack_space): Likewise.
* ifcvt.c (find_if_header): Likewise.
From-SVN: r225425
Richard Sandiford [Sun, 5 Jul 2015 07:50:31 +0000 (07:50 +0000)]
target-insns.def (prefetch): New targetm instruction pattern.
gcc/
* target-insns.def (prefetch): New targetm instruction pattern.
* tree-ssa-loop-prefetch.c: Include targeth.
(tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
of HAVE_*/gen_* interface.
* builtins.c (expand_builtin_prefetch): Likewise.
* toplev.c (process_options): Likewise.
From-SVN: r225424
Richard Sandiford [Sun, 5 Jul 2015 07:49:16 +0000 (07:49 +0000)]
target-insns.def (untyped_call, [...]): New targetm instruction patterns.
gcc/
* target-insns.def (untyped_call, untyped_return): New targetm
instruction patterns.
* builtins.c (expand_builtin_apply): Use them instead of
HAVE_*/gen_* interface.
(result_vector): Define unconditionally.
From-SVN: r225423
Richard Sandiford [Sun, 5 Jul 2015 07:48:04 +0000 (07:48 +0000)]
gcc/
* target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
(builtin_setjmp_setup, exception_receiver, nonlocal_goto)
(nonlocal_goto_receiver): New targetm instruction patterns.
* builtins.c (expand_builtin_setjmp_setup): Use them instead
of HAVE_*/gen_* interface.
(expand_builtin_setjmp_receiver): Likewise.
(expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
* except.c (expand_dw2_landing_pad_for_region): Likewise.
From-SVN: r225422
Richard Sandiford [Sun, 5 Jul 2015 07:44:45 +0000 (07:44 +0000)]
target.def: Add code_for_* hooks.
gcc/
* target.def: Add code_for_* hooks.
* gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
* defaults.h (HAVE_tablejump, gen_tablejump): Delete.
* target-insns.def (casesi, tablejump): New targetm instruction
patterns.
* expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
(do_tablejump): Likewise.
* stmt.c (expand_switch_as_decision_tree_p): Likewise.
(expand_sjlj_dispatch_table): Likewise.
* targhooks.c (default_case_values_threshold): Likewise.
From-SVN: r225421
Sandra Loosemore [Sun, 5 Jul 2015 02:56:18 +0000 (22:56 -0400)]
nios2.c (save_reg, [...]): Use plus_constant.
2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
Use rtx_insn * instead of rtx.
(nios2_emit_add_constant): Use rtx_insn * instead of rtx.
(nios2_expand_prologue, nios2_expand_epilogue): Likewise.
(nios2_call_tls_get_addr): Likewise.
(nios2_emit_expensive_div): Likewise.
(nios2_emit_move_sequence): Change return type to bool.
* config/nios2/nios2-protos.h (nios2_emit_move_sequence):
Change return type to bool.
From-SVN: r225420
GCC Administrator [Sun, 5 Jul 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r225419
Bernd Edlinger [Sat, 4 Jul 2015 19:02:18 +0000 (19:02 +0000)]
re PR target/66747 (The commit r225260 broke the builds of the mips-{mti,img}-linux-gnu tool chains.)
2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR target/66747
* config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
From-SVN: r225416
Steven G. Kargl [Sat, 4 Jul 2015 15:37:04 +0000 (15:37 +0000)]
[multiple changes]
2015-07-04 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66725
* io.c (is_char_type): New function to test for BT_CHARACTER
(gfc_match_open, gfc_match_close, match_dt_element): Use it.
2015-07-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66725
* gfortran.dg/pr66725.f90: New test.
From-SVN: r225415
John David Anglin [Sat, 4 Jul 2015 13:42:55 +0000 (13:42 +0000)]
re PR target/66114 (some indirect_jump patterns use operands[] in their condition when they shouldn't)
PR target/66114
* config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
of register_operand. Remove constraint.
From-SVN: r225412
Marc Glisse [Sat, 4 Jul 2015 11:15:33 +0000 (13:15 +0200)]
tree-cfg.c (verify_gimple_assign_ternary): Check the first argument.
2015-07-04 Marc Glisse <marc.glisse@inria.fr>
* tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
the first argument.
From-SVN: r225411
GCC Administrator [Sat, 4 Jul 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r225409
Paolo Carlini [Fri, 3 Jul 2015 18:56:40 +0000 (18:56 +0000)]
attribs.c (decl_attributes): Guard inform with the return value of the preceding warning.
2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
* attribs.c (decl_attributes): Guard inform with the return value
of the preceding warning.
From-SVN: r225402
Carlos Sánchez de La Lama [Fri, 3 Jul 2015 17:28:43 +0000 (17:28 +0000)]
re PR libitm/52482 (libitm INVALID MNEMONIC in .S (powerpc asm))
2015-07-03 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
PR target/52482
* config/powerpc/sjlj.S: Port to Xcode 2.5.
From-SVN: r225388
James Greenhalgh [Fri, 3 Jul 2015 14:49:05 +0000 (14:49 +0000)]
[Patch docs obvious AArch64] Fix position of -moverride documentation
gcc/
* doc/invoke.texi (moverride): Move to correct section.
From-SVN: r225384
Jason Merrill [Fri, 3 Jul 2015 14:42:21 +0000 (10:42 -0400)]
wide-int_plugin.c (test_double_int_round_udiv): Avoid narrowing error.
* gcc.dg/plugin/wide-int_plugin.c (test_double_int_round_udiv):
Avoid narrowing error.
From-SVN: r225383
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
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
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
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
H.J. Lu [Fri, 3 Jul 2015 13:08:35 +0000 (06:08 -0700)]
Add the missing file
From-SVN: r225377
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
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
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
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
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
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
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
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
GCC Administrator [Fri, 3 Jul 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r225364
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
David Edelsohn [Thu, 2 Jul 2015 22:01:36 +0000 (22:01 +0000)]
* trans-common.c: Include <map> after system.h.
From-SVN: r225358
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Thu, 2 Jul 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r225286
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Eric Botcazou [Wed, 1 Jul 2015 07:39:55 +0000 (07:39 +0000)]
Fix latest entry
From-SVN: r225224
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
Uros Bizjak [Wed, 1 Jul 2015 06:43:18 +0000 (08:43 +0200)]
* gcc.target/i386/pr66691.c: Update PR number.
From-SVN: r225222
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
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
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
GCC Administrator [Wed, 1 Jul 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r225218
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
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
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
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
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
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
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
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
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