gcc.git
9 years agocontracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Remove the guard concernin...
Hristian Kirtchev [Thu, 12 Nov 2015 11:15:12 +0000 (11:15 +0000)]
contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Remove the guard concerning entry bodies as it is spurious.

2015-11-12  Hristian Kirtchev  <kirtchev@adacore.com>

* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
Remove the guard concerning entry bodies as it is spurious.
(Analyze_Entry_Or_Subprogram_Contract): Skip the analysis of
Contract_Cases when not annotating the tree.
* einfo.adb: Node25 is now used as Contract_Wrapper.
(Contract_Wrapper): New routine.
(PPC_Wrapper): Removed.
(Set_Contract_Wrapper): New routine.
(Set_PPC_Wrapper): Removed.
(Write_Field25_Name): Add output for Contract_Wrapper. Remove
output for PPC_Wrapper.
* einfo.ads: New attribute Contract_Wrapper along with usage
in entities. Remove attribute PPC_Wrapper along with usage in nodes.
(Contract_Wrapper): New routine along with pragma Inline.
(PPC_Wrapper): Removed along with pragma Inline.
(Set_Contract_Wrapper): New routine along with pragma Inline.
(Set_PPC_Wrapper): Removed along with pragma Inline.
* exp_ch9.adb (Build_Contract_Wrapper): New routine.
(Build_PPC_Wrapper): Removed.
(Build_Protected_Entry): Code cleanup.
(Expand_Entry_Declaration): Create a contract wrapper
which now verifies Contract_Cases along with pre/postconditions.
(Expand_N_Task_Type_Declaration): There is no need to check
whether an entry has pre/postconditions as this is now done
in Build_Contract_Wrapper.
* sem_ch13.adb (Analyze_Aspect_Specifications): Pragma
Refined_Post is now properly inserted in entry bodies.
(Insert_Pragma): Add circuitry to insert in an entry body. Redo
the instance "header" circuitry. Remove the now obsolete special
case of inserting pre- conditions.
* sem_prag.adb (Analyze_Pragma): Pragma Contract_Cases now
applies to entries.
* sem_res.adb (Resolve_Entry_Call): Update the calls to
PPC_Wrapper.

From-SVN: r230236

9 years agoexp_attr.adb, [...]: Minor reformatting.
Hristian Kirtchev [Thu, 12 Nov 2015 11:12:23 +0000 (11:12 +0000)]
exp_attr.adb, [...]: Minor reformatting.

2015-11-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb, freeze.adb, sem_util.adb, sem_ch13.adb: Minor
reformatting.

From-SVN: r230235

9 years agoexp_attr.adb (Compile_Stream_Body_In_Scope): When compiling a stream operation for...
Ed Schonberg [Thu, 12 Nov 2015 11:09:59 +0000 (11:09 +0000)]
exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling a stream operation for an array type...

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

* exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling
a stream operation for an array type, install the scope of the
component type if it is private and not in scope, to prevent
spurious errors if the full view of the component type has
defaulted discriminants.

From-SVN: r230234

9 years agosem_ch13.adb (Analyze_Attribute_Definition_Clause): For a variable, if this is not...
Eric Botcazou [Thu, 12 Nov 2015 11:06:34 +0000 (11:06 +0000)]
sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a variable, if this is not an overlay, set on Treat_As_Volatile on it.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a
variable, if this is not an overlay, set on Treat_As_Volatile on it.
* gcc-interface/decl.c (E_Variable): Do not force the type to volatile
for address clauses. Tweak and adjust various RM references.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

* checks.ads: Minor comment fix.

From-SVN: r230233

9 years agognat_rm.texi, [...]: Update documentation.
Arnaud Charlet [Thu, 12 Nov 2015 11:03:35 +0000 (12:03 +0100)]
gnat_rm.texi, [...]: Update documentation.

        * gnat_rm.texi, gnat_ugn.texi,
        doc/gnat_ugn/platform_specific_information.rst,
        doc/gnat_ugn/gnat_and_program_execution.rst,
        doc/gnat_ugn/the_gnat_compilation_model.rst,
        doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation.

From-SVN: r230232

9 years agognat_rm.texi, [...]: Update documentation.
Arnaud Charlet [Thu, 12 Nov 2015 11:03:00 +0000 (12:03 +0100)]
gnat_rm.texi, [...]: Update documentation.

        * gnat_rm.texi, gnat_ugn.texi,
        doc/gnat_ugn/platform_specific_information.rst,
        doc/gnat_ugn/gnat_and_program_execution.rst,
        doc/gnat_ugn/the_gnat_compilation_model.rst,
        doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation.

From-SVN: r230231

9 years agoCode clean ups.
Arnaud Charlet [Thu, 12 Nov 2015 11:02:17 +0000 (12:02 +0100)]
Code clean ups.

From-SVN: r230230

9 years agoeinfo.ads (Overlays_Constant): Document usage for E_Constant.
Eric Botcazou [Thu, 12 Nov 2015 10:59:25 +0000 (10:59 +0000)]
einfo.ads (Overlays_Constant): Document usage for E_Constant.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.ads (Overlays_Constant): Document usage for E_Constant.
* freeze.adb (Warn_Overlay): Small reformatting.
(Check_Address_Clause): Deal specifically with deferred
constants.  For a variable or a non-imported constant
overlaying a constant object and with initialization value,
either remove the initialization or issue a warning.  Fix a
couple of typos.
* sem_util.adb (Note_Possible_Modification): Overhaul the condition for
the warning on modified constants and use Find_Overlaid_Entity instead
of doing it manually.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Compute and
set Overlays_Constant once on entry.  Do not treat the overlaid
entity as volatile.  Do not issue the warning on modified
constants here.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove
over-restrictive condition for the special treatment of deferred
constants.
<E_Variable>: Remove obsolete associated code.

From-SVN: r230229

9 years agotrans.c (gnat_to_gnu): Do not materialize renamed subprograms if only annotating...
Eric Botcazou [Thu, 12 Nov 2015 10:57:17 +0000 (10:57 +0000)]
trans.c (gnat_to_gnu): Do not materialize renamed subprograms if only annotating types.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Renaming_Decl>: Do
        not materialize renamed subprograms if only annotating types.

From-SVN: r230228

9 years agodecl.c (gnat_to_gnu_entity): Create IMPORTED_DECL nodes to describe the subprogram...
Arnaud Charlet [Thu, 12 Nov 2015 10:55:37 +0000 (11:55 +0100)]
decl.c (gnat_to_gnu_entity): Create IMPORTED_DECL nodes to describe the subprogram renamings which are...

2015-11-12  Pierre-Marie de Rodat  <derodat@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity): Create
        IMPORTED_DECL nodes to describe the subprogram renamings which
        are relevant at debug time.
        * gcc-interface/gigi.h (get_debug_scope): Add declaration.
        * gcc-interface/trans.c (Identifier_to_gnu): Consider
        N_Defining_Operator_Symbol as valid entities.
        (gnat_to_gnu): Handle N_Defining_Operator_Symbol the same way as
        other entities.  Introduce a specific handling for
        N_Subprogram_Renaming_Declaration: call gnat_to_gnu_entity on
        the entity defined for relevant ones.
        (process_decls): Process subprogram renaming declarations during
        the second pass only.
        * gcc-interface/utils.c (get_debug_scope): Make it external.
        Consider N_Defining_Operator_Symbol as valid entities.
        (gnat_write_global_declarations): Output debugging information
        for top-level imported declarations.
        * gcc-interface/Makefile.in: Fix typo.

From-SVN: r230227

9 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Nov 2015 10:49:07 +0000 (11:49 +0100)]
[multiple changes]

2015-11-12  Emmanuel Briot  <briot@adacore.com>

* s-os_lib.ads: Documentation update.

2015-11-12  Arnaud Charlet  <charlet@adacore.com>

* s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of
taskDelay to avoid confusion.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Simple_Function_Return): If the return
type is class-wide and the expression is a view conversion,
remove the conversion to prevent overriding of the tag, which
must be that of the object being returned.

2015-11-12  Tristan Gingold  <gingold@adacore.com>

