Tom de Vries [Mon, 30 Nov 2015 16:34:26 +0000 (16:34 +0000)]
Handle BUILT_IN_GOMP_PARALLEL in ipa-pta
2015-11-30 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/46032
* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
factored out of ...
(find_func_aliases_for_call): ... here.
(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
BUILT_IN_GOMP_PARALLEL.
(ipa_pta_execute): Same. Handle node->parallelized_function as a local
function.
* gcc.dg/pr46032.c: New test.
* testsuite/libgomp.c/pr46032.c: New test.
From-SVN: r231076
Jakub Jelinek [Mon, 30 Nov 2015 14:56:08 +0000 (15:56 +0100)]
re PR tree-optimization/68501 (sqrt builtin is not used anymore)
PR tree-optimization/68501
* target.def (builtin_reciprocal): Replace the 3 arguments with
a gcall * one, adjust description.
* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
with a gcall * one.
* targhooks.c (default_builtin_reciprocal): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
targetm.builtin_reciprocal even on internal functions, adjust
the arguments and allow replacing an internal function with normal
built-in.
* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
with a gcall * one. Handle internal fns too.
* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
* doc/tm.texi (builtin_reciprocal): Document.
From-SVN: r231075
Richard Biener [Mon, 30 Nov 2015 14:50:48 +0000 (14:50 +0000)]
re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1403 with -fprofile-generate)
2015-11-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/68592
* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
on the pattern def sequence.
* gfortran.dg/pr68592.f: New testcase.
From-SVN: r231074
Nathan Sidwell [Mon, 30 Nov 2015 14:44:48 +0000 (14:44 +0000)]
nvptx.c (nvptx_name_replacement): Move earlier.
* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
(write_one_arg): Reorder parms, add 'sep' param.
(nvptx_write_function_decl): Rename to ...
(write_fn_proto): ... here. Do name replacement. Emit linaer
comment marker. Deal with both decls and defns. Simplify argument
formatting.
(write_function_decl_and_comment): Delete.
(write_func_decl_from_insn): Rename to ...
(write_fn_proto_from_insn): ... here. Don't do name replacement.
(nvptx_record_fndecl): Call write_fn_proto.
(nvptx_record_libfunc): Call write_fn_proto_from_insn.
(nvptx_declare_function_name): Adjust for write_fn_proto changes.
(nvotx_output_call_insn): Call write_fn_prot_from_insn.
From-SVN: r231073
Paul Thomas [Mon, 30 Nov 2015 13:33:27 +0000 (13:33 +0000)]
re PR fortran/68534 (No error on mismatch in number of arguments between submodule and module interface)
2015-11-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/68534
* decl.c (gfc_match_formal_arglist): Cope with zero formal args
either in interface declaration or in procedure declaration in
submodule.
2015-11-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/68534
* gfortran.dg/submodule_13.f08: New test.
From-SVN: r231072
Andreas Krebbel [Mon, 30 Nov 2015 13:24:51 +0000 (13:24 +0000)]
S/390: Testsuite: Add asm scan patterns for -m31.
gcc/testsuite/ChangeLog:
2015-11-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/load-relative-check.c: Add scan patterns for
-m31.
From-SVN: r231071
Andreas Krebbel [Mon, 30 Nov 2015 12:31:02 +0000 (12:31 +0000)]
S/390: Testsuite: Add -mzarch to load-relative-check.c.
2015-11-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/load-relative-check.c: Add -mzarch.
From-SVN: r231070
Eric Botcazou [Mon, 30 Nov 2015 12:20:06 +0000 (12:20 +0000)]
c-ada-spec.c (print_ada_macros): Remove redundant blank line.
* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
(decl_sloc_common): Delete and move bulk of processing to...
(decl_sloc): ...here.
(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
(dump_ada_double_name): Remove S parameter and compute the suffix.
(dump_ada_array_type): Add PARENT parameter. Simplify computation of
element type and deal with an anonymous one.
(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
(dump_generic_ada_node): Tweak. Adjust call to dump_ada_array_type
and remove reference to QUAL_UNION_TYPE.
(dump_nested_types): Make 2 passes on the fields and move bulk to...
(dump_nested_type): ...here. New function extracted from above.
Generate a full declaration for anonymous element type of arrays.
(print_ada_declaration): Really skip anonymous declarations. Remove
references to QUAL_UNION_TYPE. Adjust call to dump_ada_array_type.
Clean up processing of declarations of array types and objects.
(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
Remove obsolete code and tidy up.
From-SVN: r231069
Eric Botcazou [Mon, 30 Nov 2015 12:06:30 +0000 (12:06 +0000)]
* gcc-interface/trans.c (gigi): Fix initialization order.
From-SVN: r231068
Eric Botcazou [Mon, 30 Nov 2015 11:59:09 +0000 (11:59 +0000)]
osint.adb: Add use type clause for CRTL.size_t.
* osint.adb: Add use type clause for CRTL.size_t.
(C_String_Length): Return CRTL.size_t instead of Integer.
(To_Path_String_Access): Take CRTL.size_t instead of Integer.
(Get_Libraries_From_Registry): Use CRTL throughout.
(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
(To_Canonical_File_List): Likewise.
(To_Canonical_File_Spec): Likewise.
(To_Canonical_Path_Spec): Likewise.
(To_Host_Dir_Spec): Likewise.
(To_Host_File_Spec): Likewise.
(Update_Path): Use CRTL throughout.
* s-shasto.adb: Add with clause for System.CRTL.
(Initialize): Rename CRTL.strncpy instead of importing it manually.
From-SVN: r231066
Eric Botcazou [Mon, 30 Nov 2015 11:50:53 +0000 (11:50 +0000)]
gigi.h (create_var_decl): Adjust prototype.
* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
(create_subprog_decl): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
static_p into static_flag and add volatile_flag local variable.
Do not locally change the type of a volatile object, except for the
pointed-to type if the object is handled by reference. Adjust calls
to create_var_decl.
<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
(elaborate_expression_1): Adjust call to create_var_decl.
(gnat_to_gnu_field): Minor tweak.
* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
create_subprog_decl.
(build_raise_check): Likewise.
(Subprogram_Body_to_gnu): Likewise.
(create_temporary): Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(Exception_Handler_to_gnu_gcc): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
* gcc-interface/utils.c (maybe_pad_type): Likewise.
(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
handle them.
From-SVN: r231065
Eric Botcazou [Mon, 30 Nov 2015 11:46:32 +0000 (11:46 +0000)]
gigi.h (is_simple_additive_expression): Declare.
* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
NEG_P fields.
(find_loop_for): Add DISP and NEG_P parameters with default value.
Call is_simple_additive_expression to handle additive expressions.
(Loop_Statement_to_gnu): Deal with displacement in range checks.
(Raise_Error_to_gnu): Likewise.
(gnat_to_gnu): Add call to find_loop_for.
(is_simple_additive_expression): New function extracted from...
(gnat_invariant_expr): ...here. Call it on the expression.
From-SVN: r231064
Eric Botcazou [Mon, 30 Nov 2015 11:34:31 +0000 (11:34 +0000)]
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
From-SVN: r231063
Eric Botcazou [Mon, 30 Nov 2015 11:25:24 +0000 (11:25 +0000)]
ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
Remove obsolete code setting the alignment on some atomic types.
When the type has no alignment but needs strict alignment and has a
size clause, compute a maximum alignment and set it on the type.
(adjust_packed): Remove handling of -2 argument. Deal with TYPE_ALIGN
and TYPE_MAX_ALIGN directly.
(gnat_to_gnu_field): Do not document -2 as argument.
(components_to_record): Likewise.
* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
the record type beyond TYPE_MAX_ALIGN. Reset the latter on exit.
* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
(GNATLIBCFLAGS_FOR_C): Reformat.
(GCC_CFLAGS): Delete.
From-SVN: r231062
Kirill Yukhin [Mon, 30 Nov 2015 10:50:56 +0000 (10:50 +0000)]
[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.
gcc/
* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
(define_insn "*k<logic><mode>"): Use new iterator.
From-SVN: r231061
Eric Botcazou [Mon, 30 Nov 2015 09:43:55 +0000 (09:43 +0000)]
re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
PR target/28115
* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
(sparc_adjust_cost): Add missing space.
From-SVN: r231059
Richard Biener [Mon, 30 Nov 2015 08:24:06 +0000 (08:24 +0000)]
re PR c/68162 (Incompatible pointer type using a typedef)
2015-11-30 Richard Biener <rguenther@suse.de>
PR c/68162
* dwarf2out.c (gen_type_die_with_usage): Keep variant types
of arrays.
From-SVN: r231058
Venkataramanan Kumar [Mon, 30 Nov 2015 07:59:54 +0000 (07:59 +0000)]
tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.
2015-11-30 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
* tree-if-conv.c (struct ifc_dr): Add new tree
base_predicate field.
(hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
base ref, DR pairs and store base_predicate for write type DRs.
(ifcvt_memrefs_wont_trap): Guard checks with
-ftree-loop-if-convert-stores flag.
From-SVN: r231057
GCC Administrator [Mon, 30 Nov 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231056
Matthias Klose [Sun, 29 Nov 2015 22:41:00 +0000 (22:41 +0000)]
re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
2015-11-29 Matthias Klose <doko@ubuntu.com>
PR ada/68564
* gcc-interface/Makefile.in: Fix powerpc/powerpc64* and
mipsel/mips64el bitness detection.
Merge the mipsel/mips64el definitions into one.
From-SVN: r231051
Jan Hubicka [Sun, 29 Nov 2015 22:33:23 +0000 (23:33 +0100)]
cgraph.c (cgraph_node::make_local): No name is unique during incremental linking.
* cgraph.c (cgraph_node::make_local): No name is unique during
incremental linking.
* cgraph.h (can_be_discarded_p): Update comment; also common and
WEAK in named sections can be discarded; when doing incremental
link do not rely on resolution being the final one.
* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
When symbol can be discarded, do not rely on resolution info.
* symtab.c (symtab_node::nonzero_address): Take into account that
symbol can be discarded.
* ipa-visibility.c (update_visibility_by_resolution_info): Handle
definition correctly.
(function_and_variable_visibility): Do not set unique_name when
incrementally linking.
From-SVN: r231050
Jan Hubicka [Sun, 29 Nov 2015 19:50:04 +0000 (20:50 +0100)]
re PR c/67106 (ICE: verify_type failed: type variant differs by TYPE_PACKED. with -g -fpack-struct)
PR c/67106
* gcc.c-torture/compile/pr67106.c: New testcase.
* c-decl.c: Set TYPE_PACKED in variants.
From-SVN: r231049
Jan Hubicka [Sun, 29 Nov 2015 19:48:45 +0000 (20:48 +0100)]
re PR c++/67581 (ICE on transparent union with -g enabled on x86_64-linux-gnu (verify_type failed))
PR c/67581
* g++.dg/torture/pr67581.C: New testcase.
* c-family/c-common.c (handle_transparent_union_attribute): Update
also type variants.
From-SVN: r231048
Nathan Sidwell [Sun, 29 Nov 2015 18:54:41 +0000 (18:54 +0000)]
nvptx.md (const_0_operand, [...]): Delete.
* config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
(ctrap<mode>): Use const0_operand.
From-SVN: r231047
Jan Hubicka [Sun, 29 Nov 2015 18:51:28 +0000 (19:51 +0100)]
ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation dump
* ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
dump
From-SVN: r231046
David Edelsohn [Sun, 29 Nov 2015 18:11:54 +0000 (18:11 +0000)]
re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
PR target/28115
* config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
recog_memoized test for insn and check recog_memoized for dep_insn.
From-SVN: r231045
GCC Administrator [Sun, 29 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231042
Nathan Sidwell [Sat, 28 Nov 2015 23:25:48 +0000 (23:25 +0000)]
Add to correct changelog
From-SVN: r231039
Nathan Sidwell [Sat, 28 Nov 2015 23:24:20 +0000 (23:24 +0000)]
nvptx.h (FIRST_PARM_OFFSET): Add void cast.
* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
(FRAME_POINTER_CFA_OFFSET): Define.
(struct nvptx_args): Use 'tree' type.
(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
From-SVN: r231038
Tom de Vries [Sat, 28 Nov 2015 16:26:01 +0000 (16:26 +0000)]
Handle flinker-output in lto-wrapper
2015-11-28 Tom de Vries <tom@codesourcery.com>
* lto-wrapper.c (run_gcc): Handle -flinker-output argument.
From-SVN: r231033
Matthias Klose [Sat, 28 Nov 2015 02:39:20 +0000 (02:39 +0000)]
re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
2015-11-28 Matthias Klose <doko@ubuntu.com>
PR ada/68564
* gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection.
From-SVN: r231028
GCC Administrator [Sat, 28 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231027
Jakub Jelinek [Fri, 27 Nov 2015 19:33:33 +0000 (20:33 +0100)]
re PR libgomp/68579 (FAIL: libgomp.c/target-32.c execution test)
PR libgomp/68579
* task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
(gomp_create_target_task): Call it before freeing
GOMP_TARGET_TASK_DATA tasks.
From-SVN: r231023
Jonathan Wakely [Fri, 27 Nov 2015 18:38:48 +0000 (18:38 +0000)]
Copy-edit the Option Summary in invoke.texi
* doc/invoke.texi (Option Summary): Use negative form of
-Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
sort alphabetically and re-justify.
From-SVN: r231022
Vladimir Makarov [Fri, 27 Nov 2015 18:26:12 +0000 (18:26 +0000)]
re PR rtl-optimization/68536 (LRA ICEs with new arm pattern)
2015-11-27 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/68536
* lra.c (lra_emit_add): Add code for null base.
* lra-constraints.c (curr_insn_transform): Skip operators for
subreg reloads.
From-SVN: r231021
Pedro Alves [Fri, 27 Nov 2015 14:48:21 +0000 (14:48 +0000)]
PR other/61321 - demangler crash on casts in template parameters
The fix for bug 59195:
[C++ demangler handles conversion operator incorrectly]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195
unfortunately makes the demangler crash due to infinite recursion, in
case of casts in template parameters.
For example, with:
template<int> struct A {};
template <typename Y> void function_temp(A<sizeof ((Y)(999))>) {}
template void function_temp<int>(A<sizeof (int)>);
The 'function_temp<int>' instantiation above mangles to:
_Z13function_tempIiEv1AIXszcvT_Li999EEE
The demangler parses this as:
typed name
template
name 'function_temp'
template argument list
builtin type int
function type
builtin type void
argument list
template (*)
name 'A'
template argument list
unary operator
operator sizeof
unary operator
cast
template parameter 0 (**)
literal
builtin type int
name '999'
And after the fix for 59195, due to:
static void
d_print_cast (struct d_print_info *dpi, int options,
const struct demangle_component *dc)
{
...
/* For a cast operator, we need the template parameters from
the enclosing template in scope for processing the type. */
if (dpi->current_template != NULL)
{
dpt.next = dpi->templates;
dpi->templates = &dpt;
dpt.template_decl = dpi->current_template;
}
when printing the template argument list of A (what should be "<sizeof
(int)>"), the template parameter 0 (that is, "T_", the '**' above) now
refers to the first parameter of the the template argument list of the
'A' template (the '*' above), exactly what we were already trying to
print. This leads to infinite recursion, and stack exaustion. The
template parameter 0 should actually refer to the first parameter of
the 'function_temp' template.
Where it reads "for the cast operator" in the comment in d_print_cast
(above), it's really talking about a conversion operator, like:
struct A { template <typename U> explicit operator U(); };
We don't want to inject the template parameters from the enclosing
template in scope when processing a cast _expression_, only when
handling a conversion operator.
The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous,
and means _both_ 'conversion operator' and 'cast expression'.
Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type,
which does what DEMANGLE_COMPONENT_CAST does today, and making
DEMANGLE_COMPONENT_CAST just simply print its component subtree.
I think we could instead reuse DEMANGLE_COMPONENT_CAST and in
d_print_comp_inner still do:
@@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
d_print_comp (dpi, options, dc->u.s_extended_operator.name);
return;
case DEMANGLE_COMPONENT_CAST:
d_append_string (dpi, "operator ");
- d_print_cast (dpi, options, dc);
+ d_print_conversion (dpi, options, dc);
return;
leaving the unary cast case below calling d_print_cast, but seems to
me that spliting the component types makes it easier to reason about
the code.
g++'s testsuite actually generates three symbols that crash the
demangler in the same way. I've added those as tests in the demangler
testsuite as well.
And then this fixes PR other/61233 too, which happens to be a
demangler crash originally reported to GDB, at:
https://sourceware.org/bugzilla/show_bug.cgi?id=16957
Bootstrapped and regtested on x86_64 Fedora 20.
Also ran this through GDB's testsuite. GDB will require a small
update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using
DEMANGLE_COMPONENT_CAST in its sources.
libiberty/
2015-11-27 Pedro Alves <palves@redhat.com>
PR other/61321
PR other/61233
* demangle.h (enum demangle_component_type)
<DEMANGLE_COMPONENT_CONVERSION>: New value.
* cp-demangle.c (d_demangle_callback, d_make_comp): Handle
DEMANGLE_COMPONENT_CONVERSION.
(is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
instead of DEMANGLE_COMPONENT_CAST.
(d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
component if handling a conversion.
(d_count_templates_scopes, d_print_comp_inner): Handle
DEMANGLE_COMPONENT_CONVERSION.
(d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
of DEMANGLE_COMPONENT_CAST.
(d_print_cast): Rename as ...
(d_print_conversion): ... this. Adjust comments.
(d_print_cast): Rewrite - simply print the left subcomponent.
* cp-demint.c (cplus_demangle_fill_component): Handle
DEMANGLE_COMPONENT_CONVERSION.
* testsuite/demangle-expected: Add tests.
From-SVN: r231020
Kyrylo Tkachov [Fri, 27 Nov 2015 14:39:34 +0000 (14:39 +0000)]
Fix FAIL: gcc.c-torture/execute/
20050124-1.c -O2 (internal compiler error)
Revert
2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.
From-SVN: r231019
Nathan Sidwell [Fri, 27 Nov 2015 14:22:26 +0000 (14:22 +0000)]
nvptx-protos.h (nvptx_addr_space_from_address): Don't declare.
* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
Don't declare.
* config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
(nvptx_maybe_convert_symbolic_operand): Simplify.
(nvptx_addr_space_from_address): Delete.
(nvptx_print_operand): Adjust 'A' case.
From-SVN: r231016
Richard Biener [Fri, 27 Nov 2015 14:17:28 +0000 (14:17 +0000)]
re PR tree-optimization/68559 (Excessive peeling for gaps)
2015-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/68559
* tree-vect-data-refs.c (vect_analyze_group_access_1): Move
peeling for gap checks ...
* tree-vect-stmts.c (vectorizable_load): ... here and relax
for SLP.
* tree-vect-loop.c (vect_analyze_loop_2): Re-set
LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
* gcc.dg/vect/slp-perm-4.c: Adjust again.
* gcc.dg/vect/pr45752.c: Likewise.
From-SVN: r231015
Nathan Sidwell [Fri, 27 Nov 2015 13:57:09 +0000 (13:57 +0000)]
nvptx-protos.h (nvptx_record_needed_decl): Don't declaree.
* config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
declaree.
* config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
(nvptx_record_fndecl): Don't return value, remove force
argyment. Require fndecl.
(nvptx_record_libfunc): New.
(nvptx_record_needed_decl): Deteermine how to record decl here.
(nvptx_maybe_record_fnsym): New.
(nvptx_expand_call): Don't record libfuncs here,
(nvptx_maybe_convert_symbolic_operand): Use
nvptx_maye_record_fnsym.
(nvptx_assemble_integer): Reimplement with single switch.
(nvptx_output_call_insn): Register libfuncs here.
(nvptx_file_end): Adjust nvptx_record_fndecl call.
* config/nvptx/nvptx.md (expand_movdi): Don't call
nvptx_record_needed_decl.
From-SVN: r231013
Jakub Jelinek [Fri, 27 Nov 2015 12:12:35 +0000 (13:12 +0100)]
re PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64-bit mode))
PR rtl-optimization/68250
* gcc.c-torture/execute/pr68250.c: New test.
From-SVN: r231009
Marek Polacek [Fri, 27 Nov 2015 11:38:46 +0000 (11:38 +0000)]
* gcc.dg/pr63568.c: Convert to GIMPLE.
From-SVN: r231007
Richard Biener [Fri, 27 Nov 2015 11:17:51 +0000 (11:17 +0000)]
re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
2015-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/68553
* tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
generation for 1:1 permutations.
(vect_transform_slp_perm_load): Detect 1:1 permutations.
From-SVN: r231006
Bernd Schmidt [Fri, 27 Nov 2015 10:05:36 +0000 (10:05 +0000)]
Be more careful about barriers when speculating conditional stores.
* gimple.h (nonbarrier_call_p): Declare.
* gimple.c (nonbarrier_call_p): New function.
* tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
Also increment call phase for ASMs with vdef and potential barrier
calls.
From-SVN: r231005
Kyrylo Tkachov [Fri, 27 Nov 2015 09:52:09 +0000 (09:52 +0000)]
[RTL-ifcvt] Reject insns that are multiple_sets
* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.
From-SVN: r231004
Kyrylo Tkachov [Fri, 27 Nov 2015 09:49:38 +0000 (09:49 +0000)]
[RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN case
PR rtl-optimization/68506
* ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
first if emit_a exists or then_bb modifies 'b'. Reindent if-else
blocks.
* gcc.c-torture/execute/pr68506.c: New test.
From-SVN: r231003
Martin Liska [Fri, 27 Nov 2015 09:36:20 +0000 (10:36 +0100)]
Fix memory leak in cilk
PR c++/68312
* c-array-notation.c (fix_builtin_array_notation_fn):
Use release_vec_vec instead of vec::release.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
PR c++/68312
* cp-array-notation.c (expand_sec_reduce_builtin):
Likewise.
(create_array_refs): Replace argument with const reference.
(expand_an_in_modify_expr): Likewise.
(cp_expand_cond_array_notations): Likewise.
(expand_unary_array_notation_exprs): Likewise.
PR c++/68312
* array-notation-common.c (cilkplus_extract_an_triplets):
Release vector of vectors.
* cilk.c (gimplify_cilk_spawn): Free allocated memory.
PR c++/68312
* vec.h (release_vec_vec): New function.
From-SVN: r231001
Jakub Jelinek [Fri, 27 Nov 2015 09:01:20 +0000 (10:01 +0100)]
re PR tree-optimization/68552 (ICE in in expand_expr_real_2 with -O2 -ftree-vectorize)
PR tree-optimization/68552
* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
(expand_vec_perm): ... here. Do it regardless of vec_perm_const_optab
or whether v0 == v1.
From-SVN: r231000
Jakub Jelinek [Fri, 27 Nov 2015 08:59:55 +0000 (09:59 +0100)]
re PR c/63326 (whether a #pragma is a statement depends on the type of pragma)
PR c/63326
* c-parser.c (c_parser_compound_statement_nostart): If
last_label is true, use pragma_stmt instead of pragma_compound
as second c_parser_pragma argument.
(c_parser_omp_ordered, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
false as second argument to c_parser_skip_to_pragma_eol after
diagnosing standalone directives used in pragma_stmt context.
* parser.c (cp_parser_statement): Clear in_compound after labels.
* gcc.dg/gomp/barrier-2.c (f2): Expect another error after label.
* c-c++-common/gomp/pr63326.c: New test.
* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
in between case label and OpenMP standalone directives.
* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
From-SVN: r230999
Martin Liska [Fri, 27 Nov 2015 08:43:56 +0000 (09:43 +0100)]
Replace spaces with tabs and remove trailing whitespaces
* tree-ssa-uninit.c: Fix whitespaces in the source file.
The change is just automatical.
From-SVN: r230998
Martin Liska [Fri, 27 Nov 2015 08:39:00 +0000 (09:39 +0100)]
Fix memory leak in tree-chkp.c
* tree-chkp.c (chkp_make_static_bounds): Release buffer
used for string.
From-SVN: r230997
Martin Liska [Fri, 27 Nov 2015 08:37:44 +0000 (09:37 +0100)]
Fix parser memory leak in cilk_simd_fn_info
* parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
Release tokens.
From-SVN: r230996
Martin Liska [Fri, 27 Nov 2015 08:37:23 +0000 (09:37 +0100)]
Fix memory leak in loop_vec_info
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Do not release memory for comp_alias_ddrs.
* tree-vect-loop.c (destroy_loop_vec_info): Release
the memory for all loop_vec_info.
From-SVN: r230995
Martin Liska [Fri, 27 Nov 2015 08:36:52 +0000 (09:36 +0100)]
Fix memory leaks in IPA devirt
* ipa-devirt.c (ipa_devirt): Use auto_vec instead
of a local-scope vec.
(struct final_warning_record): Use auto_vec instead
of vec.
From-SVN: r230994
Richard Biener [Fri, 27 Nov 2015 08:31:44 +0000 (08:31 +0000)]
re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
2015-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/68553
* tree-vect-slp.c (vect_get_mask_element): Remove.
(vect_transform_slp_perm_load): Implement in a simpler way.
* gcc.dg/vect/pr45752.c: Adjust.
* gcc.dg/vect/slp-perm-4.c: Likewise.
From-SVN: r230993
GCC Administrator [Fri, 27 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r230990
Martin Sebor [Thu, 26 Nov 2015 23:31:32 +0000 (23:31 +0000)]
Correctly handle ARM targets.
* g++.dg/init/new45.C (cookie_size): New constant set to a value
appropriate for the target.
(operator new[]): Use it.
From-SVN: r230987
Alexandre Oliva [Thu, 26 Nov 2015 21:57:40 +0000 (21:57 +0000)]
[PR67753] adjust for padding when bypassing memory in assign_parm_setup_block
Storing a register in memory as a full word and then accessing the
same memory address under a smaller-than-word mode amounts to
right-shifting of the register word on big endian machines. So, if
BLOCK_REG_PADDING chooses upward padding for BYTES_BIG_ENDIAN, and
we're copying from the entry_parm REG directly to a pseudo, bypassing
any stack slot, perform the shifting explicitly.
This fixes the miscompile of function_return_val_10 in
gcc.target/aarch64/aapcs64/func-ret-4.c for target aarch64_be-elf
introduced in the first patch for 67753.
for gcc/ChangeLog
PR rtl-optimization/67753
PR rtl-optimization/64164
* function.c (assign_parm_setup_block): Right-shift
upward-padded big-endian args when bypassing the stack slot.
From-SVN: r230985
Maciej W. Rozycki [Thu, 26 Nov 2015 20:50:54 +0000 (20:50 +0000)]
MIPS/GCC/doc: Reorder `-mcompact-branches='
Move the `-mcompact-branches=' option out of the middle of a block of
floating-point options. The option is not related to FP in any way.
Place it immediately below other branch instruction selection options.
* doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
`-mcompact-branches='.
(MIPS Options): Likewise.
From-SVN: r230984
Mike Stump [Thu, 26 Nov 2015 20:48:29 +0000 (20:48 +0000)]
Fix whitespacing.
From-SVN: r230983
Jakub Jelinek [Thu, 26 Nov 2015 20:00:33 +0000 (21:00 +0100)]
* Makefile.in (build/genmatch.o): Depend on internal-fn.def.
From-SVN: r230982
Paolo Carlini [Thu, 26 Nov 2015 18:43:47 +0000 (18:43 +0000)]
re PR c++/67238 ([C++11][C++14]cc1plus crash for nested decltype expression in parameter pack in trailing return type when '-g' enabled)
2015-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67238
* g++.dg/cpp0x/pr67238.C: New.
From-SVN: r230981
Martin Sebor [Thu, 26 Nov 2015 18:01:02 +0000 (18:01 +0000)]
pr67876.C: Remove duplicate content.
gcc/testsuite/
* g++.dg/pr67876.C: Remove duplicate content.
From-SVN: r230980
Andreas Arnez [Thu, 26 Nov 2015 17:52:01 +0000 (17:52 +0000)]
cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location to start of loop body instead of start of loop.
gcc/cp/ChangeLog:
2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
* cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
to start of loop body instead of start of loop.
gcc/testsuite/ChangeLog:
2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
* g++.dg/guality/pr67192.C: New test.
From-SVN: r230979
David Edelsohn [Thu, 26 Nov 2015 16:57:23 +0000 (16:57 +0000)]
install.texi (Prerequisites): Increase ISL requirement to 0.14 or 0.15.
* doc/install.texi (Prerequisites): Increase ISL requirement to
0.14 or 0.15.
From-SVN: r230978
Jonathan Wakely [Thu, 26 Nov 2015 16:25:55 +0000 (16:25 +0000)]
Ensure another pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.
From-SVN: r230977
Torvald Riegel [Thu, 26 Nov 2015 16:10:54 +0000 (16:10 +0000)]
libitm: Use multiplicative hashing in the multi-lock TM method.
* method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
(ml_wt_dispatch::pre_write): Adapt.
(ml_wt_dispatch::pre_load): Likewise.
From-SVN: r230975
Jonathan Wakely [Thu, 26 Nov 2015 15:42:47 +0000 (15:42 +0000)]
Ensure pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.
From-SVN: r230973
Matthew Wahab [Thu, 26 Nov 2015 15:19:57 +0000 (15:19 +0000)]
[AArch64] Add NEON intrinsics vqrdmlah_lane and vqrdmlsh_lane.
gcc/
* gcc/config/aarch64/arm_neon.h
(vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
(vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
(vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
(vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
(vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
(vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
(vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
(vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
(vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
(vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
gcc/testsuite
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh_lane.inc: New file,
support code for vqrdml{as}h_lane tests.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlah_lane.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh_lane.c: New.
From-SVN: r230972
Matthew Wahab [Thu, 26 Nov 2015 15:13:02 +0000 (15:13 +0000)]
[AArch64] Add NEON intrinsics vqrdmlah and vqrdmlsh.
gcc/
* gcc/config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
(vqrdmlahq_s16, vqrdmlahq_s32): New.
(vqrdmlsh_s16, vqrdmlsh_s32): New.
(vqrdmlshq_s16, vqrdmlshq_s32): New.
gcc/testsuite
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh.inc: New file,
support code for vqrdml{as}h tests.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlah.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh.c: New.
From-SVN: r230971
Matthew Wahab [Thu, 26 Nov 2015 15:06:04 +0000 (15:06 +0000)]
[AArch64][dejagnu] Dejagnu support for ARMv8.1 Adv.SIMD.
gcc/testsuite
* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): New.
(check_effective_target_arm_arch_FUNC_ok)
(add_options_for_arm_arch_FUNC)
(check_effective_target_arm_arch_FUNC_multilib): Add "armv8.1-a"
to the list to be generated.
(check_effective_target_arm_v8_1a_neon_ok_nocache): New.
(check_effective_target_arm_v8_1a_neon_ok): New.
(check_effective_target_arm_v8_1a_neon_hw): New.
From-SVN: r230970
Matthew Wahab [Thu, 26 Nov 2015 14:59:10 +0000 (14:59 +0000)]
[AArch64] Add ACLE feature macro for ARMv8.1 Adv.SIMD instructions.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
ARM_FEATURE_QRDMX.
From-SVN: r230969
Pierre-Marie de Rodat [Thu, 26 Nov 2015 14:56:24 +0000 (14:56 +0000)]
DWARF: fix loc. descr. generation for DW_AT_static_link
gcc/ChangeLog:
PR debug/53927
* tree-nested.c (finalize_nesting_tree_1): Append a field to
hold the frame base address.
* dwarf2out.c (gen_subprogram_die): Generate for
DW_AT_static_link a location description that computes the value
of this field.
From-SVN: r230968
Tom de Vries [Thu, 26 Nov 2015 14:35:27 +0000 (14:35 +0000)]
Revert "Improve verification of loop->latch in verify_loop_structure"
2015-11-26 Tom de Vries <tom@codesourcery.com>
revert:
2015-11-25 Tom de Vries <tom@codesourcery.com>
* cfgloop.c (find_single_latch): New function, factored out of ...
(flow_loops_find): ... here.
(verify_loop_structure): Improve verification of loop->latch.
* cfgloop.h (find_single_latch): Declare.
* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
From-SVN: r230967
Matthew Wahab [Thu, 26 Nov 2015 14:17:04 +0000 (14:17 +0000)]
aarch64-simd-builtins.def: Add missing changes from r230962.
* config/aarch64/aarch64-simd-builtins.def:
Add missing changes from r230962.
From-SVN: r230966
Nathan Sidwell [Thu, 26 Nov 2015 14:13:28 +0000 (14:13 +0000)]
nvptx.c (write_func_decl_from_insn): Replace callee arg with name.
* config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
arg with name. Don't deal with split regs. Tweak formatting.
(nvptx_expand_call): Adjust write_func_decl_from_insn call.
(nvptx_output_call_insn): Don't deal with split regs here.
testsuite/
* gcc.target/nvptx/proto-1.c: Adjust expected asm.
From-SVN: r230965
Richard Biener [Thu, 26 Nov 2015 14:01:26 +0000 (14:01 +0000)]
re PR tree-optimization/68555 (gcc.dg/vect/bb-slp-10.c FAILs)
2015-11-26 Richard Biener <rguenther@suse.de>
PR testsuite/68555
* gcc.dg/vect/bb-slp-10.c: Adjust pattern, use target selector
and not XFAIL.
From-SVN: r230963
Matthew Wahab [Thu, 26 Nov 2015 13:57:42 +0000 (13:57 +0000)]
[AArch64] Add builtins for ARMv8.1 Adv.SIMD instructions.
* config/aarch64/aarch64-simd-builtins.def
(sqrdmlah, sqrdmlsh): New.
(sqrdmlah_lane, sqrdmlsh_lane): New.
(sqrdmlah_laneq, sqrdmlsh_laneq): New.
From-SVN: r230962
Richard Biener [Thu, 26 Nov 2015 13:51:40 +0000 (13:51 +0000)]
re PR tree-optimization/68554 (gcc.dg/vect/bb-slp-subgroups-2.c FAILs)
2015-11-26 Richard Biener <rguenther@suse.de>
PR testsuite/68554
* gcc.dg/vect/bb-slp-subgroups-2.c: Require vect_perm.
From-SVN: r230961
Matthew Wahab [Thu, 26 Nov 2015 13:50:47 +0000 (13:50 +0000)]
[AArch64] Add sqrdmah, sqrdmsh instructions.
* config/aarch64/aarch64-simd.md
(aarch64_sqmovun<mode>): Fix some white-space.
(aarch64_<sur>qmovun<mode>): Likewise.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
* config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
(UNSPEC_SQRDMLSH): New.
(SQRDMLH_AS): New.
(rdma_as): New.
From-SVN: r230959
Uros Bizjak [Thu, 26 Nov 2015 13:50:19 +0000 (14:50 +0100)]
* g++.dg/tree-ssa/pr61034.C: Scan tree dumps also for alpha*-*-*.
From-SVN: r230958
Richard Biener [Thu, 26 Nov 2015 13:46:59 +0000 (13:46 +0000)]
re PR tree-optimization/66721 (gcc.target/i386/pr61403.c FAILs)
2015-11-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/66721
* tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
iteration cost earlier. Re-do analysis without SLP when
vectorization using SLP fails and without has a chance to succeed.
From-SVN: r230956
Richard Biener [Thu, 26 Nov 2015 13:45:45 +0000 (13:45 +0000)]
genmatch.c (dt_simplify::gen_1): For generic wrap all multi-result-use captures in a SAVE_EXPR.
2015-11-26 Richard Biener <rguenther@suse.de>
* genmatch.c (dt_simplify::gen_1): For generic wrap all
multi-result-use captures in a SAVE_EXPR.
From-SVN: r230955
David Edelsohn [Thu, 26 Nov 2015 13:44:36 +0000 (08:44 -0500)]
Fix typo
From-SVN: r230954
Matthew Wahab [Thu, 26 Nov 2015 13:39:20 +0000 (13:39 +0000)]
[AArch64] Add support for ARMv8.1 Adv.SIMD instructions.
* config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
(TARGET_SIMD_RDMA): New.
From-SVN: r230953
David Edelsohn [Thu, 26 Nov 2015 13:27:21 +0000 (13:27 +0000)]
* configure: Regenerate.
From-SVN: r230950
David Edelsohn [Thu, 26 Nov 2015 13:24:19 +0000 (13:24 +0000)]
* configure: Regenerate.
From-SVN: r230949
David Edelsohn [Thu, 26 Nov 2015 13:20:59 +0000 (13:20 +0000)]
* libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols.
From-SVN: r230948
Paolo Carlini [Thu, 26 Nov 2015 13:14:45 +0000 (13:14 +0000)]
re PR c++/67249 ([concepts] ICE parsing f(pair<auto, concept>))
2015-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67249
* g++.dg/concepts/pr67249.C: New.
From-SVN: r230947
Kyrylo Tkachov [Thu, 26 Nov 2015 13:07:29 +0000 (13:07 +0000)]
[combine] Only restrict pure simplification in mult-extend subst case, allow other substitutions
* combine.c (subst): Do not return clobber of zero in widening mult
case. Just return x unchanged if it is a no-op substitution.
From-SVN: r230946
Richard Biener [Thu, 26 Nov 2015 12:15:43 +0000 (12:15 +0000)]
re PR testsuite/66799 (gcc.dg/vect/pr20122.c FAILs)
2015-11-26 Richard Biener <rguenther@suse.de>
PR testsuite/66799
* gcc.dg/vect/pr20122.c (main): Do not align Kernel, do not
vectorize init loop and adjust expected outcome.
From-SVN: r230943
Eric Botcazou [Thu, 26 Nov 2015 12:04:50 +0000 (12:04 +0000)]
re PR c++/68527 (ICE with -fdump-ada-spec on invalid C++ 11 code)
PR c++/68527
* c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
(print_ada_struct_decl): Likewise.
From-SVN: r230942
Richard Biener [Thu, 26 Nov 2015 11:53:13 +0000 (11:53 +0000)]
re PR testsuite/67203 (FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++11 scan-tree-dump-times fre2 "free" 10)
2015-11-26 Richard Biener <rguenther@suse.de>
PR testsuite/67203
* g++.dg/tree-ssa/pr61034.C: Make expected optimization result
dependent on PUSH_ARGS_REVERSED. Drop optimization level and
also monitor final optimization result.
From-SVN: r230940
Jakub Jelinek [Thu, 26 Nov 2015 11:52:11 +0000 (12:52 +0100)]
re PR rtl-optimization/68249 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR rtl-optimization/68249
PR rtl-optimization/68321
* gcc.c-torture/execute/pr68249.c: New test.
* gcc.c-torture/execute/pr68321.c: New test.
From-SVN: r230939
Ilya Enkovich [Thu, 26 Nov 2015 11:49:20 +0000 (11:49 +0000)]
re PR target/68416 ([MPX] GCC emits a lot of redundant bndmov instructions)
gcc/
2015-11-26 Vladimir Makarov <vmakarov@redhat.com>
PR target/68416
* config/i386/i386.h (enum reg_class): Add
bounds registers to ALL_REGS.
gcc/testsuite/
2015-11-26 Ilya Enkovich <enkovich.gnu@gmail.com>
PR target/68416
* gcc.target/i386/mpx/pr68416.c: New test.
From-SVN: r230938
Eric Botcazou [Thu, 26 Nov 2015 11:17:20 +0000 (11:17 +0000)]
Back out latest change.
From-SVN: r230935
Paolo Carlini [Thu, 26 Nov 2015 10:37:33 +0000 (10:37 +0000)]
re PR c++/67313 (ICE: in vague_linkage_p, at cp/decl2.c:1878 with -fno-weak and variadic template)
2015-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67313
* g++.dg/cpp0x/no-weak1.C: New.
From-SVN: r230934
Jakub Jelinek [Thu, 26 Nov 2015 10:18:50 +0000 (11:18 +0100)]
re PR tree-optimization/68128 (A huge regression in Parboil v2.5 OpenMP CUTCP test (2.5 times lower performance))
PR tree-optimization/68128
* tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
* gimplify.c: Include gimple-walk.h.
(enum gimplify_omp_var_data): Add GOVD_WRITTEN.
(omp_notice_variable): Set flags to n->value if n already
exists in target region, but we need to jump to do_outer.
(omp_shared_to_firstprivate_optimizable_decl_p,
omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
functions.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body. Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE.
(gimplify_adjust_omp_clauses): Add body argument, call
omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body. Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
non-local vars or local vars referenced from nested routines.
* omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE. Even for
TREE_READONLY, don't call use_pointer_for_field with non-NULL
second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
* gcc.dg/gomp/pr68128-1.c: New test.
* gcc.dg/gomp/pr68128-2.c: New test.
From-SVN: r230932
Paolo Bonzini [Thu, 26 Nov 2015 10:16:56 +0000 (10:16 +0000)]
implement-c.texi (Integers Implementation): Make GCC's promises about signed left shift stronger and clarify the cases when...
2015-11-26 Paolo Bonzini <bonzini@gnu.org>
* doc/implement-c.texi (Integers Implementation): Make GCC's promises
about signed left shift stronger and clarify the cases when they're
broken.
From-SVN: r230931
Kyrylo Tkachov [Thu, 26 Nov 2015 09:58:28 +0000 (09:58 +0000)]
[calls.c] PR rtl-optimization/67226: Take into account pretend_args_size when checking stack offsets for sibcall optimisation
2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/67226
* calls.c (store_one_arg): Take into account
crtl->args.pretend_args_size when checking for overlap between
arg->value and argblock + arg->locate.offset during sibcall
optimization.
* gcc.c-torture/execute/pr67226.c: New test.
Co-Authored-By: Bernd Schmidt <bernds@redhat.com>
From-SVN: r230929