* bindgen.adb (Gen_Adainit): Code cleanup.

2015-11-12  Hristian Kirtchev  <kirtchev@adacore.com>

* s-stalib.ads: Code cleanup.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Incomplete_Type_Decl): small optimization.
(Analyze_Subtype_Declaration): For floating point types,
inherit dimensions.
(OK_For_Limited_Init_In_05): Handle properly a conditional
expression whose condition is static, and is rewritten as the
branch that will be executed.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Resolve_Attribute, case 'Access): If the context
type is an access constant type, do not mark the attribute
reference as a possible modification of the prefix.

From-SVN: r230226

9 years ago2015-11-12 Steve Baird <baird@adacore.com>
Steve Baird [Thu, 12 Nov 2015 10:44:37 +0000 (10:44 +0000)]
2015-11-12  Steve Baird  <baird@adacore.com>

* sem_ch6.adb (Analyze_Procedure_Call) If CodePeer_Mode is True,
do not analyze the expression of a machine code insertion.
* sem_ch13.adb (Analyze_Code_Statement) If CodePeer_Mode is True,
mark the N_Code_Statement node as analyzed and do nothing else.

From-SVN: r230225

9 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Nov 2015 10:43:33 +0000 (11:43 +0100)]
[multiple changes]

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Check_Limited_Return): Make global to package
for use elsewhere.
(Analyze_Expression_Function): Remove duplicated code, pre-analyze
expression to capture names and call Check_Limited_Return so
that semantic checks are identical to those for regular functions
returning limited types.

2015-11-12  Gary Dismukes  <dismukes@adacore.com>

* bindgen.adb: Fix typo.
* sem_ch6.adb: Minor reformatting.

2015-11-12  Emmanuel Briot  <briot@adacore.com>

* s-os_lib.adb (Argument_String_To_List): fix handling of
windows separators

From-SVN: r230224

9 years agommx-1.c: Adjust for unified asm.
Christian Bruel [Thu, 12 Nov 2015 10:20:29 +0000 (11:20 +0100)]
mmx-1.c: Adjust for unified asm.

2015-11-12  Christian Bruel  <christian.bruel@st.com>

* gcc.target/arm/mmx-1.c: Adjust for unified asm.

From-SVN: r230223

9 years ago[PATCH][ARM]Fix addsi3_compare_op2 pattern.
Renlin Li [Thu, 12 Nov 2015 10:14:35 +0000 (10:14 +0000)]
[PATCH][ARM]Fix addsi3_compare_op2 pattern.

gcc/

2015-11-12  Renlin Li  <renlin.li@arm.com>

* config/arm/arm.md (addsi3_compare_op2): Make the order of
assembly pattern consistent with constraint order.

From-SVN: r230222

9 years ago* include/experimental/bits/string_view.tcc: Fix doxygen @file.
Jonathan Wakely [Thu, 12 Nov 2015 10:08:49 +0000 (10:08 +0000)]
* include/experimental/bits/string_view.tcc: Fix doxygen @file.

From-SVN: r230221

9 years agogen-pass-instances.awk: Simplify match regexp in handle_line
Tom de Vries [Thu, 12 Nov 2015 10:02:58 +0000 (10:02 +0000)]
gen-pass-instances.awk: Simplify match regexp in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Simplify match regexp.

From-SVN: r230220

9 years agogen-pass-instances.awk: Simplify init of postfix_starts_at in handle_line
Tom de Vries [Thu, 12 Nov 2015 10:02:49 +0000 (10:02 +0000)]
gen-pass-instances.awk: Simplify init of postfix_starts_at in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Simplify init of
postfix_starts_at.

From-SVN: r230219

9 years agogen-pass-instances.awk: Rename var where to call_starts_at in handle_line
Tom de Vries [Thu, 12 Nov 2015 10:02:40 +0000 (10:02 +0000)]
gen-pass-instances.awk: Rename var where to call_starts_at in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Rename var where to
call_starts_at.

From-SVN: r230218

9 years agoarc.c (gen_compare_reg): Swap operands also when we do not expand to rtl.
Claudiu Zissulescu [Thu, 12 Nov 2015 09:28:19 +0000 (10:28 +0100)]
arc.c (gen_compare_reg): Swap operands also when we do not expand to rtl.

2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (gen_compare_reg): Swap operands also when we
do not expand to rtl.

From-SVN: r230217

9 years agore PR tree-optimization/58497 (SLP vectorizes identical operations)
Richard Biener [Thu, 12 Nov 2015 09:00:37 +0000 (09:00 +0000)]
re PR tree-optimization/58497 (SLP vectorizes identical operations)

2015-11-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/58497
* tree-vect-generic.c: Include gimplify.h.
(tree_vec_extract): Lookup constant/constructor DEFs.
(do_cond): Unshare cond.

From-SVN: r230216

9 years agoi386.c (ix86_legitimate_combined_insn): Reject combined insn if the alignment of...
Uros Bizjak [Thu, 12 Nov 2015 08:11:11 +0000 (09:11 +0100)]
i386.c (ix86_legitimate_combined_insn): Reject combined insn if the alignment of vector mode memory operand is less...

* config/i386/i386.c (ix86_legitimate_combined_insn): Reject
combined insn if the alignment of vector mode memory operand
is less than ssememalign.

testsuite/ChangeLog:

* gcc.target/i386/sse-1.c (swizzle): Assume that a is
aligned to 64 bits.

From-SVN: r230215

9 years agogen-pass-instances.awk: Make print command clearer in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:47 +0000 (07:31 +0000)]
gen-pass-instances.awk: Make print command clearer in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Print parentheses and pass_name
explicitly.

From-SVN: r230213

9 years agogen-pass-instances.awk: Add pass_num, prefix and postfix vars in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:38 +0000 (07:31 +0000)]
gen-pass-instances.awk: Add pass_num, prefix and postfix vars in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Add pass_num, prefix and postfix
vars.

From-SVN: r230212

9 years agogen-pass-instances.awk: Add comments in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:30 +0000 (07:31 +0000)]
gen-pass-instances.awk: Add comments in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Add comments.

From-SVN: r230211

9 years agogen-pass-instances.awk: Rename len_of_end to len_of_close in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:22 +0000 (07:31 +0000)]
gen-pass-instances.awk: Rename len_of_end to len_of_close in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Rename len_of_end to
len_of_close.

From-SVN: r230210

9 years agogen-pass-instances.awk: Add len_of_call var in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:13 +0000 (07:31 +0000)]
gen-pass-instances.awk: Add len_of_call var in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Add len_of_call variable.

From-SVN: r230209

9 years agogen-pass-instances.awk: Use early-out in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:31:01 +0000 (07:31 +0000)]
gen-pass-instances.awk: Use early-out in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Restructure using early-out.

From-SVN: r230208

9 years agogen-pass-instances.awk: Unify semicolon use in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:30:52 +0000 (07:30 +0000)]
gen-pass-instances.awk: Unify semicolon use in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Unify semicolon use.

From-SVN: r230207

9 years agogen-pass-instances.awk: Remove unused var in handle_line
Tom de Vries [Thu, 12 Nov 2015 07:30:44 +0000 (07:30 +0000)]
gen-pass-instances.awk: Remove unused var in handle_line

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk (handle_line): Remove unused var line_length.

From-SVN: r230206

9 years agogen-pass-instances.awk: Add emacs indent setting
Tom de Vries [Thu, 12 Nov 2015 07:30:32 +0000 (07:30 +0000)]
gen-pass-instances.awk: Add emacs indent setting

2015-11-12  Tom de Vries  <tom@codesourcery.com>

* gen-pass-instances.awk: Add emacs indent setting.

From-SVN: r230205

9 years agofold-const.c (fold_binary_loc): Move Convert A/B/C to A/(B*C) to match.pd.
Naveen H.S [Thu, 12 Nov 2015 05:34:54 +0000 (05:34 +0000)]
fold-const.c (fold_binary_loc): Move Convert A/B/C to A/(B*C) to match.pd.

2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
to match.pd.
Move Convert A/(B/C) to (A/B)*C to match.pd.
Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
Move Optimize (X & (-A)) / A where A is a power of 2, to
X >> log2(A) to match.pd.

* match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
(rdiv @0 (rdiv:s @1 @2)): New simplifier.
(div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
New simplifier.
(rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.

From-SVN: r230204

9 years ago[ARM] remove unused variable
Charles Baylis [Thu, 12 Nov 2015 02:24:24 +0000 (02:24 +0000)]
[ARM] remove unused variable

gcc/Changelog

2015-11-12  Charles Baylis  <charles.baylis@linaro.org>

        * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
        variable.
        (neon_vst2_lane<mode>): Likewise.
        (neon_vld3_lane<mode>): Likewise.
        (neon_vst3_lane<mode>): Likewise.
        (neon_vld4_lane<mode>): Likewise.
        (neon_vst4_lane<mode>): Likewise.

From-SVN: r230203

9 years agodecl.c (duplicate_decls): When combining typedefs, remove the new type from the varia...
Jason Merrill [Thu, 12 Nov 2015 01:16:59 +0000 (20:16 -0500)]
decl.c (duplicate_decls): When combining typedefs, remove the new type from the variants list.

* decl.c (duplicate_decls): When combining typedefs, remove the
new type from the variants list.

From-SVN: r230202

9 years agopt.c (instantiate_class_template_1): Set function_depth around instantiation of lambd...
Jason Merrill [Thu, 12 Nov 2015 00:53:19 +0000 (19:53 -0500)]
pt.c (instantiate_class_template_1): Set function_depth around instantiation of lambda op().

* pt.c (instantiate_class_template_1): Set function_depth around
instantiation of lambda op().

From-SVN: r230201

9 years agoPreserve the original program while using graphite.
Aditya Kumar [Thu, 12 Nov 2015 00:37:47 +0000 (00:37 +0000)]
Preserve the original program while using graphite.

Earlier, graphite used to translate portions of the original program after
scop-detection in order to represent the SCoP into polyhedral model.  This was
required because each basic block was represented as independent basic block in
the polyhedral model. So all the cross-basic-block dependencies were translated
out-of-ssa.

With this patch those dependencies are also exposed to the ISL, so there is no
need to modify the original structure of the program.

After this patch we should be able to enable graphite at some default
optimization level.

Highlights:
Remove cross bb scalar to array translation
For reductions, add support for more than just INT_CST
Early bailout on codegen.
Verify loop-closed ssa structure during copy of renames
The uses of exprs should come from bb which dominates the bb
Collect the init value of close phi in loop-guard
Do not follow vuses for close-phi, postpone loop-close phi until the
    corresponding loop-phi is processed
Bail out if no bb found to place cond/loop -phis
Move insertion of liveouts at the end of codegen
Insert loop-phis in the loop-header.

This patch passes regtest and bootstrap with BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'

2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
      Sebastian Pop  <s.pop@samsung.com>

* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
  New member codegen_error
(translate_isl_ast_for_loop): Remove call to single_succ_edge and early return.
(translate_isl_ast_node_user): Early return in case of error.
(translate_isl_ast_to_gimple::translate_isl_ast): Same.
(translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
(add_parameters_to_ivs_params): Remove macro.
(graphite_regenerate_ast_isl): Add if_region pointer to region.
* graphite-poly.c (new_poly_dr): Remove macro.
(print_pdr): Same.
(new_gimple_poly_bb): Same.
(free_gimple_poly_bb): Same.
(print_scop_params): Same.
* graphite-poly.h (struct poly_dr): Same.
(struct poly_bb): Add new_bb.
(gbb_from_bb): Remove dead code.
(pbb_from_bb): Same.
* graphite-scop-detection.c (parameter_index_in_region_1): Same.
(parameter_index_in_region): Same.
(find_scop_parameters): Same.
(build_cross_bb_scalars_def): New.
(build_cross_bb_scalars_use): New.
(graphite_find_cross_bb_scalar_vars): New
(try_generate_gimple_bb): Reads and Writes.
(build_alias_set): Move.
(gather_bbs::before_dom_children): Gather bbs visited.
(build_scops): call build_alias_set.
* graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
(remove_simple_copy_phi): Delete.
(remove_invariant_phi): Delete.
(simple_copy_phi_p): Delete.
(reduction_phi_p): Delete.
(isl_id_for_dr): Remove unused param.
(parameter_index_in_region_1): Remove macro usage.
(set_scop_parameter_dim): Same.
(add_param_constraints): Same.
(add_conditions_to_constraints): Same
(build_scop_iteration_domain): Same.
(pdr_add_alias_set): Comment.
(add_scalar_version_numbers): New.
(build_poly_dr): ISL id.
(build_scop_drs): Move.
(build_poly_sr_1): Same.
(insert_stmts): Remove.
(build_poly_sr): New.
(new_pbb_from_pbb): Delete.
(insert_out_of_ssa_copy_on_edge): Delete.
(create_zero_dim_array): Delete.
(scalar_close_phi_node_p): Delete.
(propagate_expr_outside_region): Delete.
(rewrite_close_phi_out_of_ssa): Delete.
(rewrite_phi_out_of_ssa): Delete.
(rewrite_degenerate_phi): Delete.
(rewrite_reductions_out_of_ssa): Delete.
(rewrite_cross_bb_scalar_dependence): Delete.
(handle_scalar_deps_crossing_scop_limits):
(rewrite_cross_bb_scalar_deps): Delete.
(build_poly_scop): Remove calls to out-of-ssa functions.
* graphite.c (graphite_transform_loops): Early return in case of codegen error.
* sese.c (debug_rename_map_1): Delete.
(debug_rename_map): Delete.
(sese_record_loop): Remove macro.
(build_sese_loop_nests): Same.
(new_sese_info): Same.
(free_sese_info): Same.
(sese_insert_phis_for_liveouts):
(is_loop_closed_ssa_use): New.
(number_of_phi_nodes): New.
(bb_contains_loop_close_phi_nodes): New.
(bb_contains_loop_phi_nodes): New.
(phi_uses_name): New.
(is_valid_rename):
(get_rename): Add old_bb and loop_phi for more precise matching of
exprs.
(set_rename): Pass region.
(later_of_the_two): New.
(gsi_insert_earliest): New.
(collect_all_ssa_names): New.
(substitute_ssa_name): New.
(rename_all_uses): New.
(get_rename_from_scev): New.
(rename_uses): Pass old_bb for more precise matching of exprs.
(get_def_bb_for_const): New.
(get_new_name): New.
(get_loc): New.
(get_edges): New.
(copy_loop_phi_args): New.
(copy_loop_phi_nodes): New.
(get_loop_init_value): New.
(find_init_value): New.
(find_init_value_close_phi): New.
(copy_loop_close_phi_args): New.
(copy_loop_close_phi_nodes): New.
(add_phi_arg_for_new_expr): New.
(copy_cond_phi_args): New.
(copy_cond_phi_nodes): New.
(copy_phi_nodes): New.
(should_copy_to_new_region): New.
(set_rename_for_each_def): New.
(graphite_copy_stmts_from_block): Early return in case of error.
(copy_bb_and_scalar_dependences): Same.
* sese.h (vec_find): New.
(SESE_PARAMS): Delete.
(SESE_LOOPS): Delete.
(SESE_LOOP_NEST): Delete.
(sese_contains_loop): Remove macro usage.
(sese_nb_params): Same.
(struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230200

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

From-SVN: r230199

9 years ago* gcc.dg/pr65521.c: Fail on AIX.
David Edelsohn [Wed, 11 Nov 2015 21:32:09 +0000 (21:32 +0000)]
* gcc.dg/pr65521.c: Fail on AIX.

From-SVN: r230195

9 years agoimprove construction of the original schedule
Abderrazek Zaafrani [Wed, 11 Nov 2015 20:43:51 +0000 (20:43 +0000)]
improve construction of the original schedule

The patch builds the original schedule based on the now optimized scattering
dimension instead of building one based on the loop index only.

The implementation is simpler and catches more cases where the original schedule
and the transformed schedule are the same, such as the one below:

for (i = 0; i < 1000; i++)
{
  Temp = F[i];
  for (j = 0; j < 1000; j++)
 {
    D[j] = E[j]  * Temp;
    A[i][j] = A[i][j]  + B[i][j] * C[i][j] - D[j] ;
  }
  D[i] = E[i] * F[i];
}

  * graphite-sese-to-poly.c (build_scop_original_schedule): Call
  isl_union_map_add_map on every pbb->schedule.

From-SVN: r230191

9 years agoadd testsuite automatic dg-options and dg-do action for isl-ast-gen-* and fuse-*...
Sebastian Pop [Wed, 11 Nov 2015 20:43:45 +0000 (20:43 +0000)]
add testsuite automatic dg-options and dg-do action for isl-ast-gen-* and fuse-* files

        * gcc.dg/graphite/fuse-1.c: Adjust pattern.  Remove dg-do.
        * gcc.dg/graphite/fuse-2.c: Same.
        * gcc.dg/graphite/graphite.exp (opt_files): Add fuse-*.c and
        isl-ast-gen-*.c files.
        * gcc.dg/graphite/isl-ast-gen-blocks-1.c: Remove dg-do and dg-options.
        * gcc.dg/graphite/isl-ast-gen-blocks-2.c: Same.
        * gcc.dg/graphite/isl-ast-gen-blocks-3.c: Same.
        * gcc.dg/graphite/isl-ast-gen-blocks-4.c: Same.
        * gcc.dg/graphite/isl-ast-gen-if-1.c: Same.
        * gcc.dg/graphite/isl-ast-gen-if-2.c: Same.
        * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: Same.
        * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: Same.
        * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: Same.
        * gcc.dg/graphite/isl-ast-gen-user-1.c: Same.
        * gcc.dg/graphite/isl-codegen-loop-dumping.c: Remove.

From-SVN: r230190

9 years agoMake create_parallel_loop return void
Tom de Vries [Wed, 11 Nov 2015 20:22:22 +0000 (20:22 +0000)]
Make create_parallel_loop return void

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

* tree-parloops.c (create_parallel_loop): Return void.

From-SVN: r230189

9 years agoInsert new exit block only when needed in transform_to_exit_first_loop_alt
Tom de Vries [Wed, 11 Nov 2015 20:22:12 +0000 (20:22 +0000)]
Insert new exit block only when needed in transform_to_exit_first_loop_alt

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

* tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
block only when needed.

From-SVN: r230188

9 years ago* libsupc++/new_handler.cc: Fix for explicit constructor change.
Jonathan Wakely [Wed, 11 Nov 2015 17:29:39 +0000 (17:29 +0000)]
* libsupc++/new_handler.cc: Fix for explicit constructor change.

From-SVN: r230184

9 years agoLoop in std::this_thread sleep functions
Jonathan Wakely [Wed, 11 Nov 2015 17:08:51 +0000 (17:08 +0000)]
Loop in std::this_thread sleep functions

PR libstdc++/60421
* include/std/thread (this_thread::sleep_for): Retry on EINTR.
(this_thread::sleep_until): Retry if time not reached.
* src/c++11/thread.cc (__sleep_for): Retry on EINTR.
* testsuite/30_threads/this_thread/60421.cc: Test interruption and
non-steady clocks.

From-SVN: r230183

9 years agoalpha-protos.h (print_operand): Remove.
Uros Bizjak [Wed, 11 Nov 2015 16:17:47 +0000 (17:17 +0100)]
alpha-protos.h (print_operand): Remove.

* config/alpha/alpha-protos.h (print_operand): Remove.
(print_operand_address): Remove.
* config/alpha/alpha.h (PRINT_OPERAND): Remove.
(PRINT_OPERAND_ADDRESS): Remove.
(PRINT_OPERAND_PUNCT_VALID_P): Remove.
* config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
(TARGET_PRINT_OPERAND_ADDRESS): New hook define.
(TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
(print_operand_address): Rename to...
(alpha_print_operand_address): ...this and make static.
(print_operand): Rename to...
(alpha_print_operand): ...this and make static.
(alpha_print_operand_punct_valid_p): New static function.

From-SVN: r230181

9 years agoCorrect the Changelog date of the previous commit.
Ville Voutilainen [Wed, 11 Nov 2015 14:56:17 +0000 (16:56 +0200)]
Correct the Changelog date of the previous commit.

From-SVN: r230177

9 years agoLWG 2510, make the default constructors of library tag types explicit.
Ville Voutilainen [Wed, 11 Nov 2015 14:47:19 +0000 (16:47 +0200)]
LWG 2510, make the default constructors of library tag types explicit.

2015-11-10  Ville Voutilainen  <ville.voutilainen@gmail.com>

LWG 2510, make the default constructors of library tag types
explicit.
* include/bits/mutex.h (defer_lock_t, try_lock_t,
adopt_lock_t): Add an explicit default constructor.
* include/bits/stl_pair.h (piecewise_construct_t): Likewise.
* include/bits/uses_allocator.h (allocator_arg_t): Likewise.
* libsupc++/new (nothrow_t): Likewise.
* testsuite/17_intro/tag_type_explicit_ctor.cc: New.

From-SVN: r230175

9 years agore PR c/68107 (Non-VLA type whose size is half or more of the address space construct...
Marek Polacek [Wed, 11 Nov 2015 14:47:03 +0000 (14:47 +0000)]
re PR c/68107 (Non-VLA type whose size is half or more of the address space constructed via a pointer)

PR c/68107
PR c++/68266
* c-common.c (valid_array_size_p): New function.
* c-common.h (valid_array_size_p): Declare.

* c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
checking the size of an array.

* decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
checking the size of an array.

* c-c++-common/pr68107.c: New test.
* g++.dg/init/new38.C (large_array_char): Adjust dg-error.
(large_array_char_template): Likewise.
* g++.dg/init/new44.C: Adjust dg-error.

From-SVN: r230174

9 years agotree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment): Declare.
Richard Biener [Wed, 11 Nov 2015 14:40:36 +0000 (14:40 +0000)]
tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment): Declare.

2015-11-11  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
Declare.
(vect_analyze_data_refs_alignment): Make loop vect specific.
(vect_verify_datarefs_alignment): Likewise.
* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
Add missing continue.
(vect_compute_data_ref_alignment): Export.
(vect_compute_data_refs_alignment): Merge into...
(vect_analyze_data_refs_alignment): ... this.
(verify_data_ref_alignment): Split out from ...
(vect_verify_datarefs_alignment): ... here.
(vect_slp_analyze_and_verify_node_alignment): New function.
(vect_slp_analyze_and_verify_instance_alignment): Likewise.
* tree-vect-slp.c (vect_supported_load_permutation_p): Remove
misplaced checks on alignment.
(vect_slp_analyze_bb_1): Add fatal output parameter.  Do
alignment analysis after SLP discovery and do it per instance.
(vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
bother to re-try using different vector sizes.

From-SVN: r230173

9 years agore PR bootstrap/68271 (Boostrap fails on x86_64-apple-darwin14 at r230084)
Dominique d'Humieres [Wed, 11 Nov 2015 14:30:16 +0000 (15:30 +0100)]
re PR bootstrap/68271 (Boostrap fails on x86_64-apple-darwin14 at r230084)

gcc/cp/ChangeLog
2015-11-11  Dominique d'Humieres <dominiq@lps.ens.fr>

PR bootstrap/68271
* parser.h (cp_token): Update pragma_kind to 8.

gcc/c-family/ChangeLog
2015-11-11  Dominique d'Humieres <dominiq@lps.ens.fr>

PR bootstrap/68271
* c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.

From-SVN: r230172

9 years agocount-headers: Initial file.
Andrew MacLeod [Wed, 11 Nov 2015 14:28:46 +0000 (14:28 +0000)]
count-headers: Initial file.

2015-11-11  Andrew MacLeod  <amacleod@redhat.com>

* count-headers: Initial file.
* gcc-order-headers: Initial file.
* graph-header-logs: Initial file.
* graph-include-web: Initial file.
* headerutils.py: Initial file.
* included-by: Initial file.
* README: Initial file.
* reduce-headers: Initial file.
* replace-header: Initial file.
* show-headers: Initial file.

From-SVN: r230171

9 years agore PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)
Eric Botcazou [Wed, 11 Nov 2015 14:24:39 +0000 (14:24 +0000)]
re PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)

PR target/67265
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.

From-SVN: r230170

9 years agogimplify.c (enum omp_region_type): Add ORT_ACC, ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_A...
Nathan Sidwell [Wed, 11 Nov 2015 14:24:09 +0000 (14:24 +0000)]
gimplify.c (enum omp_region_type): Add ORT_ACC, ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.

gcc/
* gcc/gimplify.c (enum  omp_region_type): Add ORT_ACC,
ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
(gimple_add_tmp_var): Add ORT_ACC checks.
(gimplify_var_or_parm_decl): Likewise.
(omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a
mask.
(omp_add_variable): Look in outer contexts for openacc and allow
reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA
checks.
(omp_notice_variable, omp_is_private, omp_check_private): Add
ORT_ACC checks.
(gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
Permit private openacc reductions.
(gimplify_oacc_cache): Specify ORT_ACC.
(gimplify_omp_workshare): Adjust OpenACC region types.
(gimplify_omp_target_update): Likewise.
* gcc/omp-low.c (scan_sharing_clauses): Remove Openacc
firstprivate sorry.
(lower-rec_input_clauses): Don't handle openacc firstprivate
references here.
(lower_omp_target): Emit initializers for openacc firstprivate vars.

gcc/testsuite/
* gfortran.dg/goacc/private-3.f95: Remove xfail.
* gfortran.dg/goacc/combined_loop.f90: Remove xfail.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Remove xfail.
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Remove xfail.
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r230169

9 years agore PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)
Eric Botcazou [Wed, 11 Nov 2015 14:22:43 +0000 (14:22 +0000)]
re PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)

PR target/67265
* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
frame pointer for stack checking if non-call exceptions aren't used.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.

From-SVN: r230168

9 years agors6000: Extend 20050603-3.c testcase to 64-bit
Segher Boessenkool [Wed, 11 Nov 2015 14:21:25 +0000 (15:21 +0100)]
rs6000: Extend 20050603-3.c testcase to 64-bit

The testcase used to fail on 64-bit, but it was disabled there.
This patch makes it run there, and beefs up the checking of the
generated code a bit.

gcc/testsuite/
* gcc.target/powerpc/20050603-3.c: Don't restrict to ilp32.  Do more
tests for the expected generated code.

From-SVN: r230167

9 years agodecl.c: Remove unused header files.
Andrew MacLeod [Wed, 11 Nov 2015 14:18:08 +0000 (14:18 +0000)]
decl.c: Remove unused header files.

ada

* gcc-interface/decl.c: Remove unused header files.
* gcc-interface/misc.c: Likewise.
* gcc-interface/targtyps.c: Likewise.
* gcc-interface/trans.c: Likewise.
* gcc-interface/utils.c: Likewise.
c

* c-array-notation.c: Remove unused header files.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
* gccspec.c: Likewise.

c-family

* array-notation-common.c: Remove unused header files.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.

cp

* call.c: Remove unused header files.
* class.c: Likewise.
* constexpr.c: Likewise.
* cp-array-notation.c: Likewise.
* cp-cilkplus.c: Likewise.
* cp-gimplify.c: Likewise.
* cp-lang.c: Likewise.
* cp-objcp-common.c: Likewise.
* cp-ubsan.c: Likewise.
* cvt.c: Likewise.
* cxx-pretty-print.c: Likewise.
* decl.c: Likewise.
* decl2.c: Likewise.
* dump.c: Likewise.
* error.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* friend.c: Likewise.
* g++spec.c: Likewise.
* init.c: Likewise.
* lambda.c: Likewise.
* lex.c: Likewise.
* mangle.c: Likewise.
* method.c: Likewise.
* name-lookup.c: Likewise.
* optimize.c: Likewise.
* parser.c: Likewise.
* pt.c: Likewise.
* ptree.c: Likewise.
* repo.c: Likewise.
* rtti.c: Likewise.
* search.c: Likewise.
* semantics.c: Likewise.
* tree.c: Likewise.
* typeck.c: Likewise.
* typeck2.c: Likewise.
* vtable-class-hierarchy.c: Likewise.

Fortran

* array.c: Remove unused header files.
* convert.c: Likewise.
* cpp.c: Likewise.
* decl.c: Likewise.
* f95-lang.c: Likewise.
* frontend-passes.c: Likewise.
* iresolve.c: Likewise.
* match.c: Likewise.
* module.c: Likewise.
* options.c: Likewise.
* parse.c: Likewise.
* target-memory.c: Likewise.
* trans-array.c: Likewise.
* trans-common.c: Likewise.
* trans-const.c: Likewise.
* trans-decl.c: Likewise.
* trans-expr.c: Likewise.
* trans-intrinsic.c: Likewise.
* trans-io.c: Likewise.
* trans-openmp.c: Likewise.
* trans-stmt.c: Likewise.
* trans-types.c: Likewise.
* trans.c: Likewise.

go

* go-backend.c: Remove unused header files.
* go-gcc.cc: Likewise.
* go-lang.c: Likewise.
* gospec.c: Likewise.

Java

* boehm.c: Remove unused header files.
* builtins.c: Likewise.
* class.c: Likewise.
* constants.c: Likewise.
* decl.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* java-gimplify.c: Likewise.
* jcf-dump.c: Likewise.
* jcf-io.c: Likewise.
* jcf-parse.c: Likewise.
* jvgenmain.c: Likewise.
* lang.c: Likewise.
* mangle.c: Likewise.
* mangle_name.c: Likewise.
* resource.c: Likewise.
* typeck.c: Likewise.
* verify-glue.c: Likewise.
* verify-impl.c: Likewise.
* zextract.c: Likewise.

jit

* dummy-frontend.c: Remove unused header files.
* jit-builtins.c: Likewise.
* jit-playback.c: Likewise.
* jit-recording.c: Likewise.
* jit-spec.c: Likewise.
* libgccjit.c: Likewise.

lto

* lto-lang.c: Remove unused header files.
* lto-object.c: Likewise.
* lto-partition.c: Likewise.
* lto-symtab.c: Likewise.
* lto.c: Likewise.

objc

* objc-act.c: Remove unused header files.
* objc-encoding.c: Likewise.
* objc-gnu-runtime-abi-01.c: Likewise.
* objc-lang.c: Likewise.
* objc-map.c: Likewise.
* objc-next-runtime-abi-01.c: Likewise.
* objc-next-runtime-abi-02.c: Likewise.
* objc-runtime-shared-support.c: Likewise.

objcp

* objcp-decl.c: Remove unused header files.
* objcp-lang.c: Likewise.

From-SVN: r230166

9 years agosimplify-rtx: Simplify trunc of and of shiftrt
Segher Boessenkool [Wed, 11 Nov 2015 14:09:30 +0000 (15:09 +0100)]
simplify-rtx: Simplify trunc of and of shiftrt

If we have

(truncate:M1 (and:M2 (lshiftrt:M2 (x:M2) C) C2))

we can write it instead as

(and:M1 (lshiftrt:M1 (truncate:M1 (x:M2)) C) C2)

(if that is valid, of course), which has smaller modes for the
binary ops, and the truncate can often simplify further (if "x"
is a register, for example).

* gcc/simplify-rtx.c (simplify_truncation): Simplify TRUNCATE
of AND of [LA]SHIFTRT.

From-SVN: r230164

9 years agore PR rtl-optimization/68287 (conditional jump or move depends on uninitialized value...
Martin Liska [Wed, 11 Nov 2015 14:04:47 +0000 (15:04 +0100)]
re PR rtl-optimization/68287 (conditional jump or move depends on uninitialized value in lra-lives.c:1048)

Fix PR rtl-optimization/68287

PR rtl-optimization/68287
* lra-lives.c (lra_create_live_ranges_1): Reserve the right
number of elements.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r230163

9 years agoUndo delay slot filling and use compact branches in selected cases.
Simon Dardis [Wed, 11 Nov 2015 13:40:08 +0000 (13:40 +0000)]
Undo delay slot filling and use compact branches in selected cases.

gcc/
* config/mips/mips.c (mips_breakable_sequence_p): New function.
(mips_break_sequence): New function.
(mips_reorg_process_insns) Use them. Use compact branches in selected
          situations.

gcc/testsuite/
        * gcc.target/mips/split-ds-sequence.c: New test.

From-SVN: r230160

9 years agoFix whitespace+typo from "Share code from fold_array_ctor_reference with fold."
Alan Lawrence [Wed, 11 Nov 2015 13:31:46 +0000 (13:31 +0000)]
Fix whitespace+typo from "Share code from fold_array_ctor_reference with fold."

* fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.

From-SVN: r230159

9 years ago[ARM] PR67305, tighten neon_vector_mem_operand on eliminable registers
Jiong Wang [Wed, 11 Nov 2015 12:30:46 +0000 (12:30 +0000)]
[ARM] PR67305, tighten neon_vector_mem_operand on eliminable registers

2015-11-11  Jiong Wang  <jiong.wang@arm.com>
    Jim Wilson  <wilson@gcc.gnu.org>

PR target/67305
* config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
be true and eliminable registers mentioned.

Co-Authored-By: Jim Wilson <wilson@gcc.gnu.org>
From-SVN: r230158

9 years agoarc-common.c (arc_handle_option): Handle ARCv2 options.
Claudiu Zissulescu [Wed, 11 Nov 2015 12:28:37 +0000 (13:28 +0100)]
arc-common.c (arc_handle_option): Handle ARCv2 options.

2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>

* common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
options.
* config/arc/arc-opts.h: Add ARCv2 CPUs.
* config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
* config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
situation, and store instructions with large offsets.
(arc_secondary_reload_conv): New function.
(arc_init): Add ARCv2 options.
(arc_conditional_register_usage): Select the proper register usage
for ARCv2 processors.
(arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
architecture.
(arc_compute_function_type): Likewise.
(arc_print_operand): Handle new ARCv2 punctuation characters.
(arc_return_in_memory): ARCv2 ABI returns in registers up to 16
bytes.
(workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
function.
(arc_reorg, arc_hazard): Use it.
* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and
__EM__.
(ASM_SPEC): Add ARCv2 options.
(TARGET_NORM): ARC HS has norm instructions by default.
(TARGET_OPTFPE): Use optimized floating point emulation for ARC
HS.
(TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
(TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI):
Define.
(SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
Likewise.
(TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
(TARGET_LP_WR_INTERLOCK): Likewise.
* config/arc/arc.md
(commutative_binary_mult_comparison_result_used, movsicc_insn)
(mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
(umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
(umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
Use it for ARCv2.
(mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
(umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
(prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
(arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
(extzvsi): New pattern.
* config/arc/arc.opt: New ARCv2 options.
* config/arc/arcEM.md: New file.
* config/arc/arcHS.md: Likewise.
* config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
values.
(Cm2): A signed 9-bit integer constant constraint.
(C62): An unsigned 6-bit integer constant constraint.
(C16): A signed 16-bit integer constant constraint.
* config/arc/predicates.md (mult_operator): Add ARCv2 processort.
(short_const_int_operand): New predicate.
* config/arc/t-arc-newlib: Add ARCv2 multilib options.
* doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
-mcode-density and -mdiv-rem.

From-SVN: r230156

9 years agoFix typo.
Julia Koval [Wed, 11 Nov 2015 11:47:00 +0000 (12:47 +0100)]
Fix typo.

gcc/
* config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.

From-SVN: r230155

9 years agoFix target arch attribute for Skylake.
Julia Koval [Wed, 11 Nov 2015 11:40:50 +0000 (12:40 +0100)]
Fix target arch attribute for Skylake.

gcc/
* config/i386/i386.c: Handle "skylake" and
"skylake-avx512".

gcc/testsuite/
* g++.dg/ext/mv16.C: New functions.

From-SVN: r230153

9 years agoFix various memory leaks
Martin Liska [Wed, 11 Nov 2015 11:21:44 +0000 (12:21 +0100)]
Fix various memory leaks

* gimple-ssa-strength-reduction.c (create_phi_basis):
Use auto_vec.
* passes.c (release_dump_file_name): New function.
(pass_init_dump_file): Used from this function.
(pass_fini_dump_file): Likewise.
* tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
* var-tracking.c (vt_initialize): Use pool_allocator.

From-SVN: r230152

9 years agodp-hack.h: Add support for ARCHS.
Claudiu Zissulescu [Wed, 11 Nov 2015 11:04:32 +0000 (12:04 +0100)]
dp-hack.h: Add support for ARCHS.

2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/dp-hack.h: Add support for ARCHS.
* config/arc/ieee-754/divdf3.S: Likewise.
* config/arc/ieee-754/divsf3-stdmul.S: Likewise.
* config/arc/ieee-754/muldf3.S: Likewise.
* config/arc/ieee-754/mulsf3.S: Likewise
* config/arc/lib1funcs.S: Likewise
* config/arc/gmon/dcache_linesz.S: Don't read the build register
for ARCv2 cores.
* config/arc/gmon/profil.S (__profil, __profil_irq): Don't profile
for ARCv2 cores.
* config/arc/ieee-754/arc-ieee-754.h (MPYHU, MPYH): Define.
* config/arc/t-arc700-uClibc: Remove hard selection for ARC 700
cores.

From-SVN: r230151

9 years ago[Patch] PR tree-optimization/68234 Improve range info for loop Phi node
Richard Biener [Wed, 11 Nov 2015 10:51:31 +0000 (10:51 +0000)]
[Patch] PR tree-optimization/68234 Improve range info for loop Phi node

2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
    Jiong Wang      <jiong.wang@arm.com>
gcc/
  PR tree-optimization/68234
  * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
  node which estimiated to be VR_VARYING initially.

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

Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
From-SVN: r230150

9 years agoTighten up checks when tying chains.
Robert Suchanek [Wed, 11 Nov 2015 10:36:00 +0000 (10:36 +0000)]
Tighten up checks when tying chains.

gcc/
* regname.c (scan_rtx_reg): Check the matching number of consecutive
registers when tying chains.
(build_def_use): Move terminated_this_insn earlier in the function.

From-SVN: r230149

9 years agore PR fortran/67826 (gcc/fortran/openmp.c:1808: bad test ?)
Dominique d'Humieres [Wed, 11 Nov 2015 10:30:25 +0000 (11:30 +0100)]
re PR fortran/67826 (gcc/fortran/openmp.c:1808: bad test ?)

2015-11-11  Dominique d'Humieres <dominiq@lps.ens.fr>

PR fortran/67826
* openmp.c (gfc_omp_udr_find): Fix typo.

From-SVN: r230148

9 years agore PR libstdc++/64651 (std::rethrow_exception not found by ADL)
Jonathan Wakely [Wed, 11 Nov 2015 10:08:23 +0000 (10:08 +0000)]
re PR libstdc++/64651 (std::rethrow_exception not found by ADL)

PR libstdc++/64651
* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
to __exception_ptr namespace.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
Remove unnecessary test variables.

From-SVN: r230147

9 years agogcc: configure: fix test == bashisms
Mike Frysinger [Wed, 11 Nov 2015 08:06:03 +0000 (08:06 +0000)]
gcc: configure: fix test == bashisms

From-SVN: r230146

9 years agoaix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and machine asserts.
David Edelsohn [Wed, 11 Nov 2015 04:01:30 +0000 (04:01 +0000)]
aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and machine asserts.

* config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
machine asserts.  Update defines for 64 bit.

From-SVN: r230145

9 years ago[ARM] PR63870 Remove error for invalid lane numbers
Charles Baylis [Wed, 11 Nov 2015 01:11:20 +0000 (01:11 +0000)]
[ARM] PR63870 Remove error for invalid lane numbers

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
lane number.
(neon_vst1_lane<mode>): Likewise.
(neon_vld2_lane<mode>): Likewise.
(neon_vst2_lane<mode>): Likewise.
(neon_vld3_lane<mode>): Likewise.
(neon_vst3_lane<mode>): Likewise.
(neon_vld4_lane<mode>): Likewise.
(neon_vst4_lane<mode>): Likewise.

From-SVN: r230144

9 years ago[ARM] PR63870 Mark lane indices of vldN/vstN with appropriate qualifier
Charles Baylis [Wed, 11 Nov 2015 01:08:43 +0000 (01:08 +0000)]
[ARM] PR63870 Mark lane indices of vldN/vstN with appropriate qualifier

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
qualifier_struct_load_store_lane_index.
(arm_storestruct_lane_qualifiers) Likewise.
* config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
big-endian.
(neon_vst1_lane<mode>) Likewise.
(neon_vld2_lane<mode>) Likewise.
(neon_vst2_lane<mode>) Likewise.
(neon_vld3_lane<mode>) Likewise.
(neon_vst3_lane<mode>) Likewise.
(neon_vld4_lane<mode>) Likewise.
(neon_vst4_lane<mode>) Likewise.

From-SVN: r230143

9 years ago[ARM] PR63870 Add qualifiers for NEON builtins
Charles Baylis [Wed, 11 Nov 2015 01:05:16 +0000 (01:05 +0000)]
[ARM] PR63870 Add qualifiers for NEON builtins

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
qualifier_struct_load_store_lane_index.
(builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
(arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
argument qualifiers.
(arm_expand_neon_builtin): Handle new NEON argument qualifier.
* config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.

From-SVN: r230142

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

From-SVN: r230141

9 years agonvptx.opt (moptimize): New flag.
Nathan Sidwell [Tue, 10 Nov 2015 22:29:20 +0000 (22:29 +0000)]
nvptx.opt (moptimize): New flag.

* config/nvptx/nvptx.opt (moptimize): New flag.
* config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
default.
(nvptx_optimize_inner): New.
(nvptx_process_pars): Call it when optimizing.
* doc/invoke.texi (Nvidia PTX Options): Document -moptimize.

From-SVN: r230137

9 years agors6000.c (rs6000_secondary_reload_direct_move): Remove redundant code.
Bill Schmidt [Tue, 10 Nov 2015 21:52:50 +0000 (21:52 +0000)]
rs6000.c (rs6000_secondary_reload_direct_move): Remove redundant code.

2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
Remove redundant code.

From-SVN: r230136

9 years agolibgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields
Ian Lance Taylor [Tue, 10 Nov 2015 21:38:30 +0000 (21:38 +0000)]
libgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields

    Before Solaris 12 the sendfile function is found in -lsendfile, so look
    for it there.

    Solaris 12 adds some more types that use _in6_addr_t, that need to be
    edited in mksysinfo.

    Patch by Rainer Orth.

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

From-SVN: r230132

9 years ago[PATCH] Fix minor fallout from operand_address changes
Jeff Law [Tue, 10 Nov 2015 21:11:07 +0000 (14:11 -0700)]
[PATCH] Fix minor fallout from operand_address changes
2015-11-10  Jeff Law  <law@redhat.com>

* config/ft32/ft32.c (ft32_print_operand): Supply mode to
call to output_address.
* config/moxie/moxie.c (moxie_print_operand_address): Similarly.
Add unnamed machine_mode argument.

From-SVN: r230130

9 years agoconfig.gcc (powerpc*-*-*, [...]): Add power9 to hosts that default to 64-bit.
Michael Meissner [Tue, 10 Nov 2015 20:50:39 +0000 (20:50 +0000)]
config.gcc (powerpc*-*-*, [...]): Add power9 to hosts that default to 64-bit.

2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
default to 64-bit.

Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r230123

9 years agore PR go/68255 (cgo-generated constructor not being called)
Ian Lance Taylor [Tue, 10 Nov 2015 20:31:11 +0000 (20:31 +0000)]
re PR go/68255 (cgo-generated constructor not being called)

PR go/68255
    cmd/go: always use --whole-archive for gccgo packages

    This is a backport of https://golang.org/cl/16775.

    This is, in effect, what the gc toolchain does.  It fixes cases where Go
    code refers to a C global variable; without this, if the global variable
    was the only thing visible in the C code, the generated cgo file might
    not get pulled in from the archive, leaving the Go variable
    uninitialized.

    This was reported against gccgo as https://gcc.gnu.org/PR68255 .

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

From-SVN: r230120

9 years agoi386.md (*movabs<mode>_1): Add explicit size directives for -masm=intel.
Uros Bizjak [Tue, 10 Nov 2015 19:26:08 +0000 (20:26 +0100)]
i386.md (*movabs<mode>_1): Add explicit size directives for -masm=intel.

* config/i386/i386.md (*movabs<mode>_1): Add explicit
size directives for -masm=intel.
(*movabs<mode>_2): Ditto.

From-SVN: r230119

9 years agoi386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call...
Uros Bizjak [Tue, 10 Nov 2015 17:48:31 +0000 (18:48 +0100)]
i386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call operands.

* config/i386/i386.c (ix86_print_operand): Remove dead code that
tried to avoid (%rip) for call operands.

* config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
argument.  Do not use RIP relative addressing when no_rip is set.
(ix86_print_operand): Update call to ix86_print_operand_address_as.
(ix86_print_operand_address): Ditto.
* config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
absolute movabs operand 0.  Add square braces for -masm=intel.
(*movabs<mode>_2): Ditto for operand 1.

From-SVN: r230117

9 years ago[ARM] Fix costing of vmul+vcvt combine pattern
Kyrylo Tkachov [Tue, 10 Nov 2015 17:29:46 +0000 (17:29 +0000)]
[ARM] Fix costing of vmul+vcvt combine pattern

* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
combine_vcvtf2i pattern.

From-SVN: r230116

9 years ago[ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW
Kyrylo Tkachov [Tue, 10 Nov 2015 17:27:42 +0000 (17:27 +0000)]
[ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW

* config/arm/arm.c (neon_valid_immediate): Remove integer
CONST_DOUBLE handling.  It should never occur.

From-SVN: r230115

9 years ago[AArch64] Move iterators from atomics.md to iterators.md
Matthew Wahab [Tue, 10 Nov 2015 15:59:37 +0000 (15:59 +0000)]
[AArch64] Move iterators from atomics.md to iterators.md

* config/aarch64/atomics.md (unspecv): Move to iterators.md.
(ATOMIC_LDOP): Likewise.
(atomic_ldop): Likewise.
* config/aarch64/iterators.md (unspecv): Moved from atomics.md.
(ATOMIC_LDOP): Likewise.
(atomic_ldop): Likewise.

From-SVN: r230114

9 years agoFix return type of heterogeneous find for sets
Jonathan Wakely [Tue, 10 Nov 2015 15:12:24 +0000 (15:12 +0000)]
Fix return type of heterogeneous find for sets

PR libstdc++/68190
* include/bits/stl_multiset.h (multiset::find): Fix return types.
* include/bits/stl_set.h (set::find): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test find return types.
* testsuite/23_containers/multimap/operations/2.cc: Likewise.
* testsuite/23_containers/multiset/operations/2.cc: Likewise.
* testsuite/23_containers/set/operations/2.cc: Likewise.

From-SVN: r230113

9 years agoUpdate C++17 library implementation status
Jonathan Wakely [Tue, 10 Nov 2015 14:05:01 +0000 (14:05 +0000)]
Update C++17 library implementation status

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

From-SVN: r230108

9 years agofirstprivate-1.c: Remove inadvertent commit.
Nathan Sidwell [Tue, 10 Nov 2015 13:51:09 +0000 (13:51 +0000)]
firstprivate-1.c: Remove inadvertent commit.

* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
inadvertent commit.

From-SVN: r230107

9 years agoEnhance pool allocator
Martin Liska [Tue, 10 Nov 2015 12:27:33 +0000 (13:27 +0100)]
Enhance pool allocator

* alloc-pool.h (allocate_raw): New function.
(operator new (size_t, object_allocator<T> &a)): Use the
function instead of object_allocator::allocate).

From-SVN: r230105

9 years agosse.md (HALFMASKMODE): New attribute.
Ilya Enkovich [Tue, 10 Nov 2015 12:19:42 +0000 (12:19 +0000)]
sse.md (HALFMASKMODE): New attribute.

gcc/

* config/i386/sse.md (HALFMASKMODE): New attribute.
(DOUBLEMASKMODE): New attribute.
(vec_pack_trunc_qi): New.
(vec_pack_trunc_<mode>): New.
(vec_unpacks_lo_hi): New.
(vec_unpacks_lo_si): New.
(vec_unpacks_lo_di): New.
(vec_unpacks_hi_hi): New.
(vec_unpacks_hi_<mode>): New.

gcc/testsuite/

* gcc.target/i386/mask-pack.c: New test.
* gcc.target/i386/mask-unpack.c: New test.

From-SVN: r230104

9 years agooptabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab.
Ilya Enkovich [Tue, 10 Nov 2015 12:17:30 +0000 (12:17 +0000)]
optabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab.

gcc/

* optabs.c (expand_binop_directly): Allow scalar mode for
vec_pack_trunc_optab.
* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
boolean vector producers from pattern sequence when computing VF.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
vect_recog_mask_conversion_pattern.
(search_type_for_mask): Choose the smallest
type if different size types are mixed.
(build_mask_conversion): New.
(vect_recog_mask_conversion_pattern): New.
(vect_pattern_recog_1): Allow scalar mode for boolean vectype.
* tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
load with pattern.
(vectorizable_conversion): Support boolean vectors.
(free_stmt_vec_info): Allow patterns for statements with no lhs.
* tree-vectorizer.h (NUM_PATTERNS): Increase to 14.

From-SVN: r230103

9 years agoi386-protos.h (ix86_expand_sse_movcc): New.
Ilya Enkovich [Tue, 10 Nov 2015 12:15:42 +0000 (12:15 +0000)]
i386-protos.h (ix86_expand_sse_movcc): New.

gcc/

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
* config/i386/i386.c (ix86_expand_sse_movcc): Make public.
Cast mask to FP mode if required.
* config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
(vcond_mask_<mode><avx512fmaskmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_v2div2di): New.
(vcond_mask_<mode><sseintvecmodelower>): New.
(vcond_mask_<mode><sseintvecmodelower>): New.

From-SVN: r230102

9 years agooptabs-query.h (get_vcond_mask_icode): New.
Ilya Enkovich [Tue, 10 Nov 2015 12:14:19 +0000 (12:14 +0000)]
optabs-query.h (get_vcond_mask_icode): New.

gcc/

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* optabs-query.h (get_vcond_mask_icode): New.
* optabs-tree.c (expand_vec_cond_expr_p): Use
get_vcond_mask_icode for VEC_COND_EXPR with mask.
* optabs.c (expand_vec_cond_mask_expr): New.
(expand_vec_cond_expr): Use get_vcond_mask_icode
when possible.
* optabs.def (vcond_mask_optab): New.
* tree-vect-patterns.c (vect_recog_bool_pattern): Don't
generate redundant comparison for COND_EXPR.
* tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
as a condition.
(vectorizable_condition): Likewise.
* tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
cond_exp with no embedded comparison.
(vect_build_slp_tree_1): Likewise.

From-SVN: r230101

9 years agosse.md (maskload<mode>): Rename to ...
Ilya Enkovich [Tue, 10 Nov 2015 12:08:02 +0000 (12:08 +0000)]
sse.md (maskload<mode>): Rename to ...

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

* config/i386/sse.md (maskload<mode>): Rename to ...
(maskload<mode><sseintvecmodelower>): ... this.
(maskstore<mode>): Rename to ...
(maskstore<mode><sseintvecmodelower>): ... this.
(maskload<mode><avx512fmaskmodelower>): New.
(maskstore<mode><avx512fmaskmodelower>): New.

From-SVN: r230100

9 years agointernal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
Ilya Enkovich [Tue, 10 Nov 2015 12:06:05 +0000 (12:06 +0000)]
internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.

gcc/

* internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
(expand_MASK_STORE): Adjust to maskstore optab changes.
* optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
 Adjust to maskload, maskstore optab changes.
* optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
* optabs.def (maskload_optab): Transform into convert optab.
(maskstore_optab): Likewise.
* tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
can_vec_mask_load_store_p signature change.
(predicate_mem_writes): Use boolean mask.
* tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
can_vec_mask_load_store_p signature change.  Allow invariant masks.
(vectorizable_operation): Ignore type precision for boolean vectors.

gcc/testsuite/

* gcc.target/i386/avx2-vec-mask-bit-not.c: New test.

From-SVN: r230099

9 years agoexpr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
Ilya Enkovich [Tue, 10 Nov 2015 11:57:34 +0000 (11:57 +0000)]
expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.

gcc/

* expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
(const_vector_mask_from_tree): New.
(const_vector_from_tree): Use const_vector_mask_from_tree
for boolean vectors.
* optabs-query.h (get_vec_cmp_icode): New.
* optabs-tree.c (expand_vec_cmp_expr_p): New.
* optabs-tree.h (expand_vec_cmp_expr_p): New.
* optabs.c (vector_compare_rtx): Add OPNO arg.
(expand_vec_cond_expr): Adjust to vector_compare_rtx change.
(expand_vec_cmp_expr): New.
* optabs.def (vec_cmp_optab): New.
(vec_cmpu_optab): New.
* optabs.h (expand_vec_cmp_expr): New.
* tree-vect-generic.c (expand_vector_comparison): Add vector
comparison optabs check.
* tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
operations for VF.  Add mask type computation.
* tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
(vectorizable_comparison): New.
(vect_analyze_stmt): Add vectorizable_comparison.
(vect_transform_stmt): Likewise.
(vect_init_vector): Support boolean vector invariants.
(vect_get_vec_def_for_operand): Add VECTYPE arg.
(vectorizable_condition): Directly provide vectype for invariants
used in comparison.
* tree-vectorizer.h (get_mask_type_for_scalar_type): New.
(enum vect_var_kind): Add vect_mask_var.
(enum stmt_vec_info_type): Add comparison_vec_info_type.
(vectorizable_comparison): New.
(vect_get_vec_def_for_operand): Add VECTYPE arg.
* tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
(vect_create_destination_var): Likewise.
* tree-vect-patterns.c (check_bool_pattern): Check fails
if we can vectorize comparison directly.
(search_type_for_mask): New.
(vect_recog_bool_pattern): Support cases when bool pattern
check fails.
* tree-vect-slp.c (vect_build_slp_tree_1): Allow
comparison statements.
(vect_get_constant_vectors): Support boolean vector
constants.
* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
(ix86_expand_int_vec_cmp): New.
(ix86_expand_fp_vec_cmp): New.
* config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
op_true and op_false.
(ix86_int_cmp_code_to_pcmp_immediate): New.
(ix86_fp_cmp_code_to_pcmp_immediate): New.
(ix86_cmp_code_to_pcmp_immediate): New.
(ix86_expand_mask_vec_cmp): New.
(ix86_expand_fp_vec_cmp): New.
(ix86_expand_int_sse_cmp): New.
(ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
(ix86_expand_int_vec_cmp): New.
(ix86_get_mask_mode): New.
(TARGET_VECTORIZE_GET_MASK_MODE): New.
* config/i386/sse.md (avx512fmaskmodelower): New.
(vec_cmp<mode><avx512fmaskmodelower>): New.
(vec_cmp<mode><sseintvecmodelower>): New.
(vec_cmpv2div2di): New.
(vec_cmpu<mode><avx512fmaskmodelower>): New.
(vec_cmpu<mode><sseintvecmodelower>): New.
(vec_cmpuv2div2di): New.

gcc/testsuite/

* gcc.dg/vect/slp-cond-5.c: New test.

From-SVN: r230098

9 years ago* include/bits/functional_hash.h: Fix grammar in comment.
Jonathan Wakely [Tue, 10 Nov 2015 11:12:33 +0000 (11:12 +0000)]
* include/bits/functional_hash.h: Fix grammar in comment.

From-SVN: r230097

9 years agore PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above on...
Richard Biener [Tue, 10 Nov 2015 10:14:02 +0000 (10:14 +0000)]
re PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above on x86_64-linux-gnu)

2015-11-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68240
* tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
properly.
(visit_phi): For PHIs with just a single executable edge
take its value directly.
(expressions_equal_p): Handle VN_TOP properly.

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

From-SVN: r230095